diff options
author | Johannes Schindelin <Johannes.Schindelin@gmx.de> | 2008-12-22 22:16:51 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-12-24 00:14:08 -0800 |
commit | 4fb1a19d502f4a2ca47bfb75cce605f3447819e6 (patch) | |
tree | 0a7fe923328aa0011f7651e9d32b20926b52e590 /git-rebase--interactive.sh | |
parent | f5b49ea6191c2d631d1d70305b25d5db3bf05c92 (diff) | |
download | git-4fb1a19d502f4a2ca47bfb75cce605f3447819e6.tar.gz |
rebase -i -p: leave a --cc patch when a merge could not be redone
The result is easier to review this way, and the merge resolution has to be
done inside the work tree, not by adjusting "the patch" anyway.
Diffstat (limited to 'git-rebase--interactive.sh')
-rwxr-xr-x | git-rebase--interactive.sh | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index 89c39ebc9d..c8b0861c08 100755 --- a/git-rebase--interactive.sh +++ b/git-rebase--interactive.sh @@ -115,9 +115,18 @@ mark_action_done () { } make_patch () { - parent_sha1=$(git rev-parse --verify "$1"^) || - die "Cannot get patch for $1^" - git diff-tree -p "$parent_sha1".."$1" > "$DOTEST"/patch + sha1_and_parents="$(git rev-list --parents -1 "$1")" + case "$sha1_and_parents" in + ?*' '?*' '?*) + git diff --cc $sha1_and_parents + ;; + ?*' '?*) + git diff-tree -p "$1^!" + ;; + *) + echo "Root commit" + ;; + esac > "$DOTEST"/patch test -f "$DOTEST"/message || git cat-file commit "$1" | sed "1,/^$/d" > "$DOTEST"/message test -f "$DOTEST"/author-script || |