rebase -i: use diff plumbing instead of porcelain
When diff drivers are installed, calling "git diff <tree1>..<tree2>" calls those drivers. This borks the patch generation of rebase -i. So use "git diff-tree -p" instead, which does not call diff drivers. Noticed by Johannes Sixt. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Lars Hjemli <hjemli@gmail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
parent
922aa807f5
commit
f3d5e463f0
@ -78,7 +78,7 @@ mark_action_done () {
|
||||
|
||||
make_patch () {
|
||||
parent_sha1=$(git rev-parse --verify "$1"^ 2> /dev/null)
|
||||
git diff "$parent_sha1".."$1" > "$DOTEST"/patch
|
||||
git diff-tree -p "$parent_sha1".."$1" > "$DOTEST"/patch
|
||||
}
|
||||
|
||||
die_with_patch () {
|
||||
@ -302,7 +302,7 @@ do_next () {
|
||||
git update-ref -m "$message" $HEADNAME $NEWHEAD $OLDHEAD &&
|
||||
git symbolic-ref HEAD $HEADNAME && {
|
||||
test ! -f "$DOTEST"/verbose ||
|
||||
git diff --stat $(cat "$DOTEST"/head)..HEAD
|
||||
git diff-tree --stat $(cat "$DOTEST"/head)..HEAD
|
||||
} &&
|
||||
rm -rf "$DOTEST" &&
|
||||
warn "Successfully rebased and updated $HEADNAME."
|
||||
|
Loading…
Reference in New Issue
Block a user