Browse Source
Current git will nuke an untracked file during a rename/delete conflict if (a) there is an untracked file whose name matches the source of a rename and (b) the merge is done in a certain direction. Add a simple testcase demonstrating this bug. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
Elijah Newren
13 years ago
committed by
Junio C Hamano
2 changed files with 37 additions and 1 deletions
@ -0,0 +1,36 @@
@@ -0,0 +1,36 @@
|
||||
#!/bin/sh |
||||
|
||||
test_description="recursive merge corner cases w/ renames but not criss-crosses" |
||||
# t6036 has corner cases that involve both criss-cross merges and renames |
||||
|
||||
. ./test-lib.sh |
||||
|
||||
test_expect_success 'setup rename/delete + untracked file' ' |
||||
echo "A pretty inscription" >ring && |
||||
git add ring && |
||||
test_tick && |
||||
git commit -m beginning && |
||||
|
||||
git branch people && |
||||
git checkout -b rename-the-ring && |
||||
git mv ring one-ring-to-rule-them-all && |
||||
test_tick && |
||||
git commit -m fullname && |
||||
|
||||
git checkout people && |
||||
git rm ring && |
||||
echo gollum >owner && |
||||
git add owner && |
||||
test_tick && |
||||
git commit -m track-people-instead-of-objects && |
||||
echo "Myyy PRECIOUSSS" >ring |
||||
' |
||||
|
||||
test_expect_failure "Does git preserve Gollum's precious artifact?" ' |
||||
test_must_fail git merge -s recursive rename-the-ring && |
||||
|
||||
# Make sure git did not delete an untracked file |
||||
test -f ring |
||||
' |
||||
|
||||
test_done |
Loading…
Reference in new issue