Контроль версий TFS - Файл удален, добавлен - как мы можем сказать TFS, что это был шаг? - PullRequest
9 голосов
/ 25 августа 2011

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

За исключением того, что мы только что обнаружили сегодня, что ReSharper скажет TFS удалить файл в старом месте, а затем вставить как новый файл в новом месте. Как мы можем сказать TFS, что это удаление / вставка было на самом деле ходом?

Ответы [ 3 ]

4 голосов
/ 01 сентября 2011

"tf rename" сообщит TFS, что файл перемещен.

http://msdn.microsoft.com/en-us/library/a79bz90w.aspx

Если вы находитесь в VS и перемещаете файл из одной папки в другую, вы можете увидеть, что TFS ожидает переименования. Вы также можете переместить файл из одной папки в другую, а затем переименовать файл. TFS ожидает переименования.

Видимо, когда resharper перемещает файлы, он не использует перемещение и переименование apis в системе проекта VS, или я ожидал бы, что это "просто сработает".

4 голосов
/ 09 ноября 2011

Я столкнулся с похожей ситуацией, когда я хотел перемещать файлы между проектами и хотел, чтобы Resharper выполнял как можно больше работы.Вот шаги, которые я в итоге сделал:

  1. Переместите файл в Resharper.Это внесет соответствующие изменения в файл целевого проекта.
  2. Закройте решение или отключите Resharper.
  3. Отмените удаление / добавление в TFS.
  4. Переместите файл в TFS.
  5. Убедитесь, что перемещенный файл больше не находится в исходном проекте.
  6. Перезагрузите решение или повторно включите Resharper.
  7. Используйте Resharper, чтобы внести любые изменения в пространство имен.

Очевидно, что это можно сделать с несколькими файлами одновременно.Это боль, но TFS в конечном итоге приводит к правильным изменениям, и Resharper позаботится о смене ссылок.

4 голосов
/ 26 августа 2011

Краткий ответ : Вы этого не делаете.

Длинный ответ : Вы не можете, если вы не хотите запустить возможность полностью потерять контроль над исходным кодом.

С точки зрения TFS, файл в новомМестоположение - это совершенно другой файл.Он даже имеет другой идентификатор на сервере базы данных.

Теперь вы, конечно же, можете запутаться в вашей базе данных TFS и попробовать вручную обновить ассоциации идентификаторов файлов.Но вероятность того, что вы полностью облажаетесь, чрезвычайно высока ... если только вы не были одним из главных разработчиков TFS, который был хорошо знаком с бэкэндом продукта.В этом случае вы не будете задавать этот вопрос.;)

Немного не по теме: Вы должны связаться с jetbrains и сказать им, чтобы это исправить.

...