Bernhard Merkle wrote:
> Hi,
>
> I think the following is a bug or feature with SVN 1.5 svn log --xml
>
> The problem is that svn log --xml _partly_ emits xml in case of an error.
>
> 1. checkout with SVN 1.5
> 2. do a svn log --xml with SVN 1.4.6.
> 3. I know that the WC format had changed and this is an "invalid" operation,
> but look at the error msg below:
> It starts with putting out _some_ XML and then the error msgs, and then the
> XML is not valid </log>
>
> IMO, there should be NO xml at all in the case of an error. Better only
> issue the error msgs.
> Seems that starting the output is done _before_ the actual error checking...
That's exactly right. Logs (and lots of other data in Subversion) are returned
"streamily," meaning they are returned one at a time as they are found. Instead
of waiting for all the messages to be returned, the client outputs them
immediately as well, keeping memory use to a minimum.
I agree that it would be nice if --xml really meant XML output, even in the case
of an error, but checking for all errors before doing any output would lead to
an inefficient use of system resources, and also a perceived lack of output
while the logs were being retrieved. Both ideas are not viewed favorably by the
developers. However, it may be possible to improve the situation for some
classes of errors.
> C:\wcWith1.5SVNformat>c:\tools\bin32\Subversion1.4.6\bin\svn log
> --non-interactive --xml -v
> <?xml version="1.0"?>
> <log>
> svn: Der Client ist zu alt, um mit der Arbeitskopie ».« zusammen zu
> arbeiten;
> bitte besorgen Sie einen neueren Subversion-Client
In this case, the error is being printed on stderr, and the xml on stdout. It
should not be difficult to separate the two.
-Hyrum
Received on 2008-07-29 08:02:10 CEST