Безопасное удаление ветки TFS - PullRequest
25 голосов
/ 26 февраля 2010

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

У меня возникла проблема в тот момент, когда мне нужно удалить устаревший проект TFS "Release Branch", который был разветвлен для старой структуры и больше не требуется, поскольку теперь я размещаю ветку Release в новой структуре.

Это пример того, как теперь выглядит управление исходным кодом после перемещения всего:

$/Source Project
    /Trunk
        /[Projects]
    /Release
        /[Projects]

$/Release Branch Project
    /[Projects]
    /[Other legacy stuff]

Пока я нашел информацию, которая говорит:

  1. tf delete /lock:checkout /recursive TestMain для удаления ветки.
  2. TfsDeleteProject для удаления проекта

tf delete представляется уместным только тогда, когда мне нужно удалить ветвь, которая находится в том же проекте, что и ствол, и TfsDeleteProject не похоже, что он удалит ассоциацию ветвей из исходный проект (надеюсь, я ошибаюсь, см. ниже).

Может кто-нибудь сказать мне, будет ли работать вышеперечисленное, и в каком порядке я должен их выполнить, чтобы успешно удалить TFS $/Release Branch Project, а также удалить ассоциацию ветвей (при щелчке правой кнопкой мыши $/Source Project -> Properties -> Ветви)?

Ответы [ 4 ]

40 голосов
/ 26 февраля 2010

Позвольте мне изложить факты так:

  • В контексте системы контроля версий TFS «Удалить» является чисто логической операцией. Вы можете восстановить в любое время. Вы можете иметь несколько удаленных элементов, занимающих один и тот же путь во времени или даже одновременно. Отношения между ветвями сохраняются.
  • ТФС "Уничтожить" - это физическое удаление. Чтобы поддерживать целостность базы данных, это означает, что также удаляются все отношения сущностей: история изменений, ожидающие записи изменений, отложенные версии, история слияний и да - иерархия ветвей. Эта функция уничтожения была введена в TFS 2008.
  • Уничтожить - единственная операция, которая позволяет изменять таблицу истории слияния (из которой определяются отношения ветвей). Все остальные операции строго добавляются.
  • TfsDeleteProject делает все возможное, чтобы полностью удалить все следы проекта, основной целью которого является создание нового проекта с тем же именем. Некоторые подсистемы TFS поддерживают физическое удаление; некоторые, такие как метаданные поля WIT, поддерживают только логическое удаление, даже в TFS 2008 и более поздних версиях. В случае управления исходным кодом TfsDeleteProject вызывает «delete» в 2005 году и «destroy» в 2008 +.
16 голосов
/ 26 февраля 2010

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

Удаление файла или целого набора файлов - это просто еще одно отслеживаемое изменение, вернитесь в историю, и его все еще можно увидеть.

Вы можете использовать разрешения, чтобы сделать его недоступным для всех. Или переименуйте в «Устаревший» командный проект.

РЕДАКТИРОВАТЬ (я наконец-то вспомнил, где была эта команда):

Существует еще одна опция из командной строки: tf destroy:

Удаляет или навсегда удаляет файлы с управлением версиями из системы управления версиями Team Foundation.

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

8 голосов
/ 07 марта 2012

Выберите папку ветви, которую вы хотите разветвить. затем File > Source Control > Branching and Merging > Convert to Folder.

4 голосов
/ 19 мая 2015

В VS2013 Я не смог найти его в ответе @Radhika

Я нашел его под Team Explorer > Source Control Explorer > правой кнопкой мыши on project > Branching and Merging > Convert to folder

enter image description here

Надеюсь, это сэкономит ваше время.

Редактировать Скопировано из комментария @DdW: вам нужно сделать Get Latest Version после преобразования, прежде чем опция удаления будет включена

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...