On 12.10.2015 12:31, Bert Huijben wrote:
-----Original Message-----
From: Marc Strapetz [mailto:marc.strap...@syntevo.com]
Sent: maandag 12 oktober 2015 10:56
To: dev@subversion.apache.org
Subject: svn status API and missing switched flag

Consider following working copy for which directory "dir" is switched:

$ svn status -v
                 814      813 marc         .
      S          814      813 marc         dir
                 814      356 strapetz     dir\sub.txt

Now, when invoking "svn status" in sub-directory "dir", the "switched"
state is not displayed anymore:

$ svn status -v
                 814      813 marc         .
                 814      356 strapetz     sub.txt

  From command line, this may be reasonable, because the user may expect
to see the status "relative" to his current working directory.

  From API perspective, the missing "switched" flag is not expected. I
guess that usually a non-root and non-infinity "svn status" will be
invoked to efficiently update the state of a certain directory (at least
we do so). Still the state is usually expected to be relative to the
working copy root.

To resolve this, I'd propose to change core "svn status" itself to
evaluate the "switched" flag for the status root directory. This will
result in an additional "S", but won't do any harm:

$ svn status -v
     S            814 813 marc .
                  814 356 strapetz sub.txt

Which version of Subversion did you use for this?

Without checking any of the code I would have expected the behavior you describe 
for Subversion <= 1.6, while I would have guessed this behavior changed with 
Subversion 1.7 when we moved to the single database per working copy. (Pre 1.7 we 
simply couldn't open a directory about the current working copy in a portable way)


The old behavior makes sense if you think as the 'S' as switched against the 
ancestor... If you are not looking at an ancestor it can't be switched.

If you see the behavior in 1.7, 1.8 or 1.9 then I agree that the api should at 
least provide switched information.

I see this behavior with SVN 1.9.2.

-Marc

Reply via email to