Git-TF将所有更改推送到另一个TFS存储库

时间:2013-04-23 02:58:26

标签: git tfs tfs2012 git-tf

我将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.新存储库是空的

1 个答案:

答案 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.