Martin Pool <firstname.lastname@example.org> writes:
> People might call 'svn stat' on a file that doesn't exist yet. For
> example, vc-svn (as currently designed) does this when you open a new
> file in a directory that is controlled by Subversion. At the moment,
> svn stat prints gives a blank status, as if the file was up to date,
> which is misleading. It seems to me that it would be better for it to
> either print '?', or at least give an error.
I agree, 'svn stat nonexistent-file' should give an error. It's a bug
that it prints the filename instead... it makes no sense. We should
file an issue on that.
> 'svn stat -u' on a file that has been added but not committed gives an
> % svn stat added
> A added
> % svn stat -u added
> svn: Filesystem has no item
> svn: file not found: transaction `d', path `/trunk'
Ah, this is a bug as well. The -u flag is doing a dry-run of "svn
update added" under the hood. And as expected, the server says that
the item is not found in the repository. I suspect that 'svn status'
should specifically trap this error and ignore it... i.e. just not add
any additional out-of-date info. 'svn stat added' and 'svn -u added'
would print just "A" in this case.
> I can see how from a certain point of view this is accurate, since the
> file doesn't exist on the server. However, I can't see how this is
> useful to a human or script trying to use 'svn stat -u'. In
> particular, it doesn't tell you about the case where a file has been
> added and committed in another revision.
Huh? I'm not following your last sentence. The -u flag means, "add
out-of-date information." If somebody else has already added a file
by the same name, then the filesystem will see it, and status will
% svn stat added
A * 0 newfile
The asterisk means that your file, even though it's only scheduled for
addition, is already out-of-date. Somebody beat you to the punch.
> It is somewhat confusing that 'svn stat -u' doesn't give a "superset"
> of the information from 'svn stat', but rather different information.
> As far as I can see, this means that something like vc-svn needs to
> run both 'svn stat' and 'svn stat -u' to properly handle the case of
> files being added and also to discover out-of-date files.
Again, I'm not understanding the problem. 'svn st' has exactly three
output formats. It took no less than two months of list discussion to
design this. :-)
1. 'svn st' only shows local items that are interesting. It uses the
"short" format: the standard 5 columns (MMLS+) and a pathname.
2. 'svn st -u' shows local items that are interesting, and adds
out-of-date information. It uses the "medium" format: the
standard 5 columns, an out-of-date (*) column, a working-rev
column, and a pathname.
3. 'svn st -v' shows every single item, interesting or not. It uses
the "long" format: standard 5 columns, out-of-date column (if -u
was given), working-rev, last-changed-rev, last-author, pathname.
This is all documented in 'svn help status'.
To unsubscribe, e-mail: email@example.com
For additional commands, e-mail: firstname.lastname@example.org
Received on Fri Dec 6 14:44:43 2002