On Mar 10, 2009, at 2:45 PM, Caleb Cushing wrote:
git://github.com/xenoterracide/git-test-case.git
clone that. checkout branch 1. then git merge master to see my end
failure.
steps to create
add a file in a branch with a line (or more).
create a new branch based on this branch and check it out.
in the new branch mv the file into a directory with the same name as
the file was. add -u and add the file so git sees the rename.
checkout the original branch add some lines. checkout the new branch
merge. the merge will go fine.
remove a line from the new branches file.
checkout master. add another line to that file.
checkout new branch and attempt to merge.
you should now see the point that may test case is at.
Yes, this is because automatic renaming detection fails
with this kind of toy examples. Git can't infer the file
was renamed because almost nothing is similar enough. Take
a look at the attached script and run it with 'sh test.sh'
and 'sh test.sh real_test', and look at the difference.
- Pieter
#!/usr/bin/bish
if test x$1 = x
then
EXTRA_LINES=""
else
EXTRA_LINES="line2\nline3\nline4\nline5"
fi
FILE1="a\n$EXTRA_LINES"
FILE2="a\n$EXTRA_LINES\nb"
FILE3="$EXTRA_LINES\nb"
FILE4="a\n$EXTRA_LINES\nb\nc"
echo -e $FILE2
rm -rf test_dir
mkdir test_dir
cd test_dir
git init
echo -e $FILE1 > file
git add file
git commit -am "Initial"
git checkout -b branch
git mv file a
mkdir file
git mv a file/file
git commit -m "Move"
git checkout master
echo -e $FILE2 > file
git commit -am "Add a line"
git checkout branch
git merge master
echo -e $FILE3 > file/file
git commit -am "Remove line"
git checkout master
echo -e $FILE4 > file
git commit -am "Add another line"
git checkout branch
git merge master
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html