[PATCH/RFC 05/10] Rework redo_merge
---
git-rebase--interactive.sh | 14 ++++++++------
1 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh
index 973770e..1698c3e 100755
--- a/git-rebase--interactive.sh
+++ b/git-rebase--interactive.sh
@@ -115,14 +115,17 @@ has_action () {
}
redo_merge() {
- author_script=$(get_author_ident_from_commit $sha1)
- eval "$author_script"
+ local sha1
+ sha1=$1
+ shift
+
+ eval "$(get_author_ident_from_commit $sha1)"
msg="$(git cat-file commit $sha1 | sed -e '1,/^$/d')"
+
if ! GIT_AUTHOR_NAME="$GIT_AUTHOR_NAME" \
GIT_AUTHOR_EMAIL="$GIT_AUTHOR_EMAIL" \
GIT_AUTHOR_DATE="$GIT_AUTHOR_DATE" \
- output git merge $STRATEGY -m "$msg" \
- $new_parents
+ output git merge $STRATEGY -m "$msg" "$@"
then
git rerere
printf "%s\n" "$msg" > "$GIT_DIR"/MERGE_MSG
@@ -198,8 +201,7 @@ pick_one_preserving_merges () {
case "$new_parents" in
' '*' '*)
# No point in merging the first parent, that's HEAD
- new_parents=${new_parents# $first_parent}
- redo_merge
+ redo_merge $sha1 ${new_parents# $first_parent}
;;
*)
output git cherry-pick "$@" ||
--
1.5.4.5