[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: [PATCH] Fix for issue 2533: status -u doesn't show remote propchanges on the root folder

From: Paul Burba <paulb_at_softlanding.com>
Date: 2006-09-26 17:42:37 CEST

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

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.