Jean-Christophe Gillet <jchristophe.gil...@gmail.com> 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*

Reply via email to