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

Re: [Subclipse-dev] cmdline client adapter incorrectly treats stderr as hard error

From: Daniel Rall <dlr_at_finemaltcoding.com>
Date: 2005-10-26 19:38:10 CEST

On Fri, 14 Oct 2005, Martin Letenay wrote:

> > > I've attached another patch which implements #1. However, it loses
> > > stderr, which I think should be reported alongside stdout using
> > > CommandLine.notifyFromSvnOutput(). However, there is a
> > > complication
> > > with the coalesceLines behavior, so I'm posting the patch
> > > for review
> > > of the general approach before digging in deeper to accomodate the
> > > notification. This general fix will likely resolve the
> > > failure of the
> > > SvnAnt <add> test, but ought to be considered as a general
> > > change in
> > > behavior. Note that in the long term, when svn is fed multiple
> > > arguments and spits out warnings for some and acts on
> > > others, it will
> > > eventually return an exit code for failure; however, this
> > > is not the current behavior (as of Subversion 1.3).
> > >
> > > After thinking on this specific test failure for a while, it seems
> > > that the root cause is the fact that 'svn info' is being
> > > invoked on an
> > > unversioned resource -- which means that the implementation of
> > > CmdLineClientAdapter.getStatus(File[]) and/or CmdLineStatuses() is
> > > just plain wrong (at least with modern versions of Subversion).
>
> Hello Daniel,
>
> I haven't too much time to think about your patch yet, I was just a bit
> surprised about the test failures.
> I thought they all pass.
> Well, they actually do, at least in my environments.
> I've re-tested WinXP and debian/unstable both cmdLine and javahl. All four
> test with 0 failures.
> Both OSes with svn client 1.2.3
 
That's excellent news, Martin. I hadn't tested with that version.

Last week, I re-tested with a 1.2.4-dev client and trunk client. With both,
I'm still getting a status test failure from the command-line client adapter
(on Linux), but it appears that the failure is coming from inside of the svn
command-line client itself. I haven't had a lot of time to spend on this,
and am still searching for the root cause of the problem inside of svn and
its libraries.

> Was there some intentional change in behaviour of cmdline in newer
> subversion releases ?
> In the 1.2.3 the svn info does print the "(Not a versioned resource)" but it
> seems it outputs it to stdout not stderr,
> so the cmdLineAdapter feels happy.

Yes Martin, the change in behavior was intentional, and introduced in
Subversion's 1.3 release stream:

svn-1.3.x$ svn log -r15065 subversion/clients/cmdline/info-cmd.c
------------------------------------------------------------------------
r15065 | dlr | 2005-06-15 14:21:20 -0700 (Wed, 15 Jun 2005) | 5 lines

* subversion/clients/cmdline/info-cmd.c
  (svn_cl__info): Send warnings to stderr instead of stdout.

Patch by: Alexander Thomas

------------------------------------------------------------------------

This means svnant/svnClientAdapter is somewhat broken with Subversion 1.3,
and possibly broken in some spots/on some platforms with Subversion 1.2.

- Dan
Received on Thu Oct 27 03:38:10 2005

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