2013-04-23 151 views
6

我克隆TFS回购我的本地Git然后试图远程更改TFS到另一个仓库使用以下命令将所有的变更传送给它:的Git-TF推动所有更改到另一个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年新的存储库是空的

回答

3

我将是失职,如果我没有提到的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. 
+2

我还发现删除'.git/git-tf'文件夹可以达到同样的效果 – skayred 2013-04-23 04:03:31

+0

今天我明白了,你说了什么。现在它为我工作。尽管如此,如果在以叙述的方式解释步骤之后添加一步一步的指令,这个答案可能会更好。我从这个答案开始,几天后,我最终按照你描述的方式完成了这些步骤。我不得不艰难地学习它。 – 2014-01-20 19:53:40

+0

@SaschaGottfried很高兴这是有帮助的,我为混乱道歉。感谢您的编辑,我同意这更有用。 – 2014-01-20 20:55:52

相关问题