git-tfs 未克隆所有更改

git-tfs not cloning all changes

我一直在使用 git-tfs 克隆我的 TFS 项目并将它们上传到 Visual Studio 在线的 git 存储库。大多数项目成功克隆并准备就绪,但有几个项目在非常旧的变更集处停止并完成,就好像它们正常工作一样。大多数情况下不会抛出错误消息,但会抛出一些类似于 "Changeset ID ### is a merge operation but the parent could not be found." 的错误消息,为什么 git-tfs 在没有抛出错误时会随机停止在非常旧的变更集上克隆更改?

运行 git tfs clone-d 显示所有调试输出,最后显示 GC Countdown: 84,然后进入正常清理(git gc) 用于克隆的结尾。在我看来,它认识到有更多的提交,但由于某种原因它没有获取它们。也试过 运行 --resumable --ignore-branches,同样的问题。

当变更集是合并操作并且该合并的源分支从 TFS 中永久删除时,通常会发生该错误。详情参考这个link:https://github.com/git-tfs/git-tfs/pull/628

GC 倒计时:84 并不意味着还有提交。当您使用 运行 git-tfs 命令时,它将列出已克隆的变更集的 ID。您可以从源代码管理资源管理器或通过 tf history 命令检查原始项目的历史记录,然后与 git-tfs 列出的 ID 进行比较以查看是否所有更改都已被克隆。