Bug#319881: subversion: [psvn] cannot type in passphrase for svn+ssh

Kalle Olavi Niemitalo kon at iki.fi
Fri Oct 28 20:25:54 UTC 2005


Frank Küster <frank at debian.org> writes:

> When using psvn.el for a working copy that uses svn+ssh, I get a prompt
> to type in the password (actually, the passphrase for my RSA key).  The
> prompt is written in the *svn-process* buffer (I think), but it does not
> accept input.  Therefore, commiting only works when ssh-agent is used.

The psvn package can run the svn program in two ways:
synchronously (Emacs waits for the process and won't accept
further commands until it exits) or asynchronously (the output
goes to the *svn-process* buffer in the background and is parsed
when the process exits).

Asynchronous:
- add (svn-status-add-file-recursively) (svn-status-add-file)
- blame (svn-status-blame: may need auth)
- cleanup (svn-status-cleanup)
- commit (svn-log-edit-done: may need auth)
- info (svn-status-info: no options)
- log (svn-status-show-svn-log: may need auth)
- mkdir (svn-status-make-directory: may need auth if given a URI)
- propdel (svn-status-property-parse-property-names)
- proplist (svn-status-property-list) (svn-status-proplist-start)
- propset (svn-prop-edit-do-it)
- resolved (svn-status-resolved)
- revert (svn-status-revert)
- rm (svn-status-rm)
- status (svn-status)
- update (svn-status-update-cmd: may need auth)

Synchronous:
- cat (svn-status-get-specific-revision-internal: may need auth)
- diff (svn-status-show-svn-diff-internal: may need auth)
  (svn-log-view-diff: may need auth)
- info (svn-status-parse-info: no options)
- mv (svn-status-mv)
- propget (svn-status-property-edit) (svn-log-edit-log-entry: may
  need auth)
- propset (svn-status-property-parse-property-names)
  (svn-prop-edit-do-it) (svn-log-edit-done: may need auth)

In the synchronous case, because you cannot use any commands
while Emacs is waiting, a process filter would have to detect
the password prompt and prompt you in a minibuffer.  This would
presumably be done with a regexp, kept in a variable so that it
can be adjusted if the prompt is translated to a different
language.

In the asynchronous case, you might be able to type the password
in the *svn-process* buffer and send it by pressing RET.  However,
the password would then be visible in the buffer, unless psvn
took extra steps to hide it.  So, it might be better to prompt in
the minibuffer in this case too.

The password prompt and related text would have to be skipped
when parsing the output.

Some commands, e.g. svn-status-show-svn-diff-for-marked-files and
svn-status-mv, run the svn program separately for each file, so
you might have to enter the password multiple times.  Fixing this
would involve either changing the functions to process more files
in one command (which might be good for effiency in any case)
or storing the password in an Emacs Lisp variable (which seems
pointless when ssh-agent already exists).

I don't know if these changes would be worth the trouble and bloat.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 188 bytes
Desc: not available
Url : http://lists.alioth.debian.org/pipermail/pkg-subversion-maintainers/attachments/20051028/63937a4b/attachment.pgp


More information about the pkg-subversion-maintainers mailing list