Hello > git tag -l foo_tag test_tag > > git branch -a > At this point, I can create the branch "b" from "foo_tag", so the fetch did get me a remote tag. It just didn't update a local branch with the contents (or create a new one). Something that also confuses me is that if branch "b" already exists, then > git-pull bogustree refs/tags/foo_tag:refs/heads/b actually does update branch "b". I find the behaviour quite inconsistent. Unfortunately it isn't a solution for me to fetch tags and then create branches from the tags. I need to be able to update existing branches, and I have to do that without first making such a branch the current branch. Any suggestions? /Klas On Tue, Jun 24, 2008 at 3:38 PM, Santi Béjar <sbejar@xxxxxxxxx> wrote: > On Tue, Jun 24, 2008 at 14:17, Klas Lindberg <klas.lindberg@xxxxxxxxx> wrote: >> 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). > > non-commit object is an object that is not a commit, like a tag, a > blob or a tree, and you are trying to write a tag in refs/heads/. Only > commits objects (no tags) are allowed in refs/heads/. > > >> 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 > > Are you sure it is written as a branch? What is the output of "git tag > -l" and "git branch -a"? > > >> >> 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? > > as long as <src> are commit objects. > > Santi > -- 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