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.
This commit is contained in:
parent
f5b49ea619
commit
4fb1a19d50
@ -115,9 +115,18 @@ mark_action_done () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
make_patch () {
|
make_patch () {
|
||||||
parent_sha1=$(git rev-parse --verify "$1"^) ||
|
sha1_and_parents="$(git rev-list --parents -1 "$1")"
|
||||||
die "Cannot get patch for $1^"
|
case "$sha1_and_parents" in
|
||||||
git diff-tree -p "$parent_sha1".."$1" > "$DOTEST"/patch
|
?*' '?*' '?*)
|
||||||
|
git diff --cc $sha1_and_parents
|
||||||
|
;;
|
||||||
|
?*' '?*)
|
||||||
|
git diff-tree -p "$1^!"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Root commit"
|
||||||
|
;;
|
||||||
|
esac > "$DOTEST"/patch
|
||||||
test -f "$DOTEST"/message ||
|
test -f "$DOTEST"/message ||
|
||||||
git cat-file commit "$1" | sed "1,/^$/d" > "$DOTEST"/message
|
git cat-file commit "$1" | sed "1,/^$/d" > "$DOTEST"/message
|
||||||
test -f "$DOTEST"/author-script ||
|
test -f "$DOTEST"/author-script ||
|
||||||
|
@ -83,6 +83,7 @@ test_expect_success '--continue works after a conflict' '
|
|||||||
test 2 = $(git ls-files B | wc -l) &&
|
test 2 = $(git ls-files B | wc -l) &&
|
||||||
echo Resolved again > B &&
|
echo Resolved again > B &&
|
||||||
test_must_fail git rebase --continue &&
|
test_must_fail git rebase --continue &&
|
||||||
|
grep "^@@@ " .git/rebase-merge/patch &&
|
||||||
git add B &&
|
git add B &&
|
||||||
git rebase --continue &&
|
git rebase --continue &&
|
||||||
test 1 = $(git rev-list --all --pretty=oneline | grep "Modify A" | wc -l) &&
|
test 1 = $(git rev-list --all --pretty=oneline | grep "Modify A" | wc -l) &&
|
||||||
|
Loading…
Reference in New Issue
Block a user