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

Re: svn_client_status5() and depth

From: Stefan Küng <tortoisesvn_at_gmail.com>
Date: Wed, 18 Aug 2010 22:37:03 +0200

On 18.08.2010 21:58, Bert Huijben wrote:

>> In libsvn_client/deprecated.c, svn_client_status4() you pass FALSE for
>> the new sticky param. But that's wrong: in 1.6.x and previous versions,
>> the depth was always respected/enforced. That's why I noticed the
>> changed behavior in the first place!
>> Shouldn't you pass TRUE there?
>
> The not filtering of the nodes was never the intended behavior. It was a
> bug, but had useful behavior for your specific case: explicitly pulling
> unavailable nodes into the working copy.

Well, it might have been intended, but it didn't work that way. It
worked as if you would pass TRUE. Since you pass FALSE, the behavior is
not the same as in 1.6.x.
And shouldn't the old APIs stay compatible? To stay compatible with the
old APIs, you would have to pass TRUE in that wrapper.
Or am I missing something important here?

>
>> And what I don't understand: why the extra parameter at all?
>> If the param is set to TRUE unconditionally, then the behavior seems to
>> be the very same as in 1.6.x:
>> If the depth is less than the depth of the WC, it behaves the same as if
>> the param is FALSE. Only if the depth is deeper then the param has any
>> effect - setting the param to TRUE *ignores* deeper depths.
>>
>> So from my point of view, that parameter isn't necessary: the behavior
>> can be configured by using the depth parameter alone.
>
> Well.. that depends on what is the ambient depth of the directory and what
> you try to do with it. If the directory has depth children, passing depth
> infinity should be seen as depth children and depth files as depth files.

Why? If I pass depth infinity, I *want* the depth infinity, not depth
children. If I want the depth of the WC, I can pass depth unknown.
That's what the depth 'unknown' is for: to specify that the depth of the
WC should be used instead. If I pass a specific depth, I want that depth
and not something else.

> svn status -u was designed to show what svn up would do, and that really
> needs the current behavior to work correctly. I think that is the behavior
> older clients want. (But thanks for opening the discussion on that!)
>
>> Also, since this is a readonly operation, the naming 'depth_is_sticky'
>> isn't very good. Even confusing.
>
> Actually the name is 'depth_as_sticky'.
>
>>
>> Ok, reading my text above again, I think I'm not very clear why I think
>> the parameter isn't necessary. So I'll try again:
>>
>> depth sticky
>> <= WC depth FALSE 1.6.x == 1.7 : data for depth
>> <= WC depth TRUE 1.6.x == 1.7 : data for depth
>> > WC depth FALSE 1.6.x data for depth, 1.7 data for
> WCdepth
>> > WC depth TRUE 1.6.x data for depth, 1.7 data for depth
>>
>> Also, if a client wants the data only for the WC depth, passing a depth
>> of 'unknown' will do exactly that, no matter what the sticky is set to.
>>
>> So: every outcome of that API can be triggered by specifying the depth
>> alone. So why not get rid of the sticky param and always do as if it was
>> set to TRUE?
>
> Note that depth is used for more than just this filtering on the ra layer.
> It also applies on what nodes of your local working copy are shown. It did
> work as a filter there.
>
> Are you sure you can mimic that without the extra Boolean?
> (I certainly don't see any of this in your table)

I don't understand: what exactly are you missing from that table above?
Can you maybe provide me that part of the table, and I'll fill in the
data that's returned.

Stefan

-- 
        ___
   oo  // \\      "De Chelonian Mobile"
  (_,\/ \_/ \     TortoiseSVN
    \ \_/_\_/>    The coolest Interface to (Sub)Version Control
    /_/   \_\     http://tortoisesvn.net
Received on 2010-08-18 22:38:01 CEST

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