Jean-Christophe Gillet <[email protected]> writes:
> %SVN% propset svn:externals "^/trunk/dir@2 dir_external" .
> %SVN% update
> %SVN% ci -mm
> %SVN% st -u
> rem status of external against good revision number => report up-to-date =>
> GOOD
>
> %SVN% propset svn:externals "^/trunk/dir@4 dir_external" .
> %SVN% update
> %SVN% ci -mm
> rem status of external against wrong revision number => report a newer
> revision exist on the server instead of up-to-date => BAD
> echo ==================================================
> echo %SVN% st -u
> %SVN% st -u
> echo ==================================================
> echo svn:external property is "^/trunk/dir@4 dir_external"
> echo status of external against wrong revision number (expected value 4)
> echo report newer revision exist on the server instead of up-to-date
> echo ==================================================
Yes, that's a bug. Strictly speaking the out-of-date marker doesn't
indicate a *newer* revision on the server but a *different* revision.
svnadmin create repo
svn mkdir -mm file://`pwd`/repo/A ^/X
svn mkdir -mm file://`pwd`/repo/A/B
svnmucc -mm propset svn:externals '^/A@1 A' file://`pwd`/repo/X
svn co file://`pwd`/repo/X wc
svn propset svn:externals '^/A@2 A' wc
svn ci -mm wc
svn up wc
svn st -u wc
X wc/A
Status against revision: 4
Performing status on external item at 'wc/A':
* 2 wc/A/B
Status against revision: 1
The externals table in wc.db is out-of-sync with the externals
property, the property is r2 while the table is r1:
svn pg svn:externals wc
^/A@2 A
sqlite3 wc/.svn/wc.db "select * from externals"
1|A||1|normal|dir||A|1|1
svn info wc/A/B | grep ^Rev
Revision: 2
The out-of-date marker indicates that wc/A/B@2 is not the same as r1
(where it is deleted).
--
Philip Martin | Subversion Committer
WANdisco // *Non-Stop Data*