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:
Johannes Schindelin 2008-12-22 22:16:51 +01:00 коммит произвёл Junio C Hamano
Родитель f5b49ea619
Коммит 4fb1a19d50
2 изменённых файлов: 13 добавлений и 3 удалений

Просмотреть файл

@ -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 ||

Просмотреть файл

@ -83,6 +83,7 @@ test_expect_success '--continue works after a conflict' '
test 2 = $(git ls-files B | wc -l) &&
echo Resolved again > B &&
test_must_fail git rebase --continue &&
grep "^@@@ " .git/rebase-merge/patch &&
git add B &&
git rebase --continue &&
test 1 = $(git rev-list --all --pretty=oneline | grep "Modify A" | wc -l) &&