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

Re: Git clone behave strange after active branch change in bare repo

From: Jeff King <hidden>
Date: 2016-06-15 22:53:16

On Mon, Mar 12, 2012 at 11:10:03AM +0100, Zdenek Crha wrote:
When I run git clone while 'master' and 'a_branch' point to same
commit, I will get clone with default branch 'master' where I would
expect default branch 'a_branch'.
Yes, this is a known issue. The git protocol does not transfer the
contents of the symref; the client must guess the branch name from the
set of refs that are advertised. This has been discussed before, and
there were even some patches proposed, but I think nobody cared enough
to push it through, as it requires an extension to the protocol.

You can search the list archives for past discussions.
I did few more checks and it seems to me that:

* when active branch is 'master' then default branch in clone is
always master as expected
* when active branch is different from 'master', then the default
branch in clone is a first branch in alfabetically sorted list of
branches that point to same commit as active branch
Exactly. The relevant code is in remote.c:guess_remote_head.

-Peff
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help