Daniel Rall <dlr@collab.net> wrote on 09/25/2006 04:53:54 PM:
> On Sun, 24 Sep 2006, Lieven Govaerts wrote:
> ...
> > The problem was that when remote propchanges are reported back to the
> > client, they are stored as status changed of the parent folder (see
line
> > 1589@close_directory@libsvn_wc/status.c). In the case of the root
folder
> > there is no parent folder, so propchanges are silently dropped.
> >
> > This patch will report remote propchanges on the root folder as status
> > changes of that root folder.
>
> lgo and I discussed this one a bit on IRC. I've made some minor
> stylistic tweaks, and commited to trunk in r21638. I've also proposed
> it for backport to the 1.4.x line.
> [attachment "attoc6fw.dat" deleted by Paul Burba/SoftLanding Systems]
Lieven & Dan,
I'm working on a patch involving the same code as r21638. I merged it
with my own work and noticed a problem. Looking at Lieven's patch alone
the problem still exists: When using the --verbose option with svn st, the
root directory is listed twice, for example:
svn st -u
Release\subversion\tests\cmdline\svn-test-work\working_copies\update_tests-1.backup
Status against revision: 1
svn ps prop val
Release\subversion\tests\cmdline\svn-test-work\working_copies\update_tests-1
property 'prop' set on
'Release\subversion\tests\cmdline\svn-test-work\working_copies\update_tests-1'
svn ci -m "add a prop to root"
Release\subversion\tests\cmdline\svn-test-work\working_copies\update_tests-1
Sending
Release\subversion\tests\cmdline\svn-test-work\working_copies\update_tests-1
Committed revision 2.
svn st -u -N
Release\subversion\tests\cmdline\svn-test-work\working_copies\update_tests-1.backup
* 1
Release\subversion\tests\cmdline\svn-test-work\working_copies\update_tests-1.backup
Status against revision: 2
svn st -u -N -v
Release\subversion\tests\cmdline\svn-test-work\working_copies\update_tests-1.backup
1 1 jrandom
Release\subversion\tests\cmdline\svn-test-work\working_copies\update_tests-1.backup\iota
1 1 jrandom
Release\subversion\tests\cmdline\svn-test-work\working_copies\update_tests-1.backup\A
* 1 1 jrandom
Release\subversion\tests\cmdline\svn-test-work\working_copies\update_tests-1.backup
1 1 jrandom
Release\subversion\tests\cmdline\svn-test-work\working_copies\update_tests-1.backup
Status against revision: 2
C:\SVN\svn.trunk.takeover\src-trunk.collabnet.trunk>
This occurs because in r21638 when close_directory() processes the root WC
dir, it uses tweak_statushash() to add the WC root dir's status info to
itself (i.e. db->statii) when a change occurs. Later close_directory()
calls handle_statii() to report on all of the dir's children, but
db->statii now contains status info on itself, so the root dir is
reported. But here comes the problem, we then call is_sendable_status()
to see if we want to report on the root dir, and with the --verbose option
in use (i.e. eb->get_all == TRUE) the answer is always yes, so we report
the root dir a second time (and incorrectly at that, as issue 2533 still
plagues this redundant report).
I believe the attached patch solves the problem, please take a look if you
have a chance.
Paul B.
[[[
Follow-up to r21638, prevent double status reporting of changed WC root
with -v.
* subversion/libsvn_wc/status.c
(close_directory): When root WC dir is out of date, stop reporting it
twice when edit_baton get_all member is set.
]]]
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Sep 26 17:43:01 2006