我一直在使用git-tfs克隆我的TFS项目并将它们上传到Visual Studio Online中的git repos。大多数项目成功克隆并准备好了,但有些项目正在停止在非常旧的变更集上,并且完成就像它们正常工作一样。大多数情况下都不会抛出任何错误消息,但是会抛出一些类似于“Changeset ID ###的合并操作但无法找到父级的错误”。为什么git-tfs会在没有抛出错误的情况下随机停止克隆非常旧的变更集的更改?
使用git tfs clone
运行-d
显示所有调试输出,最后显示GC Countdown: 84
,然后进入正常清理(git gc
)结束克隆。在我看来,它认识到有更多的提交,但由于某种原因它没有提取它们。尝试与--resumable --ignore-branches
一起运行同样的问题。
答案 0 :(得分:2)
当变更集是合并操作并且从TFS永久删除该合并的源分支时,通常会发生错误。有关详细信息,请参阅此链接:https://github.com/git-tfs/git-tfs/pull/628
GC倒计时:84并不意味着还有提交。运行git-tfs命令时,它将列出已克隆的更改集的ID。您可以从Source Control Explorer或通过tf history命令检查原始项目的历史记录,然后与git-tfs列出的ID进行比较,以查看是否已克隆所有更改。