[Svnmerge] problem with non-interactive
Giovanni Bajo
rasky at develer.com
Fri Mar 20 09:54:59 PDT 2009
On 3/20/2009 4:34 PM, Jon Schewe wrote:
> Giovanni Bajo wrote:
>> On 3/20/2009 3:27 PM, Jon Schewe wrote:
>>> Giovanni Bajo wrote:
>>>> On 3/20/2009 2:41 PM, Jon Schewe wrote:
>>>>> Recent versions of subversion integrate with OsX's keychain in a
>>>>> really
>>>>> nice way. My auth file no longer has a password in it and looks like
>>>>> below. It does this automatically, with no special interaction. The
>>>>> problem now is that svnmerge.py calls svn with the --non-interactive
>>>>> argument, however it seems that the keychain authentication doesn't
>>>>> work, so my merges now fail. Any ideas?
>>>>>
>>>>> K 8
>>>>> passtype
>>>>> V 8
>>>>> keychain
>>>>> K 15
>>>>> svn:realmstring
>>>>> V 53
>>>>> <http://boomerang-dev.bbn.com:80> Authorization Realm
>>>>> K 8
>>>>> username
>>>>> V 7
>>>>> jschewe
>>>>> END
>>>>>
>>>> Not specifically. What happens if you call svn --non-interactive
>>>> yourself?
>>> authorization failed, just like svnmerge.
>>>
>> So it looks like a SVN bug. Try reporting it to the SVN user list.
> I suspect the answer is that keychain may prompt the user for a password
> for the keychain, so this is works as expected behavior.
Well, I can see the technical problem, but I wouldn't call it "expected
behaviour". With normal authentication, you can use SVN if you have your
password saved; if the password is not present and --non-interactive was
specified, it will fail; but it will not fail always just because it
might have had to ask the password.
> Could svnmerge
> be run without non-interactive?
The problem is that normally you don't want to see the output of svn
beacuse (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.
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.
I personally can't think of a solution. I was exploring the idea of
running the actual merge step with the output on the console and full
interaction (so to enable interactive conflict resolution to work). But
that's only for the merge step. Other svn invocations shouldn't really
go the console.
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.
--
Giovanni Bajo
Develer S.r.l.
http://www.develer.com
More information about the Svnmerge
mailing list