Simon,

Thanks for that!  I deleted the HEAD refs locally and also in the dph.git repo 
on darcs.haskell.org (they were in somewhat different spots).  It seems to be 
fine now.

Cheers,
Manuel


Simon Marlow:
> Ok, I've just been reading up on this and I think I understand it.
> 
> HEAD is normally a symbolic name for the commit that corresponds to the 
> working copy in a repository.  It is stored in .git/HEAD (mine usually says 
> "ref: refs/heads/master" indicating that HEAD is tracking the master branch).
> 
> However, a *remote* can also have a HEAD, which is a default branch on that 
> remote (the default branch is used if you omit the branch name when using 
> that remote).  It is not a property of the remote repo, it is something that 
> gets set up on the local repo when you create the reference to the remote.  
> Whether a remote has a HEAD or not probably depends on how it was created - 
> some of my remotes have HEADs and some don't, I'm not entirely sure why.
> 
> You can set the HEAD for a remote with 'git remote set-head <branch>'.  This 
> has no effect other than to give you a way to avoid typing a branch name 
> sometimes.  Nothing gets pushed to the remote repo.
> 
> Now, having an actual real branch called "HEAD" is almost certainly going to 
> cause pain - I'm surprised that git allowed it to happen.  Mind you, git 
> isn't known for going out of its way to be helpful... :)  You might have to 
> manually remove the branch by removing .git/refs/heads/HEAD and deleting any 
> references to it in .git/config.
> 
> Cheers,
>   Simon
> 
> ________________________________________
> From: Manuel M T Chakravarty [[email protected]]
> Sent: 20 June 2011 13:23
> To: Simon Peyton-Jones
> Cc: Simon Marlow; [email protected]; [email protected]
> Subject: Re: [commit: dph] branch 'HEAD' created
> 
> Simon Peyton-Jones:
>> HEAD is part of git.  It means "the current branch".
>> http://stackoverflow.com/questions/2304087/what-is-git-head-exactly
>> 
>> It's definitely confusing to have a branch actually called HEAD!
>> 
>> If we do, let's nuke it.  But I think that
>>  haskell.org/HEAD -> haskell.org/master              <=========== HERE
>> simply means that the "current branch" at the origin is master.
> 
> If that is the case, why does my GitHub GHC repository not have that same set 
> up?  GitHub only has
> 
>> | >   origin-GitHub/encoding
>> | >   origin-GitHub/ghc-generics
>> | >   origin-GitHub/ghc-new-co
>> | >   origin-GitHub/local-gc
>> | >   origin-GitHub/master
>> | >   origin-GitHub/monad-comp
>> | >   origin-GitHub/patch-4404
>> | >   origin-GitHub/patch-5084
>> | >   origin-GitHub/supercompiler
> 
> which is all, except HEAD.  Something must be different in the haskell.org 
> repo.
> 
>> In any case would you like to delete the HEAD branch in dph that you created 
>> by mistake?  If indeed it still exists, which it doesn't seem to:
>> 
>> simonpj@cam-04-unx:~/code/validate-HEAD/libraries/dph$ git branch -r
>> origin/HEAD -> origin/master
>> origin/master
> 
> I think it does, because it is this funny alias:
> 
>> origin/HEAD -> origin/master
> 
> If I try to delete it, I get the following error message:
> 
>> error: dst refspec HEAD matches more than one.
>> error: failed to push some refs to 
>> 'http://darcs.haskell.org/packages/dph.git'
> 
> 
> Manuel
> 
>> | -----Original Message-----
>> | From: Manuel M T Chakravarty [mailto:[email protected]]
>> | Sent: 19 June 2011 13:00
>> | To: Simon Marlow
>> | Cc: [email protected]
>> | Subject: Re: [commit: dph] branch 'HEAD' created
>> |
>> | No, I didn't mean to do that.  In fact, I did actually find it quite 
>> confusing that
>> | the ghc repos have always had HEAD branches:
>> |
>> | > withinreason chak 214 (.../Code/ghc): git branch -r
>> | >   ghc-test/master
>> | >   haskell.org/HEAD -> haskell.org/master          <=========== HERE
>> | >   haskell.org/encoding
>> | >   haskell.org/ghc-generics
>> | >   haskell.org/ghc-new-co
>> | >   haskell.org/local-gc
>> | >   haskell.org/master
>> | >   haskell.org/monad-comp
>> | >   haskell.org/patch-4404
>> | >   haskell.org/patch-5084
>> | >   haskell.org/supercompiler
>> | >   origin-GitHub/encoding
>> | >   origin-GitHub/ghc-generics
>> | >   origin-GitHub/ghc-new-co
>> | >   origin-GitHub/local-gc
>> | >   origin-GitHub/master
>> | >   origin-GitHub/monad-comp
>> | >   origin-GitHub/patch-4404
>> | >   origin-GitHub/patch-5084
>> | >   origin-GitHub/supercompiler
>> |
>> | As you can see that is not the case in the GitHub remote (also listed 
>> above).  The '-
>> | > haskell.org/master' seems to indicate that it is a kind of alias (but 
>> I'm not sure
>> | - this is beyond my git-fu).
>> |
>> | I didn't explicitly created a HEAD branch in the dph repo.  I think I 
>> accidentally
>> | pushed to HEAD instead of master and that made git send out that email.  
>> But it seems
>> | to have also broken something about that branch alias thingy, as I now get 
>> an error
>> | message when 'git fetch'ing in the repo I pushed from :/
>> |
>> | Can we maybe get rid of all the HEAD (alias) branches to avoid such 
>> mistakes?
>> |
>> | Manuel
>> |
>> |
>> | Simon Marlow:
>> | > Do you really want a branch called 'HEAD'? That's likely to cause 
>> confusion surely?
>> | >
>> | > Cheers,
>> | > Simon
>> | >
>> | > -----Original Message-----
>> | > From: Manuel Chakravarty
>> | > Sent: 19 June 2011 06:56
>> | > To: [email protected]
>> | > Subject: [commit: dph] branch 'HEAD' created
>> | >
>> | >
>> | > Repository : ssh://darcs.haskell.org//srv/darcs/packages/dph
>> | >
>> | > New branch : HEAD
>> | > Referencing: d43c0162a58e40ae645176324091ad76d3cdfce9
> 
> 
> 


_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to