Hello all,
Hello all. I save a directory with svn:externals set, external is checked out. "svn status -v"
reports it as 'X' for both WC 1.6 and WC 1.7. When I move the directory with svn:externals property
into another directory: for SVN 1.6 case external is still reported as 'X', but in the case of
SVN1.7 it is reported as unversioned.
I tried to investiage the problem.
svn_wc__internal_walk_status calls svn_wc__db_externals_defined_below to fill
'wb.externals' map.
svn_wc__db_externals_defined_below performs just a simple SQL request to EXTERNALS table without
considering local moves.
Later send_unversioned_item just performs a lookup of a moved path
(directory2/directory1/external) in this map and of course doesn't find anything.
Steps to reproduce:
/tmp$ svnadmin create test
/tmp$ svn co file:///tmp/test test-co
Checked out revision 0.
/tmp$ cd test-co
/tmp/test-co$ svn mkdir directory1 directory2 directory3
A directory1
A directory2
A directory3
/tmp/test-co$ svn propset svn:externals 'file:///tmp/test/directory3 external' directory1
property 'svn:externals' set on 'directory1'
/tmp/test-co$ svn commit -m Initial
Adding directory1
Adding directory2
Adding directory3
Committed revision 1.
/tmp/test-co$ svn update
Updating '.':
Fetching external item into 'directory1/external':
External at revision 1.
At revision 1.
/tmp/test-co$ svn status -v
1 1 dmit10 .
1 1 dmit10 directory1
X directory1/external
1 1 dmit10 directory2
1 1 dmit10 directory3
Performing status on external item at 'directory1/external':
1 1 dmit10 /tmp/test-co/directory1/external
/tmp/test-co$ svn mv directory1 directory2/directory1
A directory2/directory1
D directory1
/tmp/test-co$ svn status -v
1 1 dmit10 .
D 1 1 dmit10 directory1
1 1 dmit10 directory2
A + - 1 dmit10 directory2/directory1
? directory2/directory1/external
1 1 dmit10 directory3
Performing status on external item at 'directory2/directory1/external':
1 1 dmit10 /tmp/test-co/directory2/directory1/external
Received on 2012-05-18 15:52:57 CEST