我将TFS
repo克隆到我的本地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:Old repository有一个版本2010,新版本是2012.新存储库是空的
答案 0 :(得分:4)
如果我不提及git-tf并不是要替代正确的迁移和集成工具,那将是我的疏忽。
也就是说,如果你想尝试,你不能简单地git tf clone
一个存储库,然后git tf checkin
到另一个服务器。 git-tf
映射提交更改集以确保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.