Klas Lindberg
2008-06-24 12:17:39 UTC
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
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