On Fri, 2011-10-14 at 13:31 +0200, Daniele Segato wrote: > Hi all, > > > following from a discussion in IRC freenode #git between me, sitaram an > shruggar > > > step to reproduce: > > $ mkdir /tmp/gitbug > $ cd /tmp/gitbug/ > > $ # create a fake remote repo > $ git init --bare remote.git > > $ # clone it with the user that will generate the bug > $ git clone remote.git buggenerator > $ cd buggenerator/ > $ touch whatever > $ git add . > $ git commit -m "first commit" > $ git push origin master > > $ # now clone the same repo the other guy is the "victim" of this issue > $ cd .. > $ git clone remote.git victim > > $ # time to create the remote HEAD branch > $ cd buggenerator/ > $ git push origin HEAD:HEAD > > $ # the remote refs has been created! > $ git ls-remote > > $ # another commit > $ echo 'any change' >> whatever > $ git commit -a -m "some change" > $ git push origin master > > $ # the refs/heads/HEAD is still where it was > $ git ls-remote > > $ # now from the victim perspective > $ cd ../victim/ > > $ # every time executing a fetch he will get a force update > $ # or maybe even an error, seen it my real repo, don't know how > $ # to reproduce > $ git fetch > $ git fetch > $ git ls-remote > $ git fetch > $ git ls-remote > $ git branch -a This should also help understanding what happen in the "victim" local repo at every fetch: mastro@mastroc3 /tmp/gitbug/victim (master) $ git br -av * master 11d0a12 [behind 1] first commit remotes/origin/HEAD -> origin/master remotes/origin/master 77852ef some change mastro@mastroc3 /tmp/gitbug/victim (master) $ git fetch >From /tmp/gitbug/remote + 77852ef...11d0a12 HEAD -> origin/HEAD (forced update) mastro@mastroc3 /tmp/gitbug/victim (master) $ git br -av * master 11d0a12 first commit remotes/origin/HEAD -> origin/master remotes/origin/master 11d0a12 first commit regards, Daniele -- 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