Hello,

In a quick test, we have a project which has the following structure:

/trunk/project/subfolder/file

Next, we create a branch from /trunk/project to

/branches/project/branch1/

We edit file on trunk a first time, changing line1 and commit

Inside branch1, we do a merge from trunk. This creates mergeinfo on
/branches/project/branch1

We edit file on trunk a second time, reverting line1, changing line2 and commit

Inside branch1/subfolder, we do a merge from trunk/subfolder.


This last step ignores the mergeinfo on /branches/project/branch1/ and
merges all revisions again since we made the branch. I thought
inherrited mergeinfo would be used here to see that a first part of
the revision range did not need to be merged again. However, this does
not happen.

The result is that we merge the combination of the 2 edits, which is
only changing line2.
However, we had already merged the change to line1, so the revert on
line1 should have been merged too.

See attachment for a reproduction scenario.

Is this scenario supposed to be handled by SVN ?
We are in a corporate environment, using 1.5.1. Is the above scenario
known to be handled correctly in later versions?
Is it a known issue?
Do I try something which is not supported by SVN?


Kind regards,

Pieter-Jan Busschaert
mkdir mergetest
cd mergetest
mkdir trunk
cd trunk
mkdir subdir
cd subdir
echo "line1 00" > test.txt
echo "" >> test.txt
echo "line2 02" >> test.txt
echo "" >> test.txt
echo "line3 01" >> test.txt
cd ..
cd ..
svn import https://<URL>/mergetest
cd ..
rm -rf mergetest
svn co https://<URL>/mergetest mergetest
cd mergetest

svn up
svn cp https://<URL>/mergetest/trunk https://<URL>/mergetest/branch
svn up

cd trunk/subdir
echo "line1 00" > test.txt
echo "" >> test.txt
echo "line2 02" >> test.txt
echo "" >> test.txt
echo "line3 02" >> test.txt
svn ci
cd ../..

cd branch
svn merge https://<URL>/mergetest/trunk
svn ci
svn propget svn:mergeinfo .
cd ..

cd trunk/subdir
echo "line1 00" > test.txt
echo "" >> test.txt
echo "line2 03" >> test.txt
echo "" >> test.txt
echo "line3 01" >> test.txt
svn ci
cd ../..

cd branch/subdir
svn propget svn:mergeinfo .
svn propget svn:mergeinfo ..
svn merge https://<URL>/mergetest/trunk/subdir
svn propget svn:mergeinfo .
svn propget svn:mergeinfo ..
svn ci
cd ../..



Reply via email to