From: "W. Trevor King" <wking@xxxxxxxxxx> On Fri, Nov 23, 2012 at 12:54:02PM -0500, W. Trevor King wrote: > We could add > > $ git submodule update --branch > > to checkout the gitlinked SHA1 as submodule.<name>.branch in each of > the submodules, leaving the submodules on the .gitmodules-configured > branch. Effectively (for each submodule): > > $ git branch -f $branch $sha1 > $ git checkout $branch I haven't gotten any feedback on this as an idea, but perhaps someone will comment on it as a patch series ;). Changes since v3: * --record=… is now --local-branch=… * Dropped patches 2 ($submodule_ export) and 3 (motivating documentation) * Added local git-config overrides of .gitmodules' submodule.<name>.branch * Added `submodule update --branch` Because you need to recurse through submodules for `update --branch` even if "$subsha1" == "$sha1", I had to amend the conditional controlling that block. This broke one of the existing tests, which I "fixed" in patch 4. I think a proper fix would involve rewriting (clear_local_git_env; cd "$sm_path" && ( (rev=$(git rev-list -n 1 $sha1 --not --all 2>/dev/null) && test -z "$rev") || git-fetch)) || die "$(eval_gettext "Unable to fetch in submodule path '\$sm_path'")" but I'm not familiar enough with rev-list to want to dig into that yet. If feedback for the earlier three patches is positive, I'll work up a clean fix and resubmit. W. Trevor King (4): git-submodule add: Add --local-branch option git-submodule init: Record submodule.<name>.branch in repository config. git-submodule update: Add --branch option Hack fix for 'submodule update does not fetch already present commits' Documentation/config.txt | 9 ++--- Documentation/git-submodule.txt | 32 ++++++++++++----- Documentation/gitmodules.txt | 5 +++ git-submodule.sh | 76 +++++++++++++++++++++++++++++++++-------- t/t7400-submodule-basic.sh | 43 +++++++++++++++++++++++ t/t7406-submodule-update.sh | 50 ++++++++++++++++++++++++++- 6 files changed, 187 insertions(+), 28 deletions(-) -- 1.8.0.3.g95edff1.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html