[Svnmerge] problem with non-interactive

Eric Engstrom engstrom at mtu.net
Fri Mar 20 13:06:06 PDT 2009


Giovanni Bajo wrote:
> IOW, I still think that svn is at fault here; it *has* the
> credentials available, but it refuses to work just because it cannot
> detect whether they are available or not.

I'm not sure I agree that this is an svn problem - svn has the
credentials, yes, but not in a _guaranteed_ available state.  svn can't
get the credentials from the Mac OS X keychain unless the keychain is
unlocked, and that is not guaranteed.  So the use of the
--non-interactive in this situation results in predicable (one might
say, expected) behavior; that is, svn is not allowed to interact with
the user and asking the keychain for the password might cause such
interaction, so svn won't ask.

> Jon Schewe wrote:
>> Could svnmerge be run without non-interactive?
> 
> The problem is that normally you don't want to see the output of svn
> because (eg) it's been read by the program itself. If you don't see
> the output, you can't really interact with it.
>
> Eg: svnmerge.py executes "svn info" and parses its output. If I run
> it without --non-interactive, it might ask for a password. But since
> I'm redirecting svn's output to a pipe, the user would not see it,
> and wouldn't be able to reply to the password prompt.

I agree that the default behavior (so far) of svnmerge should be
non-interactive, if only because of the manner in which svnmerge is
parsing the output of svn.    In this SPECIFIC case, since the
interactive prompt would be outside the purview of svnmerge (a keychain
dialog popup), it should be 'allowed'.

Seems to me the only way that would be achievable is if svnmerge also
'forwarded' to the user all svn output that might be useful for the user
in an interactive mode - such as the conflict resolution prompts.

> OTOH, since svn 1.5 got its interactive conflict resolution helper
> during merge, it would be very useful to be able to expose such
> interaction to the end user.

Although slightly off original topic, I would be in favor of allowing
the interactive mode (perhaps by a --interactive switch to svnmerge) if
only for conflict resolution alone.

I've already hacked my local svnmerge to allow the user to specify a
--interactive option.   I'll explore what it might take to properly
present useful output to the user so the interaction is possible.

Eric
-- 
Eric Engstrom - engstrom at mtu.net - PGP Key: 0x700ACAD7
$/='O'; eval ($_='print $_^pack"c25",<DATA>');
__END__
58O7O26O26O84O65O74O48O42O24O4O17O75O114O6O64O89O2O68O93O39O42O49O51O52



More information about the Svnmerge mailing list