From: Francesco Pretto Date: Wed, 08 Jan 2014 23:54:54 GMT Subject: Re: Re: [RFC v2] submodule: Respect requested branch on all clones Message-ID: In-Reply-To: <20140108010504.GE26583@odin.tremily.us> 2014/1/8 W. Trevor King : > I also prefer 'checkout' to 'head', because 'checkout' > already exists in non-submodule Git for switching between local > branches. > Reasons I would loosely support 'git submodule checkout' -------------------------------------------------------------------------------- 1) It's true that 'git submodule checkout' would also often run 'git checkout'. Reasons, as an user, I seriously would *not* like 'git submodule checkout' ----------------------------------------------------------------------------------------------------- 1) 'git submodule checkout' would also touch '.git/config' and '.gitmodules', and I don't like much the idea of a 'checkout' command touching config files. It looks dirty. 2) Having 'git checkout', 'git checkout --recurse-submodules' and finally 'git submodule checkout' is too much for me. Also, in my proposal, 'git submodule [tobedecided] --attach' would also merge orphaned commits by default, and 'checkout' is not about merge. Reasons I would fervently support 'git submodule head' ---------------------------------------------------------------------------- 1) It tells immediately that this command is about HEAD of the submodule, and will take care of it. Newcomers would loveit if they don't like their HEAD state; 2) "head" is unspecific enough to admit it can also touch '.git/config' and '.gitmodules'. Said this, it seems Heiko[1] proposed a similar syntax and the only difference was about names, not behavior of the command to be added (if we eventually take this path, ofc). > On Wed, Jan 08, 2014 at 01:17:49AM +0100, Francesco Pretto wrote: >> # Attach the submodule HEAD to . >> # Also set ".git/config" 'submodule..branch' to >> $ git submodule head -b --attach > > I prefer submodule..local-branch for the submodule's local > branch name. I think this was still part of your original misunderstanding about my "git submodule head". This command would touch 'branch' property anyway because '-b ' would still be the remote branch, even in the case you have a 'local-branch' property (maybe to be coupled here with a --local-branch switch). Greetings, Francesco [1] http://marc.info/?l=git&m=138913435216349&w=2