Hi I have a repository "bogustree" that contains tags "test_tag" and "foo_tag" (both on the same branch, with "test_tag" pointing to an older commit). I also have repository "R", which contains "test_tag" from "bogustree" and a branch "b" created from "test_tag". The active branch in R is "master". Now I want to do the following from R: git-fetch bogustree refs/tags/foo_tag:refs/heads/b but this fails with the message given below. The interesting part is that git-fetch tries to write a "non-commit object" and indeed I have no idea what this thing is (the commit pointed to by "foo_tag" has commit ID cab0a25388f1884a1ab16bd0d66f877c0b36f1d5). Another interesting detail is that the command fails and then continues anyway. That seems wrong in itself. # remote: Counting objects: 6, done. # remote: Compressing objects: 100% (2/2), done. # remote: Total 4 (delta 0), reused 0 (delta 0) # Unpacking objects: 100% (4/4), done. # error: Trying to write non-commit object 5f61233bc5dad0f3e25ecea65457f5bb528174d2 to branch refs/heads/B # From /home/qliklas/bogustree/b/b # 72f0622..5f61233 foo_tag -> b # From /home/qliklas/bogustree/b/b # * [new tag] foo_tag -> foo_tag # * [new tag] test_tag -> test_tag Why can't I fetch like this? The manual page for git-fetch says that <refspec> The canonical format of a <refspec> parameter is +?<src>:<dst>; that is, an optional plus +, followed by the source ref, followed by a colon :, followed by the destination ref. The remote ref that matches <src> is fetched, and if <dst> is not empty string, the local ref that matches it is fast forwarded using <src>. Again, if the optional plus + is used, the local ref is updated even if it does not result in a fast forward update. so I think it should be OK? BR / Klas -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html