Как игнорировать файлы / каталоги в TFS, чтобы избежать их перехода в центральный исходный репозиторий?



можно ли настроить файлы / папки для игнорирования на основе каждого проекта в системе управления версиями TFS?



например, у меня есть веб-сайт с папкой активов, в которую я не хочу входить в систему управления версиями. Эти активы обслуживаются отдельной системой. Кроме того, я не хочу помещать несколько гигабайт активов в систему управления версиями, но мне нужно несколько образцов на моей машине dev, но я также не хочу их проверять.



Если я работаю на этом сайте во время привязки для управления версиями и я обновить дерево, эти файлы будут автоматически добавлены снова



Я хочу предотвратить это.

723   6  
tfs

6 ответов:

для VS2015 и VS2017

работает с TFS (on-prem) или VSO (Visual Studio Online - предложение, размещенное в Azure)

документация NuGet предоставляет Инструкции о том, как это сделать и я просто следил за ними успешно для Visual Studio 2015 и Visual Studio 2017 против VSTS (Azure-hosted TFS). Все полностью обновлено по состоянию на ноября 2016 августа 2018.

я рекомендую вам следовать инструкциям NuGet, но просто чтобы резюмировать то, что я сделал:

  1. убедитесь, что ваш packages папка не привязана к TFS. Если это так, уберите его оттуда.
  2. все остальное, что мы создаем ниже, попадает в ту же папку, что и ваш .sln файл существует, если не указано иное (инструкции NuGet не совсем ясны по этому поводу).
  3. создать . Вы можете использовать Проводник Windows, чтобы назвать его .nuget. для его успешного сохранения как .nuget (автоматически удаляет последний период), но прямо пытается назвать его .nuget может не работать (вы можете получить сообщение об ошибке или она может изменить имя, в зависимости от вашей версии Windows).
  4. внутри этой папки, создайте NuGet.config файл и добавить следующее содержимое и сохранить его:

NuGet.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <solution>
        <add key="disableSourceControlIntegration" value="true" />
    </solution>
</configuration>
  1. возвращайся в свой .slnпапка и создать новый текстовый файл и назовите его .tfignore (если вы используете Проводник Windows, используйте тот же трюк, что и выше и назовите его .tfignore.)
  2. поместите в этот файл следующее содержимое:

.tfignore:

# Ignore the NuGet packages folder in the root of the repository.
# If needed, prefix 'packages' with additional folder names if it's 
# not in the same folder as .tfignore.
packages

# include package target files which may be required for msbuild,
# again prefixing the folder name as needed.
!packages/*.targets
  1. сохраните все это, зафиксируйте его в TFS, затем закройте и снова откройте Visual Studio, и Team Explorer больше не должен идентифицировать папку packages как ожидающую регистрацию.
  2. копировать / вставить через Проводник Windows .tfignore файл и .nuget папка для всех моих различных решений и зафиксировала их, и я нет дольше есть packages папка пытается проникнуть в мой репозиторий системы управления версиями!

Дополнительные Настройки

пока не мой, я нашел этой .tfignore шаблон по sirkirby чтобы быть под рукой. Пример в моем ответе охватывает Nuget packages папка но этот шаблон включает в себя некоторые другие вещи, а также предоставляет дополнительные примеры, которые могут быть полезны, если вы хотите настроить это дальше.

если вы используете локальные рабочие пространства (TFS 2012+) теперь вы можете использовать .tfignore файл для исключения локальных папок и файлов из проверки.

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

полная информация о MSDN -http://msdn.microsoft.com/en-us/library/ms245454.aspx#tfignore

для ленивых:

вы можете настроить, какие типы файлов игнорируется путем размещения текста файл называется .tfignore в папке, где вы хотите применить правила. Этот эффекты рекурсивны. Тем не менее, вы можете создать .tfignore файлы в подпапках, чтобы переопределить эффекты a .tfignore файл в родительской папке.

к a применяются следующие правила .tfignore file:

  • # начинается строка комментария
  • The * И ? поддерживаются подстановочные знаки.
  • в filespec-это рекурсивный, если не префикс \ символ.
  • ! отрицает параметр filespec (файлы, соответствующие шаблону, не игнорируются)

файл:

# 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

Это тут кажется немного громоздким игнорировать файлы (и папки) в Team Foundation Server. Я нашел несколько способов сделать это (с помощью TFS / Team Explorer / Visual Studio 2008). Эти методы также работают с типом проекта ASP веб-сайта.

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

другой способ - с помощью команды добавить элементы в папку проводника системы управления версиями. Это запускает небольшой мастер, и на одном из шагов вы можете выбрать элементы для исключения (хотя, я думаю, вам нужно добавить хотя бы один элемент в TFS с помощью этого метода, чтобы мастер позволил вам продолжить).

вы даже можете добавить запрещено политика возврата шаблонов (в разделе Команда -> параметры командного проекта -> Система управления версиями... - >Политика регистрации), чтобы запретить другим людям в команде ошибочно проверять определенные активы.

на TFS 2013:

запуск в VisualStudio - Team Explorer, в PendingChanges Диалог отменить изменения с состоянием [добавить], которые должны быть проигнорированы.

в Visual Studio будет обнаружить еще добавить(с). Нажмите На " обнаружено: X add (s)" - in Исключенные Изменения

В открывшемся диалоге "Promote Cadidate Changes" вы можете легко исключить файлы и папки с помощью Contextmenu. Опции являются:

  • игнорировать этот пункт
  • игнорировать расширение
  • игнорировать по имени файла
  • игнорировать по ffolder (да ffolder, TFS 2013 Update 4 / Visual Studio 2013 Premium Update 4)

Не забудьте проверить в измененном .tfignore см.-файл.

на VS 2015/2017:

та же процедура: На вкладке "исключенные изменения" в TeamExplorer\ожидающие изменения нажмите на обнаруженный: xxx добавить(с)

The Excluded Changes Tab in TeamExplorer\Pending Changes

откроется диалоговое окно "продвижение изменений кандидатов", и на записи вы можете щелкнуть правой кнопкой мыши для Contextmenu. Опечатка исправлена :-)

Я собираюсь предположить, что вы используете проекты веб-сайта. Они автоматически сканируют свой каталог проекта и бросают все в систему управления версиями. Нет никакого способа остановить их.

однако, не отчаивайтесь. Проекты веб-приложений не демонстрируют это странное и довольно неожиданное (imho: moronic) поведение. WAP-это аддон для VS2005 и поставляется непосредственно с VS2008.

в качестве альтернативы изменению ваших проектов на WAP, вы можете рассмотреть возможность перемещения активов папка из системы управления версиями и в библиотеку документов TFS. Делайте это только в том случае, если сам проект напрямую не использует файлы активов.

Я нашел идеальный способ игнорировать файлы в TFS, как это делает SVN.
Прежде всего, выберите файл, который вы хотите игнорировать (например, в Интернете.конфигурация.)
Теперь перейдите на вкладку меню и выберите:

управление исходным кодом файла > дополнительно > исключить web.конфигурации из системы управления версиями

... и бум; ваш файл навсегда исключен из системы управления версиями.

Comments

    Ничего не найдено.