Code

Merge branch 'jn/gitweb-blame'
[git.git] / git-rebase--interactive.sh
index 89c39ebc9df58a85011219dff21ffac9dd6a53ab..c8b0861c085035c85002f6e2fe969369ea32016f 100755 (executable)
@@ -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 ||