]> git.eshelyaron.com Git - emacs.git/commitdiff
* vc-svn.el (vc-svn-modify-change comment): New function.
authorEric S. Raymond <esr@snark.thyrsus.com>
Wed, 2 Jan 2008 00:42:37 +0000 (00:42 +0000)
committerEric S. Raymond <esr@snark.thyrsus.com>
Wed, 2 Jan 2008 00:42:37 +0000 (00:42 +0000)
lisp/ChangeLog
lisp/vc-svn.el

index 5589f73a817fddffa0dfa2b1d151dd6ca480250f..ac027b954c20efcfde6cd04782259c322d2eca73 100644 (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
index 923613f5b04c5f75c4b521c82fdd32c41ab83733..385260b3d878876bc70a91b2b37c264c8a0fdefb 100644 (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