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

Re: UI interpretation quetsions: --changelist + --depth

From: C. Michael Pilato <cmpilato_at_collab.net>
Date: Tue, 15 Jan 2008 12:06:39 -0500

Karl Fogel wrote:
> Ummm, how about:
>
> For most commands, '--changelist FOO' restricts the scope to items
> in the intersection of changelist FOO and the specified (or default)
> depth. But for *some* commands, certain special commands, commands
> with trust funds and their own ponies and idyllic summer vacations,
> '--changelist FOO' changes their non-infinity default depth to
> infinity, so that the changelist becomes the only restriction when
> no depth restriction is explicitly given.
>
> Then we just have to decide which commands are special in this way,
> 'info' being an obvious candidate. Are there any others; maybe
> status?
>
> I know people will cry "inconsistency", but I'm not sure consistency
> is a major factor in good UI anyway. Meeting intuitive expectations
> is more important.
>
> -Karl

I spent some time trying to find the right words to describe the behavior we
think we'd want, but ultimately failed. I am (as you *well* know) a big fan
of consistency and predictability, and I'm starting to think that it's bad
enough to have to make such a sweeping change to --changelist this late in
the 1.5 release cycle that perhaps we should just roll with the
easy-to-explain "changelist is always a filter, period" explanation. After
all, it really isn't so hard to change 'svn info --changelist foo' into 'svn
info -R --changelist foo'.

To assist in user adoption of this understanding, I'd be in favor also of
consistently making our subcommands, when invoked with --changelist at a
depth less than infinity and not finding any items of interest in said
changelist, return an error condition that the client can turn into a warning:

    if ((err->apr_err == SVN_ERR_NO_INTERESTING_CHANGELIST_MEMBERS)
        && (depth < svn_depth_infinity))
       printf("Warning: found no interesting members of the requested "
              "changelist(s) within the scope of this operation; consider "
              "re-running with --depth=infinity");

(Though, maybe a cleaner approach would be to add a
found-a-changelist-member notification and track whether or not that had
been called for a given operation. This lets the caller decide what is and
isn't an error, and saves our APIs from having to make such a call.)

Thoughts?

-- 
C. Michael Pilato <cmpilato_at_collab.net>
CollabNet   <>   www.collab.net   <>   Distributed Development On Demand

Received on 2008-01-15 18:06:58 CET

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