kfogel@collab.net wrote:
>Okay, sorry Joe, Ben explained to me what you meant. I now understand:
>
>There's also been a proposal for a status output format that shows
>_no_ revision numbers, just modified-ness, for example,
>
> $ svn st
> M foo.c
> M qux.c
> - bar.c
> - blah.h
> - bazzam.txt
> M etc.h
> $
>
>Or something similar. And you (correct me if I'm wrong) favor that
>format, as opposed to one that always shows the local revision number.
>
>Apologies for jumping on you. I had mistakenly thought there was a
>general consensus that showing the local revision number is a Good
>Thing, but now I am reminded that there isn't such a consensus.
>
>This makes clear the growing disparity between the formats, too. If
>we only include the local revision number when --verbose is used, then
>the two formats really are growing apart, necessarily.
>
>Okay. So:
>
>I do think it's better to always include the local revision number,
>even though admittedly you (and probably others) don't need it in your
>most common use case. Here's why:
>
>If default status does _not_ show the local rev, then we are forced to
>choose one of these two alternatives:
>
> 1. Have a separate switch for showing local rev. Of course, when
> this switch is in effect, the output format will change
> noticeably.
>
> 2. Make local rev show up only when one passes `--verbose' (i.e.,
> when the network is used). And of course, the output format
> still can't be very similar to the default.
>
>(2) is a very bad option, because it associates querying the local
>revision with connecting to the repository. These should be
>independent. There are many circumstances where one might want to
>find out the local rev without also attempting a network connection.
>I doubt anyone would argue for option (2).
>
>But (1) is not good either, because it adds Yet Another Switch. By
>tolerating one column of sometimes-unwanted information, we can lose
>that switch and keep the invocation interface that much simpler.
>
>So it's not so much that I think having the local rev number always
>there is a Good Thing, as that not having it seems to inevitably
>result in one or another Bad Thing.
>
I think you got things upside down, Karl. What I think Greg and Joe
proposed (and I agree with) is that there should be two formats: A
simple one, with no revision numbers, that shows only local
modifications, e.g.:
M foo.c
_C bar.c
M_ baz.txt
And a more verbose format (e.g., the one you proposed), that's switched
on by the --verbose switch; --verbose should also list local files that
aren't modified. However, --verbose should /not/ imply --update, it
should be the other way around. Only --update touches the network, and
--update implies --verbose: the rationale is that it really makes no
sense to fetch status information from the server, then throw it away.
So you get three use cases:
1. Show local modifications only: "svn st" (outputs in 2-column format)
2. Show the status of all version-controlled files in the WC: "svn st
--verbose" (outputs in 4-column format)
3. Show status of WC and server, including the changes "svn up" would
make: "svn st --update" (touches the network, implies --verbose).
Joe's point is that (1) is by far the most often used form; and, from my
own experience, I agree.
What I /haven't/ yet seen in this discussion is a good argument
/against/ havng a short format, except "consistency".
"A foolish consistency is the hobgoblin of little minds." --Emerson
:-)
--
Brane �ibej <brane_at_xbc.nu> http://www.xbc.nu/brane/
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Oct 21 14:36:42 2006