Frank Küster <[EMAIL PROTECTED]> 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.
pgpvxRO0krGTr.pgp
Description: PGP signature