2013-04-23 57 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

相關問題