psvn.el のバージョンというかリビジョンというか、そんなものあまり意識したことなかったけど、システムにインストールされてる奴ではなくて個別にダウンロードする必要があったので探してみたら、 1.4.6 (最新安定版) と 1.5.0-rc5 とで、同梱されてる psvn.el に結構差があった。
Apache Subversion Source Code が、 1.4.6 リリース判に含まれるほう。
Apache Subversion Source Code が、 1.5.0-rc5 に入っているほう。 trunk との差分はわかりません。
P K i で svn propset svn:keywords Id On 相当のことができるショートカットが追加されていたり (TODO になってたやつ)、結構ちゃんと進歩しているっぽい。あと FAQ に、ユーザー名はどうやって入れるの? svn-process バッファに切り替えて RET 押せ、とか、困っていたことも解決したりして、調べた甲斐がありました。
ちなみに rc5 のほうのレポジトリだと同じ階層に dsvn.el も入ってました。
--- psvn.el.svn 2008-05-19 15:57:41.000000000 +0900 +++ psvn.el 2008-04-04 06:07:01.000000000 +0900 @@ -1,8 +1,8 @@ ;;; psvn.el --- Subversion interface for emacs -;; Copyright (C) 2002-2006 by Stefan Reichoer +;; Copyright (C) 2002-2008 by Stefan Reichoer -;; Author: Stefan Reichoer, <stefan@xsteve.at> -;; $Id$ +;; Author: Stefan Reichoer <stefan@xsteve.at> +;; $Id: psvn.el 30224 2008-04-03 17:43:15Z xsteve $ ;; psvn.el is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -22,7 +22,10 @@ ;;; Commentary ;; psvn.el is tested with GNU Emacs 21.3 on windows, debian linux, -;; freebsd5, red hat el3 with svn 1.2.3 +;; freebsd5, red hat el4, ubuntu edgy with svn 1.4.0 + +;; psvn.el needs at least svn 1.1.0 +;; if you upgrade to a higher version, you need to do a fresh checkout ;; psvn.el is an interface for the revision control tool subversion ;; (see http://subversion.tigris.org) @@ -30,7 +33,7 @@ ;; At the moment the following commands are implemented: ;; ;; M-x svn-status: run 'svn -status -v' -;; M-x svn-examine (like psvn.el cvs-examine) is alias for svn-status +;; M-x svn-examine (like pcl-cvs cvs-examine) is alias for svn-status ;; ;; and show the result in the svn-status-buffer-name buffer (normally: *svn-status*). ;; If svn-status-verbose is set to nil, only "svn status" without "-v" @@ -51,8 +54,11 @@ ;; A - svn-status-add-file-recursively run 'svn add' ;; + - svn-status-make-directory run 'svn mkdir' ;; R - svn-status-mv run 'svn mv' +;; C - svn-status-cp run 'svn cp' ;; D - svn-status-rm run 'svn rm' ;; M-c - svn-status-cleanup run 'svn cleanup' +;; k - svn-status-lock run 'svn lock' +;; K - svn-status-unlock run 'svn unlock' ;; b - svn-status-blame run 'svn blame' ;; X e - svn-status-export run 'svn export' ;; RET - svn-status-find-file-or-examine-directory @@ -61,13 +67,14 @@ ;; E - svn-status-ediff-with-revision ;; X X - svn-status-resolve-conflicts ;; s - svn-status-show-process-buffer +;; h - svn-status-pop-to-partner-buffer ;; e - svn-status-toggle-edit-cmd-flag ;; ? - svn-status-toggle-hide-unknown ;; _ - svn-status-toggle-hide-unmodified ;; m - svn-status-set-user-mark ;; u - svn-status-unset-user-mark ;; $ - svn-status-toggle-elide -;; w - svn-status-copy-filename-as-kill +;; w - svn-status-copy-current-line-info ;; DEL - svn-status-unset-user-mark-backwards ;; * ! - svn-status-unset-all-usermarks ;; * ? - svn-status-mark-unknown @@ -75,9 +82,12 @@ ;; * M - svn-status-mark-modified ;; * D - svn-status-mark-deleted ;; * * - svn-status-mark-changed +;; * . - svn-status-mark-by-file-ext +;; * % - svn-status-mark-filename-regexp ;; . - svn-status-goto-root-or-return ;; f - svn-status-find-file ;; o - svn-status-find-file-other-window +;; C-o - svn-status-find-file-other-window-noselect ;; v - svn-status-view-file-other-window ;; I - svn-status-parse-info ;; V - svn-status-svnversion @@ -89,9 +99,13 @@ ;; P I - svn-status-property-ignore-file-extension ;; P C-i - svn-status-property-edit-svn-ignore ;; P k - svn-status-property-set-keyword-list +;; P K i - svn-status-property-set-keyword-id +;; P K d - svn-status-property-set-keyword-date ;; P y - svn-status-property-set-eol-style ;; P x - svn-status-property-set-executable -;; h - svn-status-use-history +;; P m - svn-status-property-set-mime-type +;; H - svn-status-use-history +;; x - svn-status-update-buffer ;; q - svn-status-bury-buffer ;; C-x C-j - svn-status-dired-jump @@ -117,7 +131,7 @@ ;; The latest version of psvn.el can be found at: ;; http://www.xsteve.at/prg/emacs/psvn.el ;; Or you can check it out from the subversion repository: -;; svn co http://svn.collab.net/repos/svn/trunk/contrib/client-side/psvn psvn +;; svn co http://svn.collab.net/repos/svn/trunk/contrib/client-side/emacs emacs-svn ;; TODO: ;; * shortcut for svn propset svn:keywords "Date" psvn.el @@ -126,7 +140,6 @@ ;; * when editing the command line - offer help from the svn client ;; * finish svn-status-property-set ;; * Add repository browser -;; * Improve support for svn blame ;; * Get rid of all byte-compiler warnings ;; * SVK working copy support ;; * multiple independent buffers in svn-status-mode @@ -136,36 +149,71 @@ ;; * add implemented ;; * blame implemented ;; * cat implemented -;; * checkout (co) +;; * checkout (co) implemented ;; * cleanup implemented ;; * commit (ci) implemented -;; * copy (cp) +;; * copy (cp) implemented ;; * delete (del, remove, rm) implemented ;; * diff (di) implemented ;; * export implemented ;; * help (?, h) -;; * import +;; * import used (in svn-admin-create-trunk-directory) ;; * info implemented -;; * list (ls) +;; * list (ls) implemented +;; * lock implemented ;; * log implemented ;; * merge ;; * mkdir implemented ;; * move (mv, rename, ren) implemented ;; * propdel (pdel) implemented ;; * propedit (pedit, pe) not needed -;; * propget (pget, pg) used +;; * propget (pget, pg) used (in svn-status-property-edit) ;; * proplist (plist, pl) implemented -;; * propset (pset, ps) used +;; * propset (pset, ps) used (in svn-prop-edit-do-it) ;; * resolved implemented ;; * revert implemented ;; * status (stat, st) implemented ;; * switch (sw) +;; * unlock implemented ;; * update (up) implemented ;; For the not yet implemented commands you should use the command line ;; svn client. If there are user requests for any missing commands I will ;; probably implement them. +;; There is also limited support for the web-based software project management and bug/issue tracking system trac +;; Trac ticket links can be enabled in the *svn-log* buffers when using the following: +;; (setq svn-log-link-handlers '(trac-ticket-short)) + +;; --------------------------- +;; Frequently asked questions: +;; --------------------------- + +;; Q1: I need support for user names with blanks/spaces +;; A1: Add the user names to svn-user-names-including-blanks and set the +;; svn-pre-parse-status-hook. +;; The problem is, that the user names and the file names from the svn status +;; output can both contain blanks. Blanks in file names are supported. +;; the svn-user-names-including-blanks list is used to replace the spaces +;; in the user names with - to overcome this problem + +;; Q2: My svn-update command it taking a really long time. How can I +;; see what's going on? +;; A2: In the *svn-status* buffer press "s". + +;; Q3: How do I enter a username and password? +;; A3: In the *svn-status* buffer press "s", switch to the +;; *svn-process* buffer and press enter. You will be prompted for +;; username and password. + +;; Q4: What does "?", "M", and "C" in the first column of the +;; *svn-status* buffer mean? +;; A4: "?" means the file(s) is not under Subversion control +;; "M" means you have a locally modified file +;; "C" means there is a conflict +;; "@$&#!" means someone is saying nasty things to you + + ;; Comments / suggestions and bug reports are welcome! ;; Development notes @@ -189,20 +237,29 @@ (require 'easymenu)