Git-TF помещает все изменения в другой репозиторий TFS

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

git tf --force configure http://tfs2012:8080/tfs/DefaultCollection $/ProjectName

git tf checkin

После этого получил следующую ошибку:

git-tf: TF14019: The changeset 31129 does not exist

В чем дело?

PS: старый репозиторий имеет версию 2010, а новый - 2012. Новый репозиторий пуст

1 ответ

Решение

Я был бы упущен, если бы не упомянул, что git-tf не предназначался для замены надлежащего инструмента миграции и интеграции.

Тем не менее, если вы хотите попробовать, вы не можете просто git tf clone хранилище, а затем git tf checkin на другой сервер. git-tf maps фиксирует изменения, чтобы обеспечить согласованность в репозиториях git и TFS. Таким образом, когда вы меняете пульт, он ищет эти наборы изменений на новом сервере.

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

Самый простой и надежный способ сделать это - не вмешиваясь в данные конфигурации - это просто клонировать репозиторий git и настроить клонированный репозиторий на новом сервере. Тогда ты можешь git tf checkin к нему:

$ git clone ~/path/to/repo ~/path/to/cloned_repo
Cloning into cloned_repo...
done.
$ cd ~/path/to/cloned_repo
$ git-tf configure https://youraccount.visualstudio.com/DefaultCollection $/YourProject
Configuring repository
$ git-tf checkin 
Connecting to TFS...
Checking in to $/YourProject: 100%, done.                            

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

$ cd ~/path/to/cloned_repo
$ git pull ~/path/to/repo
$ git-tf checkin
Connecting to TFS...
Checking in to $/YourProject: 100%, done. 
Другие вопросы по тегам