Как я могу исключить определенный файл из источника управления TFS
У нас есть несколько конфигурационных файлов (app.DEV.config, app.TEST.config и т.д.) и событие pre-build, которое копирует правильный файл конфигурации в app.config. Очевидно, что файлы, специфичные для конфигурации, находятся в исходном управлении, но на данный момент это App.Config, и этого не должно быть.
Как я могу пометить этот файл как исключенный из исходного элемента управления, но явно не из проекта.
Я использую VS 2005 и 2005 Team Explorer.
Ответы
Ответ 1
В MS Power Tools есть политика проверки (политика запрещенных шаблонов), которая позволяет вам отображать имена файлов в отношении регулярного выражения. Смотрите: Microsoft Team Foundation Server Power Tools
Несмотря на то, что политики проверки не являются полностью надежными, они являются наиболее близкими к тому, что TFS должно обеспечивать соблюдение пользовательских правил, таких как то, что вы ищете.
(И, как говорили другие, вы также можете скрывать файл или папку, что означает, что он остается в Source Control и отображается всем остальным в команде, но он не копируется на ваш компьютер, пока вы не решите разложить его, или вы можете удалить файл, а это значит, что он удаляется со всех ПК, когда они получаются последними - но ни один из этих параметров не предотвратит добавление таких файлов в исходное управление в первую очередь)
Ответ 2
Легко в 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.
Ответ 3
Выберите файл App.config в обозревателе решений и выберите "Файл" → "Управление источником" → "Исключить приложение .config" из "Контроль источника".
Ответ 4
Существует сложная опция:
1. Выберите файл или несколько файлов в обозревателе решений
2. Перейдите в меню Файл → Управление источником → Дополнительно
![Path To Exclude]()
и здесь
![Here is the Exclude]()
Имейте в виду:
Если вы щелкните правой кнопкой мыши файл в обозревателе решений, вы найдете только "самые важные параметры" не все:)
Ответ 5
Если вы хотите только иметь файл в проекте, но не под управлением источника с помощью TFS, просто перейдите в SourceControl, удалите указанный файл и отмените проверку файла проекта (он попытается удалить файл из проект также). Затем зарегистрируйте свое удаление файла, который вы исключаете. В проводнике решений вы увидите, что рядом с файлом, который вы исключаете, нет значка управления источником. Файл проекта должен содержать список файлов, но этот файл больше не должен находиться под контролем источника.
Имейте в виду, что любой другой человек теперь увидит недостающий файл в проекте, когда он получит последнюю версию.
Ответ 6
TFS позволяет скрывать на уровне папки/файла. Когда что-то скрывается, TFS не будет пытаться синхронизировать его (подобно svn: ignore).
При настройке рабочего пространства закройте все, что вы хотите игнорировать TFS. Более подробное руководство здесь.
Ответ 7
Это сработало для меня:
Один из способов - добавить новый или существующий элемент в проект (например, щелкнуть правой кнопкой мыши по проекту, добавить существующий элемент или перетащить его из проводника Windows в проводник решений), позволить TFS обрабатывать файлы или папки, затем отмените ожидающие изменения в позиции (-ях). TFS отменит их как имеющую ожидающее изменения добавления, и файлы будут сидеть тихо в проекте и не будут оставаться в TFS.
Источник:
=" > Как я могу исключить определенные файлы из источника управления TFS
Ответ 8
Visual Studio 2013 (и 2012)
Эта функция доступна, выбрав файл и перейдите к:
File > Source Control > Advanced > Exclude ... from Source Control
Ответ 9
Этот вопрос задавался некоторое время назад, но он относится к тому же типу проблем, который у меня был.
Проблема:
- Мы хотим проверить наш код.
- Затем мы хотим построить наш проект.
- Во время нашей сборки мы зависим от событий сборки, чтобы перемещать файлы, поэтому у нас есть необходимые файлы для завершения процесса сборки.
- Когда наше событие сборки пытается скопировать файлы, мы получаем ошибки Access Denied.
Причина:
- Team Foundation Server Плагин Visual Studio изменяет атрибут "Только для чтения" в наших файлах READONLY TRUE, когда мы проверяем наши файлы.
Пример события сборки:
- copy "$ (TargetDir) SomeFile.ext" "$ (ProjectDir)"
Выше мы просто должны перенести файл с нашего целевого пути сборки (папки bin\debug или bin\release) в нашу папку проекта. В моей ситуации это было так, что я мог включать файлы, созданные по проекту, в мой установщик. Мой установщик не хватал их как часть выходного документа проекта.
The Fix: (чуть не ударил себя по лицу, когда я понял это)
Новое событие сборки:
- attrib -R "$ (ProjectDir) SomeFile.ext"
- copy "$ (TargetDir) SomeFile.ext" "$ (ProjectDir)"
- attrib + R "$ (ProjectDir) SomeFile.ext"
Мы все весело проводим с Build Events? Выше я просто делаю 2 вещи, я удаляю атрибут только для чтения, теперь файлы не читаются. Скопируйте мой файл, как я и хотел. Затем замените атрибут Read Only (необязательно, я думаю), чтобы поддерживать поддержку Visual Studio и Team Foundations.
И да... Я все еще ношу себя в лицо на этом.
Ответ 10
У меня аналогичная проблема, в моем App.config содержатся разумные данные (например, имя пользователя), которые эти данные не должны синхронизировать с TFS.
Статья Рекомендации по развертыванию паролей и других конфиденциальных данных для ASP.NET и Azure App Service описывает хороший подход для предотвращения этой проблемы:
Используйте атрибут "файл" элемента "appSettings" для ссылки на файл конфигурации, который не добавлен в исходное управление
Ответ 11
Если у вас более старая версия, чем TFS2012, и поэтому не может создать файл .tfignore
или использовать параметр File > Source Control > Advanced > Exclude …
, вы можете попробовать следующее:
- Сделайте копию целевого файла в проводнике Windows.
- Отменить ожидающие изменения (если есть) в целевом файле в Team Explorer/Visual Studio.
- Удалите целевой файл в проводнике Windows.
- Переместите копию целевого файла в папку удалённого целевого файла и переименуйте его так, чтобы оно имело то же имя, что и удаленный целевой файл.
Теперь TFS игнорирует изменения в целевом файле. Если вам нужно снова отредактировать файл, не используйте Visual Studio, так как TFS вернет файл обратно в список файлов с ожидающими изменениями.