I've discovered a bug in git subtree related to annotated tags. The command 
'git subtree' will fail if you use an annotated tag as the <refspec>. e.g.:

$ git subtree add -P oldGit https://github.com/git/git.git tags/v1.9.2

Will produce this error:

10ff115f5c572299de4e04ade0d7adb3c75fbf1f is not a valid 'commit' object

The bug isn't found in 1.7.1 (installed subtree manually) but is found in 1.9.0 
and 2.0.0.rc1. 

It's related to the git fetch putting the "wrong" SHA1 in .git/FETCH_HEAD. 
Thus, if you do:

$ git ls-remote https://github.com/git/git.git | grep v1.9.2

You'll see this:
10ff115f5c572299de4e04ade0d7adb3c75fbf1f        refs/tags/v1.9.2
0bc85abb7aa9b24b093253018801a0fb43d01122        refs/tags/v1.9.2^{}

An older version will put the 0bc85a in FETCH_HEAD but newer versions will put 
10ff11 which will not work. I'm new to Git so I don't know when/why that was 
changed but somewhere along the way, that change broke git subtree add. :( A 
workaround is to use lightweight tags but that's not suitable for some. 

To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to