зеркало из https://github.com/microsoft/git.git
Merge branch 'bc/fix-rebase-merge-skip' into maint
During "git rebase --merge", a conflicted patch could not be skipped with "--skip" if the next one also conflicted. * bc/fix-rebase-merge-skip: rebase--merge: fix --skip with two conflicts in a row
This commit is contained in:
Коммит
64630d807a
|
@ -53,11 +53,12 @@ continue_merge () {
|
||||||
}
|
}
|
||||||
|
|
||||||
call_merge () {
|
call_merge () {
|
||||||
cmt="$(cat "$state_dir/cmt.$1")"
|
msgnum="$1"
|
||||||
|
echo "$msgnum" >"$state_dir/msgnum"
|
||||||
|
cmt="$(cat "$state_dir/cmt.$msgnum")"
|
||||||
echo "$cmt" > "$state_dir/current"
|
echo "$cmt" > "$state_dir/current"
|
||||||
hd=$(git rev-parse --verify HEAD)
|
hd=$(git rev-parse --verify HEAD)
|
||||||
cmt_name=$(git symbolic-ref HEAD 2> /dev/null || echo HEAD)
|
cmt_name=$(git symbolic-ref HEAD 2> /dev/null || echo HEAD)
|
||||||
msgnum=$(cat "$state_dir/msgnum")
|
|
||||||
eval GITHEAD_$cmt='"${cmt_name##refs/heads/}~$(($end - $msgnum))"'
|
eval GITHEAD_$cmt='"${cmt_name##refs/heads/}~$(($end - $msgnum))"'
|
||||||
eval GITHEAD_$hd='$onto_name'
|
eval GITHEAD_$hd='$onto_name'
|
||||||
export GITHEAD_$cmt GITHEAD_$hd
|
export GITHEAD_$cmt GITHEAD_$hd
|
||||||
|
|
|
@ -33,6 +33,7 @@ test_expect_success setup '
|
||||||
tr "[a-z]" "[A-Z]" <original >newfile &&
|
tr "[a-z]" "[A-Z]" <original >newfile &&
|
||||||
git add newfile &&
|
git add newfile &&
|
||||||
git commit -a -m"side edits further." &&
|
git commit -a -m"side edits further." &&
|
||||||
|
git branch second-side &&
|
||||||
|
|
||||||
tr "[a-m]" "[A-M]" <original >newfile &&
|
tr "[a-m]" "[A-M]" <original >newfile &&
|
||||||
rm -f original &&
|
rm -f original &&
|
||||||
|
@ -41,6 +42,7 @@ test_expect_success setup '
|
||||||
git branch test-rebase side &&
|
git branch test-rebase side &&
|
||||||
git branch test-rebase-pick side &&
|
git branch test-rebase-pick side &&
|
||||||
git branch test-reference-pick side &&
|
git branch test-reference-pick side &&
|
||||||
|
git branch test-conflicts side &&
|
||||||
git checkout -b test-merge side
|
git checkout -b test-merge side
|
||||||
'
|
'
|
||||||
|
|
||||||
|
@ -138,4 +140,17 @@ test_expect_success 'rebase -s funny -Xopt' '
|
||||||
test -f funny.was.run
|
test -f funny.was.run
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'rebase --skip works with two conflicts in a row' '
|
||||||
|
git checkout second-side &&
|
||||||
|
tr "[A-Z]" "[a-z]" <newfile >tmp &&
|
||||||
|
mv tmp newfile &&
|
||||||
|
git commit -a -m"edit conflicting with side" &&
|
||||||
|
tr "[d-f]" "[D-F]" <newfile >tmp &&
|
||||||
|
mv tmp newfile &&
|
||||||
|
git commit -a -m"another edit conflicting with side" &&
|
||||||
|
test_must_fail git rebase --merge test-conflicts &&
|
||||||
|
test_must_fail git rebase --skip &&
|
||||||
|
git rebase --skip
|
||||||
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
|
Загрузка…
Ссылка в новой задаче