[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Problems when using externals while merging from trunk into a branch

From: Uwe Voellger <U.Voellger_at_intershop.de>
Date: Mon, 16 Nov 2009 13:52:32 +0100

General information:
OS: Windows XP (SVN server and client)
Release: 1.6.6 downloaded from Collabnet

When merging all changes from trunk into a branch created from the
trunk, and if the trunk (and branch) contain several externals pointing
to the same target, svn:mergeinfo is attached to the wrong directories
resp. files.
In the scenario described by the test steps, I would expect the
- Since no real changes happened, the only change we would expect is a
mergeinfo attached to the root of merge, which is in this case
\testrepository\br?anches\linktest. In case the external target is not
below this root, I would expect a second mergeinfo entry attached to the
link target, but in this case this was not true.
- I would not expect any change on source1 or source2 since they reside
below the merge root.
- Attaching mergeinfo to source1\linksource1.txt or
source2\linksource1.txt is an error: there is no such file. Only an
external exists, which should get the property change if it does not
reside below the merge root.
- An error also occurs when trying to commit the changes in one step
since both source1\linksource1.txt and source2\linksource1.txt point to
the same target.

Steps to reproduce:
>cd /D D:\svn_wc\testreporsitory\trunk
>mkdir linktest
>mkdir linktest\source1
>mkdir linktest\source2
>mkdir linktest\target
>echo "hello" > linktest\target\linktarget1.txt
>echo "hello" > linktest\target\linktarget2.txt
>dir /S /B linktest
>svn add linktest
A linktest
A linktest\source1
A linktest\source2
A linktest\target
A linktest\target\linktarget1.txt
A linktest\target\linktarget2.txt
>svn commit -m "dirs and files" linktest
Adding linktest
Adding linktest\source1
Adding linktest\source2
Adding linktest\target
Adding linktest\target\linktarget1.txt
Adding linktest\target\linktarget2.txt
Transmitting file data ..
Committed revision 21.
>svn propset svn:externals "^/trunk/linkte?st/target/linktarget?1.txt
linksource1.txt" linktest/source1
property 'svn:externals' set on 'linktest\source1'
>svn propset svn:externals "^/trunk/linkte?st/target/linktarget?1.txt
linksource1.txt" linktest/source2
property 'svn:externals' set on 'linktest\source2'
Attention: this leads to Bug 3518; commit first and update than to avoid
the bug!
>svn update linktest
Fetching external item into 'linktest\sourc?e2\linksource1.txt?'
E linktest\source2\l?inksource1.txt
Updated external to revision 21.
Fetching external item into 'linktest\sourc?e1\linksource1.txt?'
E linktest\source1\l?inksource1.txt
Updated external to revision 21.
Updated to revision 21.
>svn commit linktest -m "Adding first links"
Sending linktest\source1
Sending linktest\source2
Committed revision 22.
>svn copy D:\svn_wc\testrepo?rsitory\trunk\link?test
A D:\svn_wc\testrepo?rsitory\branches\l?inktest
>svn commit -m "branching" ..\branches\linktest
Adding branches\linktest
Adding branches\linktest\source1
Adding branches\linktest\?source1\linksource1?.txt
svn: Commit failed (details follow):
path not found
>svn update ../branaches/linktest
Skipped '..\branaches\linktest'
>svn update ../branches/linktest
At revision 22.
Some changes happened between 22 and 24 to avoid 3518 so this commit can
be executed...
>svn commit -m "branching" ..\branches\linktest
Adding branches\linktest
Committed revision 25.
cd /D D:\svn_wc2\testrep?ository\branches\l?inktest
>svn merge D:\svn_wc2\testrep?ository\trunk\link?test
>svn diff
Property changes on: .
Added: svn:mergeinfo
   Merged /trunk/linktest:r25
Property changes on: source1
Added: svn:mergeinfo
   Merged /trunk/linktest/source1:r25*
Property changes on: source1\linksource1.txt
Added: svn:mergeinfo
   Merged /trunk/linktest/sour?ce1/linksource1.txt:?r25
Property changes on: source2
Added: svn:mergeinfo
   Merged /trunk/linktest/source2:r25*
Property changes on: source2\linksource1.txt
Added: svn:mergeinfo
   Merged /trunk/linktest/sour?ce2/linksource1.txt:?r25

Received on 2009-11-16 13:56:00 CET

This is an archived mail posted to the Subversion Dev mailing list.