Как я могу исключить определенный файл из источника управления 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 вернет файл обратно в список файлов с ожидающими изменениями.