git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff King <peff@peff.net>
To: Jakub Narebski <jnareb@gmail.com>
Cc: Dmitry Ivankov <divanorama@gmail.com>, git@vger.kernel.org
Subject: Re: git clone (ssh://) skips detached HEAD
Date: Thu, 2 Jun 2011 22:52:26 -0400	[thread overview]
Message-ID: <20110603025226.GA32600@sigill.intra.peff.net> (raw)
In-Reply-To: <201106022202.33393.jnareb@gmail.com>

On Thu, Jun 02, 2011 at 10:02:31PM +0200, Jakub Narebski wrote:

> > No, that is always supposed to be a symbolic ref. Making it a real ref
> > would be confusing. I don't think fetch should look at HEAD at all; it's
> > outside its refspec. However, clone does treat HEAD specially, and
> > should probably convert the remote's detached HEAD into a local detached
> > HEAD (we already do if it's part of referenced history).
> 
> Hmmm... in ordinary case (not on detached HEAD) "git fetch" would never
> modify my local branches nor my local HEAD.

Right. Fetch should never touch those things. Nor should it ever touch
refs/remotes/$remote/HEAD, as that is not really "where is the remote
HEAD pointing" but rather "what would I like the alias $remote to point
to"? Clone sets it to the remote HEAD, as that is the most obvious
choice; but if the user changes it, we should leave their choice in
place.

> On the other hand IIRC origin/HEAD do not follow switching branches at
> origin, and is staying at the value at clone (or "git remote
> set-head"), isn't it?

Right.

> So what to do when HEAD on origin is detached?  Modify .git/HEAD, or
> maybe .git/refs/remotes/origin/HEAD?

I don't think fetch should do _anything_ with the remote HEAD. It's
outside of its refspec scope. This is purely about what clone should do,
and that's an easier problem, because it's not "modify" but rather
"create".

-Peff

      reply	other threads:[~2011-06-03  2:52 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-01 21:30 git clone (ssh://) skips detached HEAD Dmitry Ivankov
2011-06-01 22:05 ` Jeff King
2011-06-01 22:18   ` Dmitry Ivankov
2011-06-01 22:22   ` Junio C Hamano
2011-06-01 22:47     ` Jeff King
2011-06-01 22:53       ` Jeff King
2011-06-03  5:09       ` Jeff King
2011-06-03  5:10         ` [PATCH 1/3] t: add tests for cloning remotes with " Jeff King
2011-06-03  5:11         ` [PATCH 2/3] consider only branches in guess_remote_head Jeff King
2011-06-03  5:18         ` [PATCH 3/3] clone: always fetch remote HEAD Jeff King
2011-06-03  5:36           ` Sverre Rabbelier
2011-06-03  5:43             ` Jeff King
2011-06-03 14:51               ` Jeff King
2011-06-03 16:28                 ` Junio C Hamano
2011-06-03 18:10             ` Jeff King
2011-06-04  1:50               ` Sverre Rabbelier
2011-06-06 16:08                 ` Jeff King
2011-06-06  0:47               ` Junio C Hamano
2011-06-06  1:00                 ` Junio C Hamano
2011-06-06 13:05                   ` Sverre Rabbelier
2011-06-06 13:57                     ` Junio C Hamano
2011-06-06 16:11                   ` Jeff King
2011-06-06 19:05                     ` Sverre Rabbelier
2011-06-07 17:10                       ` Jeff King
2011-06-07 17:20                         ` Sverre Rabbelier
2011-06-07 17:18                     ` [PATCH 0/8] minor import/export remote helper fixes Jeff King
2011-06-07 17:19                       ` [PATCH 1/8] transport-helper: fix minor leak in push_refs_with_export Jeff King
2011-06-07 17:19                       ` [PATCH 2/8] git-remote-testgit: exit gracefully after push Jeff King
2011-06-07 17:48                         ` Sverre Rabbelier
2011-06-07 17:20                       ` [PATCH 3/8] t5800: factor out some ref tests Jeff King
2011-06-07 17:22                         ` Sverre Rabbelier
2011-06-07 17:20                       ` [PATCH 4/8] t5800: document some non-functional parts of remote helpers Jeff King
2011-06-07 17:25                         ` Sverre Rabbelier
2011-06-07 17:28                           ` Jeff King
2011-06-07 17:34                             ` Sverre Rabbelier
2011-06-07 17:51                               ` Jeff King
2011-06-07 17:53                                 ` Sverre Rabbelier
2011-06-07 17:55                                   ` Jeff King
2011-06-08 23:19                         ` Junio C Hamano
2011-06-09  0:11                           ` Jeff King
2011-06-09  0:43                             ` Junio C Hamano
2011-06-09  0:45                               ` Jeff King
2011-06-09  6:20                                 ` Sverre Rabbelier
2011-06-07 17:20                       ` [PATCH 5/8] teach remote-testgit to import non-HEAD refs Jeff King
2011-06-08 23:21                         ` Junio C Hamano
2011-06-09  0:17                           ` Jeff King
2011-06-07 17:21                       ` [PATCH 6/8] teach remote-testgit to import multiple refs Jeff King
2011-06-07 17:21                       ` [PATCH 7/8] transport-helper: don't feed bogus refs to export push Jeff King
2011-06-07 17:31                         ` Sverre Rabbelier
2011-06-07 17:21                       ` [PATCH 8/8] git_remote_helpers: push all refs during a non-local export Jeff King
2011-06-07 17:32                         ` Sverre Rabbelier
2011-06-07 17:42                           ` Jeff King
2011-06-07 17:44                             ` Sverre Rabbelier
2011-06-06 20:31           ` [PATCH 3/3] clone: always fetch remote HEAD Junio C Hamano
2011-06-06 22:08             ` Jeff King
2011-06-07 23:01               ` Jeff King
2011-06-07 23:03                 ` [PATCH 1/2] make copy_ref globally available Jeff King
2011-06-07 23:03                 ` [PATCH 2/2] clone: always fetch remote HEAD Jeff King
2011-06-07 23:18                 ` [PATCH 3/3] " Junio C Hamano
2011-06-03 16:11         ` git clone (ssh://) skips detached HEAD Junio C Hamano
2011-06-03 18:48           ` Jeff King
2011-06-01 22:42   ` Jakub Narebski
2011-06-01 22:51     ` Jeff King
2011-06-02 20:02       ` Jakub Narebski
2011-06-03  2:52         ` Jeff King [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20110603025226.GA32600@sigill.intra.peff.net \
    --to=peff@peff.net \
    --cc=divanorama@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=jnareb@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).