Spiegel Tal <[email protected]> writes:
> I'm using in my project externals set to explicit revision.
>
> When using svn1.7+ the command "svn status -v -u" used to check the
> modification between my w.c. to the externals explicit revision.
>
> When using svn1.8+ the same command checks the modification between my w.c.
> and the external HEAD revision although my external is not pointing the HEAD
> revision, it points to a much older revision.
>
> Why did svn change its behavior? is it a bug?
I see a behaviour change but it is the opposite to that you report.
With 1.8 status compares the external to the explict revision:
$ svnadmin create repo --compatible-version 1.6
$ svnmucc -mm -U file://`pwd`/repo mkdir A mkdir B \
propset svn:externals '^/A@1 A' B
$ svnmucc -mm -U file://`pwd`/repo propset p v A
$ svn co file://`pwd`/repo/B wc
$ svn st -uv wc
X wc/A
2 1 pm wc
Status against revision: 2
Performing status on external item at 'wc/A':
1 1 pm wc/A
Status against revision: 1
With 1.7 status compares the external to HEAD:
$ svn st -uv wc
X wc/A
2 1 pm wc
Status against revision: 2
Performing status on external item at 'wc/A':
* 1 1 pm wc/A
Status against revision: 2
The reason that 1.7 checks against HEAD is that 1.7 does not record the
explict revision in the EXTERNALS table:
$ sqlite3 wc/.svn/wc.db "select * from externals"
1|A||1|normal|dir||A||
while 1.8 does:
$ sqlite3 wc/.svn/wc.db "select * from externals"
1|A||1|normal|dir||A|1|1
which is a result of r1163438.
I think we would consider this a bug in 1.7.
--
Philip Martin | Subversion Committer
WANdisco // *Non-Stop Data*