Mercurial > emacs
changeset 87518:78fc69cc7bef
* vc-svn.el (vc-svn-modify-change comment): New function.
author | Eric S. Raymond <esr@snark.thyrsus.com> |
---|---|
date | Wed, 02 Jan 2008 00:42:37 +0000 |
parents | f74e1db4c182 |
children | 6a0c500ca3a9 |
files | lisp/ChangeLog lisp/vc-svn.el |
diffstat | 2 files changed, 28 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Tue Jan 01 21:19:17 2008 +0000 +++ b/lisp/ChangeLog Wed Jan 02 00:42:37 2008 +0000 @@ -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
--- a/lisp/vc-svn.el Tue Jan 01 21:19:17 2008 +0000 +++ b/lisp/vc-svn.el Wed Jan 02 00:42:37 2008 +0000 @@ -366,6 +366,30 @@ (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