Browse Source
The merge-recursive machinery failed to refresh the cache entry for a merge result in a couple of places, resulting in an unnecessary merge failure, which has been fixed. * en/t3433-rebase-stat-dirty-failure: merge-recursive: fix the refresh logic in update_file_flags t3433: new rebase testcase documenting a stat-dirty-like failuremaint

2 changed files with 53 additions and 2 deletions
@ -0,0 +1,48 @@
@@ -0,0 +1,48 @@
|
||||
#!/bin/sh |
||||
|
||||
test_description='git rebase across mode change' |
||||
|
||||
. ./test-lib.sh |
||||
|
||||
test_expect_success 'setup' ' |
||||
mkdir DS && |
||||
>DS/whatever && |
||||
git add DS && |
||||
git commit -m base && |
||||
|
||||
git branch side1 && |
||||
git branch side2 && |
||||
|
||||
git checkout side1 && |
||||
git rm -rf DS && |
||||
test_ln_s_add unrelated DS && |
||||
git commit -m side1 && |
||||
|
||||
git checkout side2 && |
||||
>unrelated && |
||||
git add unrelated && |
||||
git commit -m commit1 && |
||||
|
||||
echo >>unrelated && |
||||
git commit -am commit2 |
||||
' |
||||
|
||||
test_expect_success 'rebase changes with the apply backend' ' |
||||
test_when_finished "git rebase --abort || true" && |
||||
git checkout -b apply-backend side2 && |
||||
git rebase side1 |
||||
' |
||||
|
||||
test_expect_success 'rebase changes with the merge backend' ' |
||||
test_when_finished "git rebase --abort || true" && |
||||
git checkout -b merge-backend side2 && |
||||
git rebase -m side1 |
||||
' |
||||
|
||||
test_expect_success 'rebase changes with the merge backend with a delay' ' |
||||
test_when_finished "git rebase --abort || true" && |
||||
git checkout -b merge-delay-backend side2 && |
||||
git rebase -m --exec "sleep 1" side1 |
||||
' |
||||
|
||||
test_done |
Loading…
Reference in new issue