[PATCH v4 0/4] git-submodule add: Add --local-branch option
- From
W. Trevor King <wking@tremily.us>
- Date
- Nov 26, 2012, 21:00 UTC
- Message-ID
- <cover.1353962698.git.wking@tremily.us>
- In-Reply-To
- <20121123175402.GH2806@odin.tremily.us>
From: "W. Trevor King" <wking@tremily.us>
On Fri, Nov 23, 2012 at 12:54:02PM -0500, W. Trevor King wrote:
Show 10 quoted lines
> 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