I've been using git-tfs to clone my TFS projects and upload them to git repos in Visual Studio Online. Most of the projects clone successfully and are ready to go, but several are stopping at very old changesets and complete as if they worked properly. No error messages are thrown for most, but one throws a few errors similar to "Changeset ID ### is a merge operation but the parent could not be found." Why would git-tfs randomly stop cloning changes at very old changesets when no error is thrown?
Running git tfs clone
with -d
shows all of the debug output, and the very end shows GC Countdown: 84
, then it goes into normal cleanup (git gc
) for the end of the clone. Seems to me that it recognizes there are more commits but it isn't fetching them for some reason. Tried running with --resumable --ignore-branches
also, same problem.
The error usually occurs when a changeset is a merge operation and the source branch of that merge is deleted permanently from TFS. Refer to this link for details: https://github.com/git-tfs/git-tfs/pull/628
GC Countdown: 84 does not mean that there are commits left. When you run git-tfs command, it will lists the ID of the changesets that been cloned. You can check the history of your original project from Source Control Explorer or via tf history command and then compare with the IDs listed by git-tfs to see if all the changes have been cloned.