From: "W. Trevor King" <[email protected]>
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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html