aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlenn Morris <[email protected]>2011-11-09 21:36:48 -0500
committerGlenn Morris <[email protected]>2011-11-09 21:36:48 -0500
commit9a4de110224cc0ea32a9c680db3f4355484236a6 (patch)
treec9fe81a857ba5600b6d7439026838c2361f8f55c
parentb2621720c318257be0d4100d695b62986db88b4f (diff)
Always use svn --non-interactive in vc-svn.el (bug#9993)
* lisp/vc/vc-svn.el (vc-svn-create-repo, vc-svn-modify-change-comment): Call svn via vc-svn-command rather than vc-do-command. (vc-svn-command): Add --non-interactive. (vc-svn-update, vc-svn-merge-news): No need for --non-interactive.
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/vc/vc-svn.el26
2 files changed, 21 insertions, 10 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 1617736593..0b1572f9bc 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,10 @@
2011-11-10 Glenn Morris <[email protected]>
+ * vc/vc-svn.el (vc-svn-create-repo, vc-svn-modify-change-comment):
+ Call svn via vc-svn-command rather than vc-do-command.
+ (vc-svn-command): Add --non-interactive. (Bug#9993)
+ (vc-svn-update, vc-svn-merge-news): No need for --non-interactive.
+
* emacs-lisp/bytecomp.el (byte-compile-interactive-only-functions):
Add toggle-read-only. (Bug#7292)
* files.el (toggle-read-only): Mention that it should only
diff --git a/lisp/vc/vc-svn.el b/lisp/vc/vc-svn.el
index 7362258a42..dc4e179e06 100644
--- a/lisp/vc/vc-svn.el
+++ b/lisp/vc/vc-svn.el
@@ -263,8 +263,8 @@ RESULT is a list of conses (FILE . STATE) for directory DIR."
(defun vc-svn-create-repo ()
"Create a new SVN repository."
(vc-do-command "*vc*" 0 "svnadmin" '("create" "SVN"))
- (vc-do-command "*vc*" 0 vc-svn-program '(".")
- "checkout" (concat "file://" default-directory "SVN")))
+ (vc-svn-command "*vc*" 0 "." "checkout"
+ (concat "file://" default-directory "SVN")))
(defun vc-svn-register (files &optional rev comment)
"Register FILES into the SVN version-control system.
@@ -334,7 +334,6 @@ This is only possible if SVN is responsible for FILE's directory.")
;; Check out a particular version (or recreate the file).
(vc-file-setprop file 'vc-working-revision nil)
(apply 'vc-svn-command nil 0 file
- "--non-interactive" ; bug#4280
"update"
(cond
((null rev) "-rBASE")
@@ -373,7 +372,7 @@ The changes are between FIRST-VERSION and SECOND-VERSION."
(message "Merging changes into %s..." file)
;; (vc-file-setprop file 'vc-working-revision nil)
(vc-file-setprop file 'vc-checkout-time 0)
- (vc-svn-command nil 0 file "--non-interactive" "update") ; see bug#7152
+ (vc-svn-command nil 0 file "update")
;; Analyze the merge result reported by SVN, and set
;; file properties accordingly.
(with-current-buffer (get-buffer "*vc*")
@@ -425,7 +424,7 @@ This is only supported if the repository access method is either file://
or svn+ssh://."
(let (tempfile host remotefile directory fileurl-p)
(with-temp-buffer
- (vc-do-command (current-buffer) 0 vc-svn-program nil "info")
+ (vc-svn-command (current-buffer) 0 nil "info")
(goto-char (point-min))
(unless (re-search-forward "Repository Root: \\(file://\\(/.*\\)\\)\\|\\(svn\\+ssh://\\([^/]+\\)\\(/.*\\)\\)" nil t)
(error "Repository information is unavailable"))
@@ -581,12 +580,19 @@ NAME is assumed to be a URL."
(defun vc-svn-command (buffer okstatus file-or-list &rest flags)
"A wrapper around `vc-do-command' for use in vc-svn.el.
The difference to vc-do-command is that this function always invokes `svn',
-and that it passes `vc-svn-global-switches' to it before FLAGS."
- (apply 'vc-do-command (or buffer "*vc*") okstatus vc-svn-program file-or-list
- (if (stringp vc-svn-global-switches)
+and that it passes \"--non-interactive\" and `vc-svn-global-switches' to
+it before FLAGS."
+ ;; Might be nice if svn defaulted to non-interactive if stdin not tty.
+ ;; http://svn.haxx.se/dev/archive-2008-05/0762.shtml
+ ;; http://svn.haxx.se/dev/archive-2009-04/0094.shtml
+ ;; Maybe newer ones do?
+ (or (member "--non-interactive"
+ (setq flags (if (stringp vc-svn-global-switches)
(cons vc-svn-global-switches flags)
- (append vc-svn-global-switches
- flags))))
+ (append vc-svn-global-switches flags))))
+ (setq flags (cons "--non-interactive" flags)))
+ (apply 'vc-do-command (or buffer "*vc*") okstatus vc-svn-program file-or-list
+ flags))
(defun vc-svn-repository-hostname (dirname)
(with-temp-buffer