gitolite branch -- nonexistent ref?
John Ralls
jralls at ceridwen.us
Tue May 21 12:47:41 EDT 2013
On May 21, 2013, at 8:23 AM, Derek Atkins <warlord at MIT.EDU> wrote:
> John Ralls <jralls at ceridwen.us> writes:
>
>> On May 21, 2013, at 5:58 AM, Geert Janssens <janssens-geert at telenet.be> wrote:
>>
>> On Monday 20 May 2013 19:53:02 John Ralls wrote:
>>> On May 20, 2013, at 6:15 PM, Derek Atkins <warlord at MIT.EDU> wrote:
>>>> I was working on setting up a git checkout to build the docs and
>> noticed
>>>> that the 'default branch' is broken in gitolite. I just tried to run:
>>>>
>>>> git clone ssh://git@code.gnucash.org/gnucash.git and it downloaded
>>>> everything until it got to the end, where it gave me:
>>>>
>>>> warning: remote HEAD refers to nonexistent ref, unable to checkout.
>>>>
>>>> Is this something I need to fix on the server? If I clone with "-b
>>>> trunk" then it works.
>>>>
>>>> -derek
>>>>
>>>> PS: gnucash-docs has the same issue..
>>>
>>> Probably your local git is looking for refs:origin:master, which doesn't
>>> exist. If it bugs you you can make it with git branch master
>>> git push origin master
>>> in each repo, which should fix it for future use, though it's a bit of a
>>> trap because master won't get updated.
>> Couldn't this be solved by adapting the svn-git sync script ?
>>
>> Instead of just pulling in the new changes from svn, also run a
>> git rebase trunk master ?
>>
>> Could, but probably shouldn't. It's an invitation to work in -- and to try to
>> commit from -- the wrong branch.
>
> I don't understand why this is the case. In gitolite can't we just say
> that "trunk" == "master"? Or does git not have the concept of aliases?
> I didn't think "master" was anything special.
>
I dug a little more [1][2], and did a
git clone --bare ssh://git@code.gnucash.org/gnucash-docs.git
to see what the default branch is:
> cat gnucash-htdocs.git/HEAD
ref: refs/heads/master
So the client is in fact following the default.
As noted in [2], Github makes changing the default easy, and we've already done that, and it seems
to work. [1] provides the way to set it in gitolite.
Yes, git allows an alias. You can create (in the bare repository) a refs/heads/master:
git symbolic-ref refs/heads/master refs/heads/trunk
I'm being cautious here: The git-svn part of the loop is pretty brittle, and I'm worried about breaking it.
Making that alias (or maybe reversing it and having HEAD point to master) is fine -- maybe even a good idea --
once we've switched to git-only, but I'm worried about messed-up sha1s like we had with the svn url when you
set up gitolite while we're still using git-svn.
Regards,
John Ralls
[1] http://stackoverflow.com/questions/13949093/git-change-default-branch-gitolite
[2] http://stackoverflow.com/a/1485590
More information about the gnucash-devel
mailing list