2014-09-03 139 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 

,你应该能够解决这个问题。