Git Tfs克隆意外停止并发出警告



我正在从TFS迁移到GIT。救赎近在咫尺,却又遥不可及;)

我有一个项目p,它包含许多文件夹、主干和分支。我对克隆其中一根树干和相关的枝条很感兴趣。

树干下面的所有分支都是树干的分支。没有任何内容被重新定基或重命名。据我所见,所有分支都正确配置了父级。


方法1:使用分支进行克隆

git-tfs-clone[tfs URL]$/[Path]/[To]/[Trank]repo--带分支--调试--可恢复--工作空间="repo-ws"

当遇到第一个合并变更集时,git-tfs会查找其他分支,确认它找到的每个分支的父级(所有这些看起来都很好),并正确识别分支提交。我看到"已提取变更集x",然后进程退出并显示警告和无法提取的分支列表(包括第一个合并变更集中涉及的分支)

LOGS

C6345 = 01a40cfde6632218d5b95f3fed494b3c9913f74b  
GC Countdown: 190  
Looking for changeset 6346 in git repository...  
=> Commit not found!  
Looking for changeset 6346 in git repository...
Tfs branches found:  
- $/[Team Project]/[The Branch]  
Looking to find branch '$/[Team Project]/[The Branch]' in all TFS branches...  
Looking for all branches...  
Found parent branch : $/[Team Project]/[The Trunk]  
Found C5051 on branch $/[Team Project]/[The Branch]

--其他分支在此登录--

=> Working on TFS branch : $/[Team Project]/[The Branch]  
Looking for changeset 5051 in git repository...

--其他分支在此登录--

Fetching remote :default  
Try fetching changesets...  
info: refs/remotes/tfs/default: Getting changesets from 6346 to current ...  
Looking for changeset 6346 in git repository...  
Looking for changeset 6346 in git repository...  
Changeset fetched!

--gc在此登录--

warning: Some Tfs branches could not have been initialized:
- $/[Team Project]/[The Branch]

--其他分支在此登录--

此处流程退出,参考问题461


方法2:克隆然后初始化所有分支git-tfs-clone[tfs URL]$/[Path]/[To]/[Trank]repo--debug--resumable--workspace="repo-ws"cd回购&git-tfs分支--init--所有

此处的日志实际上与上述日志相同。当我执行分支初始化时,我看到git-tfs搜索分支,然后找到父级,然后分支变更集以分支初始化警告结束,如上所述。


在单独的主干/分支上进行验证为了测试事物的行为,我在一个干净的主干上创建了一个类似的场景。在trunk(T)上进行一些提交,然后在branch(B)上进行几个提交,在B上进行几次提交,在T上进行几项提交,然后将B合并到T上,然后在T上执行一次提交,再在B上执行一项提交(只是为了反映我的prod场景)。使用Git TFS上面的任何一种方法都可以正确地克隆TFS回购并管理分支(方法2显示合并的方式与重新设置主干的方式不同)。


我的下一步是遍历git-tfs代码,看看我是否能解决这个问题,但这很耗时,因为我正在使用VPN,大约有4000个提交到代码库中。这需要很长时间。

我正在寻找可能对git-tfs过程造成污染的指标。我可以看什么,有什么常见的场景吗?有什么方法可以快速调试吗?

从源代码构建最新版本解决了这个特殊的问题。自上次发布(0.20)以来,已经进行了许多提交。

最新更新