* vc-svn.el (vc-svn-modify-change comment): New function.

This commit is contained in:
Eric S. Raymond 2008-01-02 00:42:37 +00:00
parent 7ae19274ab
commit 42a0a13593
2 changed files with 28 additions and 0 deletions

View file

@ -1,3 +1,7 @@
2008-01-02 Eric S. Raymond <esr@snark.thyrsus.com>
* vc-svn.el (vc-svn-modify-change comment): New function.
2008-01-01 Dan Nicolaescu <dann@ics.uci.edu>
* vc-git.el (vc-git-dir-state): Set the vc-backend property. Do

View file

@ -366,6 +366,30 @@ The changes are between FIRST-VERSION and SECOND-VERSION."
(error "Couldn't analyze svn update result")))
(message "Merging changes into %s...done" file))))
(defun vc-svn-modify-change-comment (files rev comment)
"Modify the change comments for a specified REV.
You must have ssh access to the repository host, and the directory Emacs
uses locally for temp files must also be writeable by you on that host."
(vc-do-command nil 0 "svn" nil "info")
(set-buffer "*vc*")
(goto-char (point-min))
(unless (re-search-forward "Repository Root: svn\\+ssh://\\([^/]+\\)\\(/.*\\)" nil t)
(error "Repository information is unavailable."))
(let* ((tempfile (make-temp-file user-mail-address))
(host (match-string 1))
(directory (match-string 2))
(remotefile (concat host ":" tempfile)))
(with-temp-buffer
(insert comment)
(write-region (point-min) (point-max) tempfile))
(unless (vc-do-command nil 0 "scp" nil "-q" tempfile remotefile)
(error "Copy of comment to %s failed" remotefile))
(unless (vc-do-command nil 0 "ssh" nil
"-q" host
(format "svnadmin setlog --bypass-hooks %s -r %s %s; rm %s"
directory rev tempfile tempfile))
(error "Log edit failed"))
))
;;;
;;; History functions