2014-09-03 140 views
1

長話短說,有一個tfs服務器停機。備份是一天(不在我的控制下)。用git tf或git tfs恢復丟失的tfs changeset

我們使用git tfs和git tf與服務器交談。當我執行git tfs fetch時,出現缺少變更集的錯誤。

有沒有辦法將缺少的缺失變更集從我的本地git推送到tfs服務器?

+0

轉發到git tf dev – bryanmac 2014-09-04 00:43:47

+0

在最糟糕的情況下,您可以進行批量檢出,覆蓋磁盤上最新版本的所有文件並重新檢入。這將爲您提供一次大規模檢查隨着當天的所有變化。只要你當天沒有分支和合並,你就會好起來的。 – jessehouwing 2014-09-04 00:50:53

+0

我遇到的其中一個問題是基於rebase,git tfs和git tf會報告它有TFS服務器中缺少的tfs變更集。 到目前爲止,我發現的唯一解決方案是重新登錄TFS repo,並對文件進行差異化以複製本地較新的文件,然後將這些文件批量推回到TFS中......但是我丟失了缺少的更改集連同他們的評論/作者 – Chadit 2014-09-04 10:18:31

回答

2

如果我很好地理解了這個問題,您應該編輯倉庫.git文件夾中的git-tf文件。該文件包含changset < =>提交地圖和從TFS下載的最新變更集的編號。文件內容可能如下所示:

[git-tf "commits"] 
    changeset-11705 = d45df44afd49402363e400ff9dd3e4e57730c146 
    changeset-13531 = a6db40aa074c92dcef718f9fb0edf267518d01f4 
    changeset-13532 = f67ffc2555136c251212894ce78f01fa33b4e249 
    changeset-13533 = 9e6e0a05aa286dd3b80ef166f3dccd43714c84f4 
    changeset-13534 = e0a0701569adc90aea54ed53071d146de5b03e95 
    changeset-13535 = 26d7a3608174441760c94c3bc5d6f17b047d4ae4 
    changeset-13536 = e377b2d726074b4e94f584983a2985b8750e0df7 
[git-tf "changesets"] 
    commit-d45df44afd49402363e400ff9dd3e4e57730c146 = 11705 
    hwm = 13536 
    commit-a6db40aa074c92dcef718f9fb0edf267518d01f4 = 13531 
    commit-f67ffc2555136c251212894ce78f01fa33b4e249 = 13532 
    commit-9e6e0a05aa286dd3b80ef166f3dccd43714c84f4 = 13533 
    commit-e0a0701569adc90aea54ed53071d146de5b03e95 = 13534 
    commit-26d7a3608174441760c94c3bc5d6f17b047d4ae4 = 13535 
    commit-e377b2d726074b4e94f584983a2985b8750e0df7 = 13536 

假設TFS服務器上缺少更改集13536和13535。如果刪除線

changeset-13535 = 26d7a3608174441760c94c3bc5d6f17b047d4ae4 
    changeset-13536 = e377b2d726074b4e94f584983a2985b8750e0df7 

commit-26d7a3608174441760c94c3bc5d6f17b047d4ae4 = 13535 
    commit-e377b2d726074b4e94f584983a2985b8750e0df7 = 13536 

和修改HWM值:

hwm = 13534 

,你應該能夠解決這個問題。