diff options
author | Johan Herland <johan@herland.net> | 2009-06-03 00:59:12 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-06-03 00:09:16 -0700 |
commit | 42b491786260eb17d97ea9fb1c4b70075bca9523 (patch) | |
tree | 3c330360a9fdc6abf984c5497ae3c9668009cf10 /git-submodule.sh | |
parent | 329484256e0fe42676e93669122e7a5a007ef4ed (diff) | |
download | git-42b491786260eb17d97ea9fb1c4b70075bca9523.tar.gz |
git-submodule: add support for --merge.
'git submodule update --merge' merges the commit referenced by the
superproject into your local branch, instead of checking it out on
a detached HEAD.
As evidenced by the addition of "git submodule update --rebase", it
is useful to provide alternatives to the default 'checkout' behaviour
of "git submodule update". One such alternative is, when updating a
submodule to a new commit, to merge that commit into the current
local branch in that submodule. This is useful in workflows where
you want to update your submodule from its upstream, but you cannot
use --rebase, because you have downstream people working on top of
your submodule branch, and you don't want to disrupt their work.
Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-submodule.sh')
-rwxr-xr-x | git-submodule.sh | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/git-submodule.sh b/git-submodule.sh index f384c6b2b4..3aff37970a 100755 --- a/git-submodule.sh +++ b/git-submodule.sh @@ -5,7 +5,7 @@ # Copyright (c) 2007 Lars Hjemli USAGE="[--quiet] [--cached] \ -[add [-b branch] <repo> <path>]|[status|init|update [-i|--init] [-N|--no-fetch]|summary [-n|--summary-limit <n>] [<commit>]] \ +[add [-b branch] <repo> <path>]|[status|init|update [-i|--init] [-N|--no-fetch] [--rebase|--merge]|summary [-n|--summary-limit <n>] [<commit>]] \ [--] [<path>...]|[foreach <command>]|[sync [--] [<path>...]]" OPTIONS_SPEC= . git-sh-setup @@ -331,6 +331,10 @@ cmd_update() shift update="rebase" ;; + -m|--merge) + shift + update="merge" + ;; --) shift break @@ -396,6 +400,11 @@ cmd_update() action="rebase" msg="rebased onto" ;; + merge) + command="git merge" + action="merge" + msg="merged in" + ;; *) command="git checkout $force -q" action="checkout" |