Thread (6 messages) flat view 6 messages, 5 authors, 2016-06-15

Re: Git shouldn't allow to push a new branch called HEAD

From: Daniele Segato <hidden>
Date: 2016-06-15 22:52:15

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help