Подтвердить что ты не робот

TFS 2010: история потеряна после перемещения папки

Чтобы очистить структуру проекта, я переместил папку в другую (новую) папку через TFS Power Tools Shell-Extension (Переименовать/Переместить).

После проверки истории на новом месте движение является единственной записью. (Я пробовал одну папку вверх, вниз, даже на отдельных файлах в перемещенной папке. Тот же результат.)

Я также добавил некоторые метки в версиях папки перед переходом, так как были некоторые важные состояния кода, к которому я хотел вернуться.

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

4b9b3361

Ответ 1

Оказывается, это довольно легко.

В Visual Studio 2010 перейдите в Инструменты- > Параметры. Там вы можете найти опцию для отображения "удаленных" элементов (примерно в середине диалогового окна). Старая папка удалена во время перемещения - она ​​будет отображаться снова после активации этой опции. (Они будут выглядеть серыми с красным крестом.)

Ярлыки, похоже, исчезли, поэтому мне пришлось идти по версии.

enter image description here

В проводнике исходного кода снова выполняются обычные операции - например, "Просмотр истории" или "Получить".

Ответ 2

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ. Для справки всех, кто попадает сюда, этот ответ не фиксирует проблему @Andreas, просто давая некоторый контекст, почему это происходит, и предлагая пару обходных решений.

Кажется, что потеря истории при перемещении папок в TFS 2010 не является ошибкой, является "функцией". (все еще происходит в TFS2012. Из этой ссылки MSDN вы можете прочитать официальный ответ Microsoft:

Спасибо за отзывы здесь. Предыдущий комментарий об этом правильном дизайне, и в командной строке есть опция. В пользовательском интерфейсе история папок рекурсивна - всегда. Это связано с тем, что большую часть времени пользователи заботятся об истории содержимого папки. Файлы, с другой стороны, не имеют концепции рекурсивной истории - вы всегда видите историю самого файла. Теперь из командной строки можно указать рекурсивную историю (/r), и если вы запустите историю tf в папке без рекурсивной опции, вы увидите изменения в самой папке. Это будет включать такие изменения, как переименование самой папки.

  • Обходной путь для получения истории после потери. Как вы можете видеть, у вас есть обходной путь с использованием истории tf.
  • Обходное решение, чтобы избежать потери истории. Если вы хотите избежать потери истории в папках вместо использования функции перемещения, вы можете использовать инструмент интеграции TFS для переноса кода из одной папки к другой сохраненной истории, перейдя от $/TFSCode/FolderA к $/TFSCode/FolderB. Это немного перебор, но если история очень важна для вас, гораздо лучше, чем искать ее в удаленных папках.

Ответ 3

Верно, что история папок потеряна, но история отдельных файлов на самом деле не потеряна. Он скрыт под маленькой стрелкой "expand me" в крайнем левом углу строки истории файлов. Разверните его на самой старой записи истории для файла или в любом месте, где вы ее видите, и вы увидите историю этого отдельного файла также из старого местоположения, которое больше не существует.

Ответ 4

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

Окно истории, редактируемое поле источника местоположения

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