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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]