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-quiltimport
|
||||||
/git-read-tree
|
/git-read-tree
|
||||||
/git-rebase
|
/git-rebase
|
||||||
|
/git-rebase--am
|
||||||
/git-rebase--interactive
|
/git-rebase--interactive
|
||||||
/git-rebase--merge
|
/git-rebase--merge
|
||||||
/git-receive-pack
|
/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-mergetool.sh
|
||||||
SCRIPT_SH += git-pull.sh
|
SCRIPT_SH += git-pull.sh
|
||||||
SCRIPT_SH += git-quiltimport.sh
|
SCRIPT_SH += git-quiltimport.sh
|
||||||
|
SCRIPT_SH += git-rebase--am.sh
|
||||||
SCRIPT_SH += git-rebase--interactive.sh
|
SCRIPT_SH += git-rebase--interactive.sh
|
||||||
SCRIPT_SH += git-rebase--merge.sh
|
SCRIPT_SH += git-rebase--merge.sh
|
||||||
SCRIPT_SH += git-rebase.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=:
|
GIT_EDITOR=:
|
||||||
export GIT_EDITOR
|
export GIT_EDITOR
|
||||||
fi
|
fi
|
||||||
test "$type" != am && . git-rebase--$type
|
. git-rebase--$type
|
||||||
}
|
}
|
||||||
|
|
||||||
run_pre_rebase_hook () {
|
run_pre_rebase_hook () {
|
||||||
@ -261,17 +261,11 @@ continue)
|
|||||||
}
|
}
|
||||||
read_basic_state
|
read_basic_state
|
||||||
run_specific_rebase
|
run_specific_rebase
|
||||||
git am --resolved --3way --resolvemsg="$resolvemsg" &&
|
|
||||||
move_to_original_branch
|
|
||||||
exit
|
|
||||||
;;
|
;;
|
||||||
skip)
|
skip)
|
||||||
git reset --hard HEAD || exit $?
|
git reset --hard HEAD || exit $?
|
||||||
read_basic_state
|
read_basic_state
|
||||||
run_specific_rebase
|
run_specific_rebase
|
||||||
git am -3 --skip --resolvemsg="$resolvemsg" &&
|
|
||||||
move_to_original_branch
|
|
||||||
exit
|
|
||||||
;;
|
;;
|
||||||
abort)
|
abort)
|
||||||
git rerere clear
|
git rerere clear
|
||||||
@ -324,14 +318,12 @@ then
|
|||||||
shift
|
shift
|
||||||
upstream=`git rev-parse --verify "${upstream_name}^0"` ||
|
upstream=`git rev-parse --verify "${upstream_name}^0"` ||
|
||||||
die "invalid upstream $upstream_name"
|
die "invalid upstream $upstream_name"
|
||||||
unset root_flag
|
|
||||||
upstream_arg="$upstream_name"
|
upstream_arg="$upstream_name"
|
||||||
else
|
else
|
||||||
test -z "$onto" && die "You must specify --onto when using --root"
|
test -z "$onto" && die "You must specify --onto when using --root"
|
||||||
unset upstream_name
|
unset upstream_name
|
||||||
unset upstream
|
unset upstream
|
||||||
root_flag="--root"
|
upstream_arg=--root
|
||||||
upstream_arg="$root_flag"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Make sure the branch to rebase onto is valid.
|
# Make sure the branch to rebase onto is valid.
|
||||||
@ -457,23 +449,4 @@ else
|
|||||||
revisions="$upstream..$orig_head"
|
revisions="$upstream..$orig_head"
|
||||||
fi
|
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
|
run_specific_rebase
|
||||||
|
Loading…
Reference in New Issue
Block a user