rebase: extract am code to new source file
Extract the code for am-based rebase to git-rebase--am.sh. Suggested-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
fa99c1e1e1
commit
46df82d5fa
1
.gitignore
vendored
1
.gitignore
vendored
@ -102,6 +102,7 @@
|
||||
/git-quiltimport
|
||||
/git-read-tree
|
||||
/git-rebase
|
||||
/git-rebase--am
|
||||
/git-rebase--interactive
|
||||
/git-rebase--merge
|
||||
/git-receive-pack
|
||||
|
1
Makefile
1
Makefile
@ -369,6 +369,7 @@ SCRIPT_SH += git-merge-resolve.sh
|
||||
SCRIPT_SH += git-mergetool.sh
|
||||
SCRIPT_SH += git-pull.sh
|
||||
SCRIPT_SH += git-quiltimport.sh
|
||||
SCRIPT_SH += git-rebase--am.sh
|
||||
SCRIPT_SH += git-rebase--interactive.sh
|
||||
SCRIPT_SH += git-rebase--merge.sh
|
||||
SCRIPT_SH += git-rebase.sh
|
||||
|
34
git-rebase--am.sh
Normal file
34
git-rebase--am.sh
Normal file
@ -0,0 +1,34 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (c) 2010 Junio C Hamano.
|
||||
#
|
||||
|
||||
. git-sh-setup
|
||||
|
||||
case "$action" in
|
||||
continue)
|
||||
git am --resolved --3way --resolvemsg="$resolvemsg" &&
|
||||
move_to_original_branch
|
||||
exit
|
||||
;;
|
||||
skip)
|
||||
git am --skip -3 --resolvemsg="$resolvemsg" &&
|
||||
move_to_original_branch
|
||||
exit
|
||||
;;
|
||||
esac
|
||||
|
||||
test -n "$rebase_root" && root_flag=--root
|
||||
|
||||
git format-patch -k --stdout --full-index --ignore-if-in-upstream \
|
||||
--src-prefix=a/ --dst-prefix=b/ \
|
||||
--no-renames $root_flag "$revisions" |
|
||||
git am $git_am_opt --rebasing --resolvemsg="$resolvemsg" &&
|
||||
move_to_original_branch
|
||||
ret=$?
|
||||
test 0 != $ret -a -d "$state_dir" &&
|
||||
echo $head_name > "$state_dir/head-name" &&
|
||||
echo $onto > "$state_dir/onto" &&
|
||||
echo $orig_head > "$state_dir/orig-head" &&
|
||||
echo "$GIT_QUIET" > "$state_dir/quiet"
|
||||
exit $ret
|
@ -91,7 +91,7 @@ run_specific_rebase () {
|
||||
GIT_EDITOR=:
|
||||
export GIT_EDITOR
|
||||
fi
|
||||
test "$type" != am && . git-rebase--$type
|
||||
. git-rebase--$type
|
||||
}
|
||||
|
||||
run_pre_rebase_hook () {
|
||||
@ -261,17 +261,11 @@ continue)
|
||||
}
|
||||
read_basic_state
|
||||
run_specific_rebase
|
||||
git am --resolved --3way --resolvemsg="$resolvemsg" &&
|
||||
move_to_original_branch
|
||||
exit
|
||||
;;
|
||||
skip)
|
||||
git reset --hard HEAD || exit $?
|
||||
read_basic_state
|
||||
run_specific_rebase
|
||||
git am -3 --skip --resolvemsg="$resolvemsg" &&
|
||||
move_to_original_branch
|
||||
exit
|
||||
;;
|
||||
abort)
|
||||
git rerere clear
|
||||
@ -324,14 +318,12 @@ then
|
||||
shift
|
||||
upstream=`git rev-parse --verify "${upstream_name}^0"` ||
|
||||
die "invalid upstream $upstream_name"
|
||||
unset root_flag
|
||||
upstream_arg="$upstream_name"
|
||||
else
|
||||
test -z "$onto" && die "You must specify --onto when using --root"
|
||||
unset upstream_name
|
||||
unset upstream
|
||||
root_flag="--root"
|
||||
upstream_arg="$root_flag"
|
||||
upstream_arg=--root
|
||||
fi
|
||||
|
||||
# Make sure the branch to rebase onto is valid.
|
||||
@ -457,23 +449,4 @@ else
|
||||
revisions="$upstream..$orig_head"
|
||||
fi
|
||||
|
||||
if test -z "$do_merge"
|
||||
then
|
||||
git format-patch -k --stdout --full-index --ignore-if-in-upstream \
|
||||
--src-prefix=a/ --dst-prefix=b/ \
|
||||
--no-renames $root_flag "$revisions" |
|
||||
git am $git_am_opt --rebasing --resolvemsg="$resolvemsg" &&
|
||||
move_to_original_branch
|
||||
ret=$?
|
||||
test 0 != $ret -a -d "$apply_dir" &&
|
||||
echo $head_name > "$apply_dir/head-name" &&
|
||||
echo $onto > "$apply_dir/onto" &&
|
||||
echo $orig_head > "$apply_dir/orig-head" &&
|
||||
echo "$GIT_QUIET" > "$apply_dir/quiet"
|
||||
exit $ret
|
||||
fi
|
||||
|
||||
# start doing a rebase with git-merge
|
||||
# this is rename-aware if the recursive (default) strategy is used
|
||||
|
||||
run_specific_rebase
|
||||
|
Loading…
Reference in New Issue
Block a user