Problem with merge tracking information in conjunction with file externals
From: Andreas Ländle <al_at_soloplan.de>
Date: Thu, 14 Jan 2010 15:52:09 +0100
Hello,
I discovered an imperfection of subversion 1.6.6 (at least in my eyes) last days when I was merging some files from our trunk into the stable branch.
All the merge tracking information of all files in one directory have been changed.
The detailed situation was the following.
/ (added svn:mergeinfo /trunk:r4)
/directory1 (added svn:mergeinfo /trunk/directory1:r4*)
/directory1/file1 (added svn:mergeinfo /trunk/directory1/file1:r4)
Take into account that file1 represents a few dozen files in the 'directory1'-directory (all with the same 'r4'-mergeinfo).
In my eyes the merge information for /directory1 and the files in it is redundant.
Shouldn't 'Mergeinfo Elision' consolidate the merge-tracking information down to the "root"?
Is this behavior correct? Or have I found a bug or at least an imperfection in subversion?
I have attached a batch script (see below) that reproduces the issue - or at least it should illustrate what I was doing.
How can I avoid the creation of this bunch of merge tracking information during the merge?
Surely, I can revert the merge-information on directory1 before committing my merges (but that seems to be very inconvenient).
Thanks in advance for any hint.
Best regards,
Andreas Ländle
rem create test environment
rmdir TestSvnMerge /S /Q
mkdir TestSvnMerge
cd TestSvnMerge
svnadmin create repos
mkdir project
mkdir project\trunk
mkdir project\trunk\a
mkdir project\trunk\b
echo "EXTERNAL" > project\trunk\b\content.txt
echo "FILE" > project\trunk\a\file1.txt
echo "FILE" > project\trunk\a\file2.txt
svn import project file:///testsvnmerge/repos -m "Import"
rmdir project /S /Q
rem co trunk & create external
svn co file:///testsvnmerge/repos/trunk trunk-wc
svn propset svn:externals "../b/content.txt content.txt" trunk-wc\a
svn ci trunk-wc -m "Added external"
svn update trunk-wc
rem create branch
svn copy file:///testsvnmerge/repos/trunk file:///testsvnmerge/repos/branch -m "Created branch"
svn co file:///testsvnmerge/repos/branch branch-wc
rem edit file (in trunk)
echo "FILE1" > trunk-wc\a\file1.txt
svn ci trunk-wc -m "Edited file"
rem merge from trunk in branch
svn merge -r 3:4 trunk-wc branch-wc
rem visualize the problem
svn diff branch-wc
svn status branch-wc
cd..
**************************************************************************
|
This is an archived mail posted to the Subversion Users mailing list.
This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.