All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: "W. Trevor King" <wking@tremily.us>
Cc: Git <git@vger.kernel.org>, Francesco Pretto <ceztko@gmail.com>,
	Jens Lehmann <Jens.Lehmann@web.de>,
	Heiko Voigt <hvoigt@hvoigt.net>
Subject: Re: [RFC v2] submodule: Respect requested branch on all clones
Date: Tue, 07 Jan 2014 11:21:28 -0800	[thread overview]
Message-ID: <xmqqtxdfd2dj.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: <20140107184659.GF11060@odin.tremily.us> (W. Trevor King's message of "Tue, 7 Jan 2014 10:47:00 -0800")

"W. Trevor King" <wking@tremily.us> writes:

> On Tue, Jan 07, 2014 at 10:15:25AM -0800, Junio C Hamano wrote:
>>     submodule: respect requested branch on all clones
>> 
>>     The previous code only checked out the requested branch in cmd_add
>>     but not in cmd_update; this left the user on a detached HEAD after
>>     an update initially cloned, and subsequent updates using rebase or
>>     merge mode will kept the HEAD detached, unless the user moved to the
>>     desired branch himself.
>> 
>>     Move the branch-checkout logic into module_clone, where it can be
>>     shared by cmd_add and cmd_update.  Also update the initial checkout
>>     command to use 'rebase' to preserve branches setup during
>>     module_clone.  This way, unless the user explicitly asks to work on
>>     a detached HEAD, subsequent updates all happen on the specified
>>     branch, which matches the end-user expectation much better.
>
> This looks reasonable to me, but there are still changes I'd like to
> make for a v3 (e.g. using submodule.<name>.update to trigger local
> branch checkout).  However, I'm currently leaning towards a new 'git
> submodule checkout' command with explicit preferred local submodule
> branches (see [1]).  Maybe this should all wait until Jens rolls out
> his update implementation [2]?

Sounds good.  I'll backburner this one, then.

>> Having writing all the above and then looking at the patch again, it
>> is not immediately obvious to me where you use "rebase" when doing
>> the initial checkout, though.
>
> It's used to shift the local branch reference from from the
> (arbitrary) cloned remote branch tip to the explicit submodule $sha1.

The objective is not what I was questioning. In the patch I see

	git checkout -f -q -B "$branch" "origin/$branch"

used in the module_clone (which I think makes sense), and then
cmd_update uses "git reset --hard -q" to make sure that the working
tree matches the commit $sha1 obtained from the superproject's
gitlink (which may make $branch diverged from origin/$branch, but
still I think it makes sense).

But there is no 'rebase' I can see in the codepath, which was what I
was puzzled about.

  reply	other threads:[~2014-01-07 19:21 UTC|newest]

Thread overview: 144+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-30  1:49 [PATCH/RFC] Introduce git submodule add|update --attach Francesco Pretto
2013-12-31 20:05 ` Phil Hord
2014-01-02 18:48   ` Francesco Pretto
2014-01-13 17:31     ` Junio C Hamano
2014-01-02 20:07 ` Junio C Hamano
2014-01-02 23:42   ` Francesco Pretto
2014-01-03  0:26     ` Francesco Pretto
2014-01-03  8:49     ` Francesco Pretto
2014-01-03 18:06       ` [PATCH] submodule: Respect reqested branch on all clones W. Trevor King
2014-01-04 22:09         ` Heiko Voigt
2014-01-04 22:54           ` W. Trevor King
2014-01-05  0:39             ` Heiko Voigt
2014-01-05  1:08               ` W. Trevor King
2014-01-05  3:53         ` Francesco Pretto
2014-01-05 16:17           ` [RFC v2] submodule: Respect requested " W. Trevor King
2014-01-05 19:48             ` Heiko Voigt
2014-01-05 21:24               ` W. Trevor King
2014-01-05 22:57                 ` Heiko Voigt
2014-01-05 23:39                   ` W. Trevor King
2014-01-06  0:33                     ` W. Trevor King
2014-01-06  1:12                       ` W. Trevor King
2014-01-06 16:02                         ` Heiko Voigt
2014-01-06 23:10                           ` Francesco Pretto
2014-01-06 23:32                             ` Francesco Pretto
2014-01-07 18:27                               ` Junio C Hamano
2014-01-07 19:19                                 ` Francesco Pretto
2014-01-07 19:45                                   ` W. Trevor King
2014-01-07 19:48                                     ` Francesco Pretto
2014-01-07 21:37                                       ` W. Trevor King
2014-01-07 21:51                                         ` Francesco Pretto
2014-01-07 22:38                                     ` Heiko Voigt
2014-01-08  0:17                                       ` Francesco Pretto
2014-01-08  1:05                                         ` W. Trevor King
2014-01-08  2:12                                           ` Francesco Pretto
2014-01-08 23:07                                           ` Francesco Pretto
2014-01-09  0:03                                             ` W. Trevor King
2014-01-09  1:09                                               ` Francesco Pretto
2014-01-09  2:22                                                 ` W. Trevor King
2014-01-09  8:31                                                 ` Jens Lehmann
2014-01-09 17:32                                                   ` W. Trevor King
2014-01-09 19:23                                                     ` Jens Lehmann
2014-01-09 19:55                                                       ` W. Trevor King
2014-01-09 21:40                                                         ` Jens Lehmann
2014-01-09 22:18                                                           ` W. Trevor King
2014-01-14 10:24                                                             ` Heiko Voigt
2014-01-14 16:57                                                               ` W. Trevor King
2014-01-14 20:58                                                                 ` Heiko Voigt
2014-01-14 21:42                                                                   ` W. Trevor King
2014-01-14 22:19                                                                     ` Heiko Voigt
2014-01-14 22:39                                                                       ` W. Trevor King
2014-01-14 21:46                                                               ` Re: " Heiko Voigt
2014-01-14 22:22                                                                 ` W. Trevor King
2014-01-14 22:42                                                                   ` Heiko Voigt
2014-01-15  0:02                                                                     ` Francesco Pretto
2014-01-16  4:09                                                                     ` [PATCH v4 0/6] submodule: Local branch creation in module_clone W. Trevor King
2014-01-16  4:10                                                                       ` [PATCH v4 1/6] submodule: Make 'checkout' update_module explicit W. Trevor King
2014-01-16 18:46                                                                         ` Junio C Hamano
2014-01-16 19:22                                                                           ` W. Trevor King
2014-01-16 20:07                                                                             ` Francesco Pretto
2014-01-16 20:19                                                                               ` W. Trevor King
2014-01-16  4:10                                                                       ` [PATCH v4 2/6] submodule: Document module_clone arguments in comments W. Trevor King
2014-01-16  4:10                                                                       ` [PATCH v4 3/6] submodule: Explicit local branch creation in module_clone W. Trevor King
2014-01-16 19:18                                                                         ` Junio C Hamano
2014-01-16 19:29                                                                           ` W. Trevor King
2014-01-16 19:43                                                                         ` Junio C Hamano
2014-01-16 21:12                                                                           ` W. Trevor King
2014-01-16  4:10                                                                       ` [PATCH v4 4/6] t7406: Just-cloned checkouts update to the gitlinked hash with 'reset' W. Trevor King
2014-01-16 19:22                                                                         ` Junio C Hamano
2014-01-16 19:32                                                                           ` W. Trevor King
2014-01-16 20:24                                                                             ` Junio C Hamano
2014-01-16  4:10                                                                       ` [PATCH v4 5/6] t7406: Add explicit tests for head attachement after cloning updates W. Trevor King
2014-01-16  4:10                                                                       ` [PATCH v4 6/6] Documentation: Describe 'submodule update' modes in detail W. Trevor King
2014-01-16 20:21                                                                         ` Junio C Hamano
2014-01-16 20:55                                                                           ` W. Trevor King
2014-01-16 21:02                                                                             ` John Keeping
2014-01-16 21:16                                                                               ` W. Trevor King
2014-01-16 21:55                                                                             ` Junio C Hamano
2014-01-17  2:37                                                                               ` W. Trevor King
2014-01-26 20:45                                                                                 ` [PATCH v5 0/4] submodule: Local branch creation in module_clone W. Trevor King
2014-01-26 20:45                                                                                   ` [PATCH v5 1/4] submodule: Make 'checkout' update_module explicit W. Trevor King
2014-01-27  1:32                                                                                     ` Eric Sunshine
2014-01-27  1:59                                                                                       ` W. Trevor King
2014-01-26 20:45                                                                                   ` [PATCH v5 2/4] submodule: Document module_clone arguments in comments W. Trevor King
2014-01-26 20:45                                                                                   ` [PATCH v5 3/4] submodule: Explicit local branch creation in module_clone W. Trevor King
2014-01-26 20:45                                                                                   ` [PATCH v5 4/4] Documentation: Describe 'submodule update --remote' use case W. Trevor King
2014-01-16 22:18                                                                           ` [PATCH v4 6/6] Documentation: Describe 'submodule update' modes in detail Philip Oakley
2014-01-16 22:35                                                                             ` W. Trevor King
2014-01-08 23:54                                           ` Re: [RFC v2] submodule: Respect requested branch on all clones Francesco Pretto
2014-01-09  0:23                                             ` W. Trevor King
2014-01-07 19:52                                   ` Francesco Pretto
2014-01-06 15:47                     ` Re: " Heiko Voigt
2014-01-06 17:22                       ` W. Trevor King
2014-01-05 21:27             ` Francesco Pretto
2014-01-05 21:47               ` W. Trevor King
2014-01-05 22:01                 ` W. Trevor King
2014-01-06 14:47               ` Heiko Voigt
2014-01-06 16:56                 ` Junio C Hamano
2014-01-06 17:37                   ` W. Trevor King
2014-01-06 21:32                     ` Junio C Hamano
2014-01-07  0:55                   ` Francesco Pretto
2014-01-07 18:15             ` Junio C Hamano
2014-01-07 18:47               ` W. Trevor King
2014-01-07 19:21                 ` Junio C Hamano [this message]
2014-01-07 19:50                   ` W. Trevor King
2014-01-05  2:50       ` [PATCH 1/2] git-submodule.sh: Support 'checkout' as a valid update command Francesco Pretto
2014-01-05  2:50         ` [PATCH 2/2] Introduce git submodule attached update Francesco Pretto
2014-01-05 19:55           ` Francesco Pretto
2014-01-05 20:33           ` Heiko Voigt
2014-01-05 21:46             ` Francesco Pretto
2014-01-06 14:06               ` Heiko Voigt
2014-01-06 17:47                 ` Francesco Pretto
2014-01-06 19:21                   ` David Engster
2014-01-07 19:27                     ` W. Trevor King
2014-01-07  4:10                   ` W. Trevor King
2014-01-07 22:36                     ` Preferred local submodule branches (was: Introduce git submodule attached update) W. Trevor King
2014-01-07 23:52                       ` W. Trevor King
2014-01-08  3:47                         ` Preferred local submodule branches W. Trevor King
2014-01-08  4:06                           ` W. Trevor King
2014-01-09  6:17                             ` [RFC v3 0/4] " W. Trevor King
2014-01-09  6:17                               ` [RFC v3 1/4] submodule: Add helpers for configurable local branches W. Trevor King
2014-01-09  6:17                               ` [RFC v3 2/4] submodule: Teach 'update' to preserve " W. Trevor King
2014-01-09  6:17                               ` [RFC v3 3/4] submodule: Teach 'add' about a configurable local-branch W. Trevor King
2014-01-15  0:18                                 ` Francesco Pretto
2014-01-15  1:02                                   ` W. Trevor King
2014-01-09  6:17                               ` [RFC v3 4/4] submodule: Add a new 'checkout' command W. Trevor King
2014-01-12  1:08                               ` Tight submodule bindings (was: Preferred local submodule branches) W. Trevor King
2014-01-13 19:37                                 ` Tight submodule bindings Jens Lehmann
2014-01-13 20:07                                   ` W. Trevor King
2014-01-13 22:13                                 ` Junio C Hamano
2014-01-14  2:44                                   ` W. Trevor King
2014-01-07 22:51                     ` Re: [PATCH 2/2] Introduce git submodule attached update Heiko Voigt
2014-01-07 23:14                       ` W. Trevor King
2014-01-07 18:56                   ` Junio C Hamano
2014-01-07 19:44                     ` Francesco Pretto
2014-01-07 19:07                   ` Junio C Hamano
2014-01-07 19:25                     ` Francesco Pretto
2014-01-05 23:22             ` Francesco Pretto
2014-01-06 14:18               ` Heiko Voigt
2014-01-06 15:58                 ` W. Trevor King
2014-01-05 20:20         ` [PATCH 1/2] git-submodule.sh: Support 'checkout' as a valid update command Heiko Voigt
2014-01-05 20:44         ` W. Trevor King
2014-01-06 16:20           ` Junio C Hamano
2014-01-06 17:42             ` Junio C Hamano
2014-01-06 17:52               ` Francesco Pretto

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=xmqqtxdfd2dj.fsf@gitster.dls.corp.google.com \
    --to=gitster@pobox.com \
    --cc=Jens.Lehmann@web.de \
    --cc=ceztko@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=hvoigt@hvoigt.net \
    --cc=wking@tremily.us \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.