Як я можу виключити певний файл із контролю джерела TFS


89

У нас є кілька конфігураційних файлів (app.DEV.config, app.TEST.config тощо) та подія попередньої збірки, яка копіює правильний конфігураційний файл до app.config. Очевидно, що конкретні файли конфігурації знаходяться в контролі джерела --- але на даний момент так само працює і App.Config, і цього не повинно бути.

Як я можу позначити цей файл як виключений із контролю джерела, але, очевидно, не з проекту.

Я використовую VS 2005 та 2005 Team Explorer.



Відповіді:


39

У MS Power Tools існує політика реєстрації (політика заборонених шаблонів), яка дозволяє екранізувати імена файлів проти регулярного виразу. Див .: Електроінструменти сервера Microsoft Team Foundation Server

Хоча політики реєстрації не є цілком надійними, вони є найближчим, що TFS має застосувати визначені користувачем правила, такі як те, що ви шукаєте.

(І, як сказали інші, ви також можете замаскувати файл або папку, а це означає, що він залишається у програмі Control Source і є видимим для всіх інших у команді, але він не копіюється на ваш ПК, доки ви не вирішите його розблокувати; або ви може видалити файл, а це означає, що він видаляється з ПК кожного, коли вони оновлюються, але жоден з цих параметрів не заважає таким файлам додаватись до джерела керування в першу чергу)


1
На жаль, функція виключення для загального проекту, яку ви описуєте, не існує в TFS. (за винятком випадків, коли це зроблено в останній збірці 2010 року, ніж у мене). Діалогове вікно "Типи файлів керування джерелом" визначає, які типи файлів не можна об'єднувати, тобто блокувати виключно.
Річард Берг, 02

У мене на роботі VSTS2005 / 2008, але я пишу це вдома, тому моя відповідь була з моєї досить поганої пам’яті - вибачте! Щойно зрозумів, що вам потрібна політика перевірки "заборонених шаблонів" електроінструментів TFS. Це дозволяє узгоджувати
Джейсон Вільямс,

Гарний дзвінок, я забув про цю політику. Я відредагую ваш допис, щоб надати йому видимості.
Річард Берг,

Як я можу розкрити одну гілку ??? Я помилково сховав гілку і не можу її розкрити VS2012
rolivares

95

У TFS2012 легко створити файл .tfignore

http://msdn.microsoft.com/en-us/library/tfs/ms245454%28v=vs.110%29.aspx#tfignore

######################################
# Ignore .cpp files in the ProjA sub-folder and all its subfolders
ProjA\*.cpp
# 
# Ignore .txt files in this folder 
\*.txt
#
# Ignore .xml files in this folder and all its sub-folders
*.xml
#
# Ignore all files in the Temp sub-folder
\Temp
#
# Do not ignore .dll files in this folder nor in any of its sub-folders
!*.dll

# EDIT https://msdn.microsoft.com/en-us/library/ms245454(v=vs.110).aspx#tfignore
# A filespec is recursive unless prefixed by the \ character.

як би ви зробили папку рекурсивного ігнорування пакетів, але включили пакети / repositories.config?
Маслоу

@Maslow, якщо ти його отримав, сміливо редагуй мою відповідь. здається досить поширеною обстановкою, і ми повинні навести це у прикладі
artfulhacker

чи файл .tfignore у корені колекції проектів автоматично застосовується за ієрархією, навіть якщо у них немає цієї папки, яка зіставлена ​​/ завантажена?
Маслоу

2
Це підтримується лише локальними робочими областями. msdn.microsoft.com/library/vstudio/…
Сумо

45

Виберіть файл App.config у Провіднику рішень і виберіть Файл -> Керування джерелом -> Виключити App.config із Керування джерелами.


1
саме те, що мені потрібно, щоб не зберігати свої мініфіковані файли.
Валамас

13
Мене турбує те, що ця опція не вказана у звичайному контекстному меню
Ерік Герліц,

6
У мене немає такого варіанту. : '- (
Jan Aagaard

2
Він також відсутній у Visual Studio 2013 Ultimate :(
Ітрог,

4
Він присутній (у розділі Файл> Керування джерелом> Додатково> Виключити App.config із Керування джерелами) у моєму Visual Studio Premium 2013 (версія 12.0.3023.00, оновлення 3).
Мартін Бекстрем

21

Є варіант, який важко знайти:

1. Виберіть файл або кілька файлів у Провіднику рішень

2. Перейдіть до Файл -> Керування джерелом -> Додатково

Шлях до виключення

і ось воно

Ось Виключити

Майте на увазі: якщо клацнути правою кнопкою миші на файлі в Провіднику рішень, ви знайдете лише "найважливіші варіанти", а не всі :)


Ні. Вам потрібно розгорнути папки та вибрати кожен файл, який потрібно виключити.
Фелікс Кейл,

13

Якщо все, що вам потрібно, це мати файл у проекті, але не під контролем джерела за допомогою TFS, просто перейдіть до SourceControl, видаліть згаданий файл і скасуйте оформлення файлу проекту (він спробує видалити файл із проекту як Ну). Потім зареєструйтесь при видаленні файлу, який ви виключаєте. У провіднику рішень ви повинні побачити, що поруч із файлом, який ви виключаєте, немає піктограми керування джерелом. У файлі проекту повинен бути вказаний файл, але цей файл тепер не повинен знаходитися під контролем джерела.

Майте на увазі, будь-яка інша людина тепер бачитиме відсутній файл у проекті, коли отримає останню версію.


7

TFS дозволяє маскуватися на рівні папки / файлу. Коли щось маскується, TFS не намагатиметься його синхронізувати (подібно до svn: ignore).

Налаштовуючи робочу область, маскуйте все, що ви хочете ігнорувати TFS. Детальніші інструкції наведено тут .


якби тільки існував спосіб замаскувати папку для всіх робочих просторів ... не бачити жодного еквівалентного налаштування під захистом.
felickz

Ви не можете маскуватися на рівні файлу; лише папка.
dudeNumber4

@ dudeNumber4 Я вважаю, що ця функція була відключена в пізніших версіях TFS, і вже після написання початкової відповіді. Ви можете спробувати цей хак: social.msdn.microsoft.com/Forums/vstudio/en-US/…
joshua.ewer

5

Це працювало для мене:

Один із способів - це додати новий або існуючий елемент до проекту (наприклад, клацнути правою кнопкою миші на проекті, Додати існуючий елемент або перетягнути з Провідника Windows у провідник рішень), дозволити TFS обробити файл (и) або папку, а потім скасувати очікування зміни на елементі (елементах). TFS зніме з них позначення як такі, що очікують на додавання змін, і файли будуть спокійно сидіти в проекті і залишатимуться поза TFS.

Джерело: = "> Як я можу виключити певні файли з контролю джерела TFS


2

Visual Studio 2013 (і 2012)

Ця функція доступна, вибравши файл (и) та перейшовши до:

File > Source Control > Advanced > Exclude ... from Source Control

У 2012 році немає виключення.
ExpatEgghead,

Я теж цього не бачу у 2013 році
VictorySaber

2

Це питання було задане деякий час тому, але воно стосується того самого типу питань, що й у мене.

Проблема:

  • Ми хочемо перевірити наш код.
  • Тоді ми хочемо побудувати наш проект.
    • Під час нашої збірки ми переносимо файли на події збірки, щоб мати належні файли для завершення процесу збірки.
  • Коли наша Подія збірки намагається скопіювати файли, ми отримуємо помилки, яким заборонено доступ.

Причина:

  • Плагін Team Foundation Server Visual Studio змінює атрибут "Лише для читання" у наших файлах на "ЧИСТО ІСТИННИЙ", коли ми перевіряємо наші файли.

Приклад побудови події:

  • скопіювати "$ (TargetDir) SomeFile.ext" "$ (ProjectDir)"

Вище, нам просто потрібно перемістити файл із нашого шляху побудови цілі (папки bin \ debug або bin \ release) до нашої папки проекту. У моїй ситуації це було так, щоб я міг включити в свій інсталятор створені за проектом файли. Мій інсталятор не захоплював їх як частину результатів проекту.

Виправлення: (ледь не вдарив себе в обличчя, коли я це зрозумів)

Нова подія збірки:

  • attrib -R "$ (ProjectDir) SomeFile.ext"
  • скопіювати "$ (TargetDir) SomeFile.ext" "$ (ProjectDir)"
  • attrib + R "$ (ProjectDir) SomeFile.ext"

Ми всі отримуємо задоволення від Build Events, чи не так? Вище я просто роблю 2 речі, я видаляю атрибут лише для читання, тепер файли не лише для читання. Скопіюйте мій файл так, як я спочатку хотів. Потім замініть атрибут "Лише для читання" (напевно, необов'язково), щоб Visual Studio та Team Foundation були щасливими.

І так ... Я все ще ногами в обличчя на цьому.


0

У мене схожа проблема, мій App.config містив важливі дані (наприклад, ім’я користувача), які ці дані не повинні синхронізувати з TFS.

У статті Найкращі практики розгортання паролів та інших конфіденційних даних на ASP.NET та службі програм Azure описується хороший підхід для запобігання цій проблемі:

Використовуйте атрибут "файл" елемента "appSettings" для посилання на конфігураційний файл, який не додано до джерела керування


0

Якщо у вас старіша версія, ніж TFS2012, і ви не можете створити .tfignoreфайл або скористатися цією File > Source Control > Advanced > Exclude …опцією, ви можете спробувати наступне :

  • Створіть копію цільового файлу в Провіднику Windows.
  • Скасувати зміни, що очікують на розгляд (якщо такі є) у цільовому файлі в Team Explorer / Visual Studio.
  • Видаліть цільовий файл у Провіднику Windows.
  • Перемістіть копію цільового файлу в розташування видаленого цільового файлу та перейменуйте його, щоб він мав те саме ім'я, що і видалений цільовий файл.

Здається, TFS ігнорує зміни у цільовому файлі. Якщо вам потрібно відредагувати файл ще раз, не використовуйте Visual Studio, оскільки TFS поверне файл назад до списку файлів із очікуваними змінами.


0

Ви можете просто вибрати файл у своєму Провіднику керування джерелами та клацнути на ньому правою кнопкою миші, а потім вибрати опцію "Перейменувати" звідти, і ви можете додати ".exclude" в кінці імені файлу.

А потім не забудьте зареєструвати файл, і після цього ви зможете побачити, що ваш файл виключено з контролю над джерелами.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.