am: --rebasing

The new option --rebasing is used internally for rebase to tell am that
it is being used for its purpose.  This would leave .dotest/rebasing to
help "completion" scripts tell if the ongoing operation is am or rebase.

Also the option at the same time stands for --binary, -3 and -k which
are always given when rebase drives am as its backend.

Using the information "am" leaves, git-completion.bash tells ongoing
rebase and am apart.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Junio C Hamano 2008-03-04 00:25:06 -08:00
parent e72c74062c
commit 3041c32430
3 changed files with 21 additions and 4 deletions

View File

@ -70,7 +70,15 @@ __git_ps1 ()
local b local b
if [ -d "$g/../.dotest" ] if [ -d "$g/../.dotest" ]
then then
if test -f "$g/../.dotest/rebasing"
then
r="|REBASE"
elif test -f "$g/../.dotest/applying"
then
r="|AM"
else
r="|AM/REBASE" r="|AM/REBASE"
fi
b="$(git symbolic-ref HEAD 2>/dev/null)" b="$(git symbolic-ref HEAD 2>/dev/null)"
elif [ -f "$g/.dotest-merge/interactive" ] elif [ -f "$g/.dotest-merge/interactive" ]
then then

View File

@ -21,7 +21,8 @@ C= pass it through git-apply
p= pass it through git-apply p= pass it through git-apply
resolvemsg= override error message when patch failure occurs resolvemsg= override error message when patch failure occurs
r,resolved to be used after a patch failure r,resolved to be used after a patch failure
skip skip the current patch" skip skip the current patch
rebasing (internal use for git-rebase)"
. git-sh-setup . git-sh-setup
prefix=$(git rev-parse --show-prefix) prefix=$(git rev-parse --show-prefix)
@ -122,7 +123,7 @@ reread_subject () {
prec=4 prec=4
dotest=".dotest" dotest=".dotest"
sign= utf8=t keep= skip= interactive= resolved= binary= sign= utf8=t keep= skip= interactive= resolved= binary= rebasing=
resolvemsg= resume= resolvemsg= resume=
git_apply_opt= git_apply_opt=
@ -147,6 +148,8 @@ do
resolved=t ;; resolved=t ;;
--skip) --skip)
skip=t ;; skip=t ;;
--rebasing)
rebasing=t threeway=t keep=t binary=t ;;
-d|--dotest) -d|--dotest)
die "-d option is no longer supported. Do not use." die "-d option is no longer supported. Do not use."
;; ;;
@ -237,6 +240,12 @@ else
echo "$utf8" >"$dotest/utf8" echo "$utf8" >"$dotest/utf8"
echo "$keep" >"$dotest/keep" echo "$keep" >"$dotest/keep"
echo 1 >"$dotest/next" echo 1 >"$dotest/next"
if test -n "$rebasing"
then
: >"$dotest/rebasing"
else
: >"$dotest/applying"
fi
fi fi
case "$resolved" in case "$resolved" in

View File

@ -376,7 +376,7 @@ fi
if test -z "$do_merge" if test -z "$do_merge"
then then
git format-patch -k --stdout --full-index --ignore-if-in-upstream "$upstream"..ORIG_HEAD | git format-patch -k --stdout --full-index --ignore-if-in-upstream "$upstream"..ORIG_HEAD |
git am $git_am_opt --binary -3 -k --resolvemsg="$RESOLVEMSG" && git am $git_am_opt --rebasing --resolvemsg="$RESOLVEMSG" &&
move_to_original_branch move_to_original_branch
ret=$? ret=$?
test 0 != $ret -a -d .dotest && test 0 != $ret -a -d .dotest &&