Безопасно удалите проект ответвления TFS

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

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

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

$/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 -> Свойства-> Ответвления)?

25
задан Jon Seigel 2 April 2010 в 03:22
поделиться

2 ответа

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

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

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

EDIT (я наконец-то вспомнил, где находится эта команда):

Есть еще один вариант, из командной строки: tf destroy:

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

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

16
ответ дан 28 November 2019 в 18:11
поделиться

Позвольте мне изложить факты следующим образом:

  • В контексте системы управления версиями TFS "Удалить" - это чисто логическая операция. Вы можете отменить удаление в любое время. У вас может быть несколько удаленных элементов, занимающих один и тот же путь с течением времени или даже одновременно. Отношения ветвей сохраняются.
  • TFS «Уничтожить» - это физическое удаление. Для поддержания целостности базы данных это означает, что все взаимосвязи между сущностями также удаляются: история наборов изменений, ожидающие записи изменений, отложенные версии, история слияния и иерархия ветвей. Эта функция уничтожения была введена в TFS 2008.
  • Уничтожение - единственная операция, разрешенная для изменения таблицы истории слияния (из которой определяются отношения ветвлений). Все остальные операции предназначены только для добавления.
  • TfsDeleteProject делает все возможное, чтобы полностью удалить все следы проекта, основная цель - позволить создать новый проект с тем же именем. Некоторые подсистемы TFS поддерживают физическое удаление; некоторые, такие как метаданные поля WIT, поддерживают только логическое удаление, даже в TFS 2008 и более поздних версиях. В случае контроля версий TfsDeleteProject вызывает «удалить» в 2005 году и «уничтожить» в 2008+.
40
ответ дан 28 November 2019 в 18:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: