aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/ChangeLog18
-rw-r--r--lisp/vc-arch.el2
-rw-r--r--lisp/vc-bzr.el2
-rw-r--r--lisp/vc-cvs.el2
-rw-r--r--lisp/vc-dispatcher.el21
-rw-r--r--lisp/vc-git.el2
-rw-r--r--lisp/vc-hg.el2
-rw-r--r--lisp/vc-mcvs.el4
-rw-r--r--lisp/vc-mtn.el2
-rw-r--r--lisp/vc-rcs.el40
-rw-r--r--lisp/vc-sccs.el4
-rw-r--r--lisp/vc-svn.el16
12 files changed, 65 insertions, 50 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index b33a6e3f6a0..0317cd9f7cb 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -7,6 +7,24 @@
7 * vc-dispatcher.el (vc-dir-next-directory, vc-dir-prev-directory): 7 * vc-dispatcher.el (vc-dir-next-directory, vc-dir-prev-directory):
8 New functions implementing motion to next and previous directory. 8 New functions implementing motion to next and previous directory.
9 9
10 * vc-arch.el (vc-arch-command),
11 vc-bzr.el (vc-bzr-command),
12 vc-cvs.el (vc-cvs-command),
13 vc-dispatcher.el (vc-do-command),
14 vc-git.el (vc-git-command),
15 vc-hg.el (vc-hg-command),
16 vc-mcvs.el (vc-mvcs-command),
17 vc-mtn.el (vc-mtn-command),
18 vc-sccs.el (vc-sccs-command, vc-sccs-workfile,
19 vc-sccs-workfile-unchanged-p),
20 vc-svn.el (vc-svn-command, vc-svn-create-repo),
21 vc-rcs.el (all methods):
22 Remove assumption about what a nil argument to vc-do-command
23 means. This means no buffer name needs to be hardcoded into the
24 dispatcher layer, and it's better to be explicit anyway.
25
26 vc-svn.el (vc-svn-dir-state-heuristic): Removed.
27
102008-05-10 Dan Nicolaescu <dann@ics.uci.edu> 282008-05-10 Dan Nicolaescu <dann@ics.uci.edu>
11 29
12 * vc.el: Update todo. 30 * vc.el: Update todo.
diff --git a/lisp/vc-arch.el b/lisp/vc-arch.el
index 7257eeae586..5aeeaf5e864 100644
--- a/lisp/vc-arch.el
+++ b/lisp/vc-arch.el
@@ -426,7 +426,7 @@ Return non-nil if FILE is unchanged."
426 426
427(defun vc-arch-command (buffer okstatus file &rest flags) 427(defun vc-arch-command (buffer okstatus file &rest flags)
428 "A wrapper around `vc-do-command' for use in vc-arch.el." 428 "A wrapper around `vc-do-command' for use in vc-arch.el."
429 (apply 'vc-do-command buffer okstatus vc-arch-command file flags)) 429 (apply 'vc-do-command (or buffer "*vc*") okstatus vc-arch-command file flags))
430 430
431(defun vc-arch-init-revision () nil) 431(defun vc-arch-init-revision () nil)
432 432
diff --git a/lisp/vc-bzr.el b/lisp/vc-bzr.el
index e721cff2884..c0da7c836b6 100644
--- a/lisp/vc-bzr.el
+++ b/lisp/vc-bzr.el
@@ -92,7 +92,7 @@ Invoke the bzr command adding `BZR_PROGRESS_BAR=none' and
92 (list* "BZR_PROGRESS_BAR=none" ; Suppress progress output (bzr >=0.9) 92 (list* "BZR_PROGRESS_BAR=none" ; Suppress progress output (bzr >=0.9)
93 "LC_MESSAGES=C" ; Force English output 93 "LC_MESSAGES=C" ; Force English output
94 process-environment))) 94 process-environment)))
95 (apply 'vc-do-command buffer okstatus vc-bzr-program 95 (apply 'vc-do-command (or buffer "*vc*") okstatus vc-bzr-program
96 file-or-list bzr-command args))) 96 file-or-list bzr-command args)))
97 97
98 98
diff --git a/lisp/vc-cvs.el b/lisp/vc-cvs.el
index 603b61d1730..41372debcf0 100644
--- a/lisp/vc-cvs.el
+++ b/lisp/vc-cvs.el
@@ -695,7 +695,7 @@ If UPDATE is non-nil, then update (resynch) any affected buffers."
695 "A wrapper around `vc-do-command' for use in vc-cvs.el. 695 "A wrapper around `vc-do-command' for use in vc-cvs.el.
696The difference to vc-do-command is that this function always invokes `cvs', 696The difference to vc-do-command is that this function always invokes `cvs',
697and that it passes `vc-cvs-global-switches' to it before FLAGS." 697and that it passes `vc-cvs-global-switches' to it before FLAGS."
698 (apply 'vc-do-command buffer okstatus "cvs" files 698 (apply 'vc-do-command (or buffer "*vc*") okstatus "cvs" files
699 (if (stringp vc-cvs-global-switches) 699 (if (stringp vc-cvs-global-switches)
700 (cons vc-cvs-global-switches flags) 700 (cons vc-cvs-global-switches flags)
701 (append vc-cvs-global-switches 701 (append vc-cvs-global-switches
diff --git a/lisp/vc-dispatcher.el b/lisp/vc-dispatcher.el
index 8fe42f183f1..3a1de2575fb 100644
--- a/lisp/vc-dispatcher.el
+++ b/lisp/vc-dispatcher.el
@@ -286,15 +286,16 @@ and is passed 3 arguments: the COMMAND, the FILES and the FLAGS.")
286;;;###autoload 286;;;###autoload
287(defun vc-do-command (buffer okstatus command file-or-list &rest flags) 287(defun vc-do-command (buffer okstatus command file-or-list &rest flags)
288 "Execute a slave command, notifying user and checking for errors. 288 "Execute a slave command, notifying user and checking for errors.
289Output from COMMAND goes to BUFFER, or *vc* if BUFFER is nil or the 289Output from COMMAND goes to BUFFER, or the current buffer if
290current buffer if BUFFER is t. If the destination buffer is not 290BUFFER is t. If the destination buffer is not already current,
291already current, set it up properly and erase it. The command is 291set it up properly and erase it. The command is considered
292considered successful if its exit status does not exceed OKSTATUS (if 292successful if its exit status does not exceed OKSTATUS (if
293OKSTATUS is nil, that means to ignore error status, if it is `async', that 293OKSTATUS is nil, that means to ignore error status, if it is
294means not to wait for termination of the subprocess; if it is t it means to 294`async', that means not to wait for termination of the
295ignore all execution errors). FILE-OR-LIST is the name of a working file; 295subprocess; if it is t it means to ignore all execution errors).
296it may be a list of files or be nil (to execute commands that don't expect 296FILE-OR-LIST is the name of a working file; it may be a list of
297a file name or set of files). If an optional list of FLAGS is present, 297files or be nil (to execute commands that don't expect a file
298name or set of files). If an optional list of FLAGS is present,
298that is inserted into the command line before the filename." 299that is inserted into the command line before the filename."
299 ;; FIXME: file-relative-name can return a bogus result because 300 ;; FIXME: file-relative-name can return a bogus result because
300 ;; it doesn't look at the actual file-system to see if symlinks 301 ;; it doesn't look at the actual file-system to see if symlinks
@@ -318,7 +319,7 @@ that is inserted into the command line before the filename."
318 (and (stringp buffer) 319 (and (stringp buffer)
319 (string= (buffer-name) buffer)) 320 (string= (buffer-name) buffer))
320 (eq buffer (current-buffer))) 321 (eq buffer (current-buffer)))
321 (vc-setup-buffer (or buffer "*vc*"))) 322 (vc-setup-buffer buffer))
322 ;; If there's some previous async process still running, just kill it. 323 ;; If there's some previous async process still running, just kill it.
323 (let ((oldproc (get-buffer-process (current-buffer)))) 324 (let ((oldproc (get-buffer-process (current-buffer))))
324 ;; If we wanted to wait for oldproc to finish before doing 325 ;; If we wanted to wait for oldproc to finish before doing
diff --git a/lisp/vc-git.el b/lisp/vc-git.el
index bf58572a083..b4704efc61e 100644
--- a/lisp/vc-git.el
+++ b/lisp/vc-git.el
@@ -695,7 +695,7 @@ This command shares argument histories with \\[rgrep] and \\[grep]."
695(defun vc-git-command (buffer okstatus file-or-list &rest flags) 695(defun vc-git-command (buffer okstatus file-or-list &rest flags)
696 "A wrapper around `vc-do-command' for use in vc-git.el. 696 "A wrapper around `vc-do-command' for use in vc-git.el.
697The difference to vc-do-command is that this function always invokes `git'." 697The difference to vc-do-command is that this function always invokes `git'."
698 (apply 'vc-do-command buffer okstatus "git" file-or-list flags)) 698 (apply 'vc-do-command (or buffer "*vc*") okstatus "git" file-or-list flags))
699 699
700(defun vc-git--empty-db-p () 700(defun vc-git--empty-db-p ()
701 "Check if the git db is empty (no commit done yet)." 701 "Check if the git db is empty (no commit done yet)."
diff --git a/lisp/vc-hg.el b/lisp/vc-hg.el
index 3867c371e73..ef5c90291e3 100644
--- a/lisp/vc-hg.el
+++ b/lisp/vc-hg.el
@@ -551,7 +551,7 @@ REV is the revision to check out into WORKFILE."
551 "A wrapper around `vc-do-command' for use in vc-hg.el. 551 "A wrapper around `vc-do-command' for use in vc-hg.el.
552The difference to vc-do-command is that this function always invokes `hg', 552The difference to vc-do-command is that this function always invokes `hg',
553and that it passes `vc-hg-global-switches' to it before FLAGS." 553and that it passes `vc-hg-global-switches' to it before FLAGS."
554 (apply 'vc-do-command buffer okstatus "hg" file-or-list 554 (apply 'vc-do-command (or buffer "*vc*") okstatus "hg" file-or-list
555 (if (stringp vc-hg-global-switches) 555 (if (stringp vc-hg-global-switches)
556 (cons vc-hg-global-switches flags) 556 (cons vc-hg-global-switches flags)
557 (append vc-hg-global-switches 557 (append vc-hg-global-switches
diff --git a/lisp/vc-mcvs.el b/lisp/vc-mcvs.el
index 7bef11c2401..dfe3bb1d1f9 100644
--- a/lisp/vc-mcvs.el
+++ b/lisp/vc-mcvs.el
@@ -533,13 +533,13 @@ and that it passes `vc-mcvs-global-switches' to it before FLAGS."
533 (append vc-mcvs-global-switches flags))))) 533 (append vc-mcvs-global-switches flags)))))
534 (if (not (member (car flags) '("diff" "log" "status"))) 534 (if (not (member (car flags) '("diff" "log" "status")))
535 ;; No need to filter: do it the easy way. 535 ;; No need to filter: do it the easy way.
536 (apply 'vc-do-command buffer okstatus "mcvs" file args) 536 (apply 'vc-do-command (or buffer "*vc*") okstatus "mcvs" file args)
537 ;; We need to filter the output. 537 ;; We need to filter the output.
538 ;; The output of the filter uses filenames relative to the root, 538 ;; The output of the filter uses filenames relative to the root,
539 ;; so we need to change the default-directory. 539 ;; so we need to change the default-directory.
540 ;; (assert (equal default-directory (vc-mcvs-root file))) 540 ;; (assert (equal default-directory (vc-mcvs-root file)))
541 (vc-do-command 541 (vc-do-command
542 buffer okstatus "sh" nil "-c" 542 (or buffer "*vc*") okstatus "sh" nil "-c"
543 (concat "mcvs " 543 (concat "mcvs "
544 (mapconcat 544 (mapconcat
545 'shell-quote-argument 545 'shell-quote-argument
diff --git a/lisp/vc-mtn.el b/lisp/vc-mtn.el
index d4d1b1ff8e3..4a415bbf34a 100644
--- a/lisp/vc-mtn.el
+++ b/lisp/vc-mtn.el
@@ -70,7 +70,7 @@
70 (let ((process-environment 70 (let ((process-environment
71 ;; Avoid localization of messages so we can parse the output. 71 ;; Avoid localization of messages so we can parse the output.
72 (cons "LC_MESSAGES=C" process-environment))) 72 (cons "LC_MESSAGES=C" process-environment)))
73 (apply 'vc-do-command buffer okstatus vc-mtn-command files flags))) 73 (apply 'vc-do-command (or buffer "*vc*") okstatus vc-mtn-command files flags)))
74 74
75(defun vc-mtn-state (file) 75(defun vc-mtn-state (file)
76 ;; If `mtn' fails or returns status>0, or if the search files, just 76 ;; If `mtn' fails or returns status>0, or if the search files, just
diff --git a/lisp/vc-rcs.el b/lisp/vc-rcs.el
index f0aab4e90aa..14a091c4a6f 100644
--- a/lisp/vc-rcs.el
+++ b/lisp/vc-rcs.el
@@ -236,12 +236,12 @@ When VERSION is given, perform check for that version."
236 ;; do a double take and remember the fact for the future 236 ;; do a double take and remember the fact for the future
237 (let* ((version (concat "-r" (vc-working-revision file))) 237 (let* ((version (concat "-r" (vc-working-revision file)))
238 (status (if (eq vc-rcsdiff-knows-brief 'no) 238 (status (if (eq vc-rcsdiff-knows-brief 'no)
239 (vc-do-command nil 1 "rcsdiff" file version) 239 (vc-do-command "*vc*" 1 "rcsdiff" file version)
240 (vc-do-command nil 2 "rcsdiff" file "--brief" version)))) 240 (vc-do-command "*vc*" 2 "rcsdiff" file "--brief" version))))
241 (if (eq status 2) 241 (if (eq status 2)
242 (if (not vc-rcsdiff-knows-brief) 242 (if (not vc-rcsdiff-knows-brief)
243 (setq vc-rcsdiff-knows-brief 'no 243 (setq vc-rcsdiff-knows-brief 'no
244 status (vc-do-command nil 1 "rcsdiff" file version)) 244 status (vc-do-command "*vc*" 1 "rcsdiff" file version))
245 (error "rcsdiff failed")) 245 (error "rcsdiff failed"))
246 (if (not vc-rcsdiff-knows-brief) (setq vc-rcsdiff-knows-brief 'yes))) 246 (if (not vc-rcsdiff-knows-brief) (setq vc-rcsdiff-knows-brief 'yes)))
247 ;; The workfile is unchanged if rcsdiff found no differences. 247 ;; The workfile is unchanged if rcsdiff found no differences.
@@ -284,7 +284,7 @@ expanded if `vc-keep-workfiles' is non-nil, otherwise, delete the workfile."
284 nil ".*,v$" t)) 284 nil ".*,v$" t))
285 (yes-or-no-p "Create RCS subdirectory? ") 285 (yes-or-no-p "Create RCS subdirectory? ")
286 (make-directory subdir)) 286 (make-directory subdir))
287 (apply 'vc-do-command nil 0 "ci" file 287 (apply 'vc-do-command "*vc*" 0 "ci" file
288 ;; if available, use the secure registering option 288 ;; if available, use the secure registering option
289 (and (vc-rcs-release-p "5.6.4") "-i") 289 (and (vc-rcs-release-p "5.6.4") "-i")
290 (concat (if vc-keep-workfiles "-u" "-r") rev) 290 (concat (if vc-keep-workfiles "-u" "-r") rev)
@@ -362,7 +362,7 @@ whether to remove it."
362 (setq switches (cons "-f" switches))) 362 (setq switches (cons "-f" switches)))
363 (if (and (not rev) old-version) 363 (if (and (not rev) old-version)
364 (setq rev (vc-branch-part old-version))) 364 (setq rev (vc-branch-part old-version)))
365 (apply 'vc-do-command nil 0 "ci" (vc-name file) 365 (apply 'vc-do-command "*vc*" 0 "ci" (vc-name file)
366 ;; if available, use the secure check-in option 366 ;; if available, use the secure check-in option
367 (and (vc-rcs-release-p "5.6.4") "-j") 367 (and (vc-rcs-release-p "5.6.4") "-j")
368 (concat (if vc-keep-workfiles "-u" "-r") rev) 368 (concat (if vc-keep-workfiles "-u" "-r") rev)
@@ -394,12 +394,12 @@ whether to remove it."
394 (if (not (vc-rcs-release-p "5.6.2")) 394 (if (not (vc-rcs-release-p "5.6.2"))
395 ;; exit status of 1 is also accepted. 395 ;; exit status of 1 is also accepted.
396 ;; It means that the lock was removed before. 396 ;; It means that the lock was removed before.
397 (vc-do-command nil 1 "rcs" (vc-name file) 397 (vc-do-command "*vc*" 1 "rcs" (vc-name file)
398 (concat "-u" old-version))))))))) 398 (concat "-u" old-version)))))))))
399 399
400(defun vc-rcs-find-revision (file rev buffer) 400(defun vc-rcs-find-revision (file rev buffer)
401 (apply 'vc-do-command 401 (apply 'vc-do-command
402 buffer 0 "co" (vc-name file) 402 (or buffer "*vc*") 0 "co" (vc-name file)
403 "-q" ;; suppress diagnostic output 403 "-q" ;; suppress diagnostic output
404 (concat "-p" rev) 404 (concat "-p" rev)
405 (vc-switches 'RCS 'checkout))) 405 (vc-switches 'RCS 'checkout)))
@@ -431,7 +431,7 @@ attempt the checkout for all registered files beneath it."
431 (vc-rcs-set-default-branch file nil)) 431 (vc-rcs-set-default-branch file nil))
432 ;; now do the checkout 432 ;; now do the checkout
433 (apply 'vc-do-command 433 (apply 'vc-do-command
434 nil 0 "co" (vc-name file) 434 "*vc*" 0 "co" (vc-name file)
435 ;; If locking is not strict, force to overwrite 435 ;; If locking is not strict, force to overwrite
436 ;; the writable workfile. 436 ;; the writable workfile.
437 (if (eq (vc-rcs-checkout-model (list file)) 'implicit) "-f") 437 (if (eq (vc-rcs-checkout-model (list file)) 'implicit) "-f")
@@ -484,7 +484,7 @@ expanded to all regidtered subfuiles in them."
484 discard file))) 484 discard file)))
485 (error "Aborted")) 485 (error "Aborted"))
486 (message "Removing revision %s from %s." discard file) 486 (message "Removing revision %s from %s." discard file)
487 (vc-do-command nil 0 "rcs" (vc-name file) (concat "-o" discard)) 487 (vc-do-command "*vc*" 0 "rcs" (vc-name file) (concat "-o" discard))
488 ;; Check out the most recent remaining version. If it 488 ;; Check out the most recent remaining version. If it
489 ;; fails, because the whole branch got deleted, do a 489 ;; fails, because the whole branch got deleted, do a
490 ;; double-take and check out the version where the branch 490 ;; double-take and check out the version where the branch
@@ -492,7 +492,7 @@ expanded to all regidtered subfuiles in them."
492 (while (not done) 492 (while (not done)
493 (condition-case err 493 (condition-case err
494 (progn 494 (progn
495 (vc-do-command nil 0 "co" (vc-name file) "-f" 495 (vc-do-command "*vc*" 0 "co" (vc-name file) "-f"
496 (concat "-u" previous)) 496 (concat "-u" previous))
497 (setq done t)) 497 (setq done t))
498 (error (set-buffer "*vc*") 498 (error (set-buffer "*vc*")
@@ -512,14 +512,14 @@ expanded to all regidtered subfuiles in them."
512revert all registered files beneath it." 512revert all registered files beneath it."
513 (if (file-directory-p file) 513 (if (file-directory-p file)
514 (mapc 'vc-rcs-revert (vc-expand-dirs (list file))) 514 (mapc 'vc-rcs-revert (vc-expand-dirs (list file)))
515 (vc-do-command nil 0 "co" (vc-name file) "-f" 515 (vc-do-command "*vc*" 0 "co" (vc-name file) "-f"
516 (concat (if (eq (vc-state file) 'edited) "-u" "-r") 516 (concat (if (eq (vc-state file) 'edited) "-u" "-r")
517 (vc-working-revision file))))) 517 (vc-working-revision file)))))
518 518
519(defun vc-rcs-merge (file first-version &optional second-version) 519(defun vc-rcs-merge (file first-version &optional second-version)
520 "Merge changes into current working copy of FILE. 520 "Merge changes into current working copy of FILE.
521The changes are between FIRST-VERSION and SECOND-VERSION." 521The changes are between FIRST-VERSION and SECOND-VERSION."
522 (vc-do-command nil 1 "rcsmerge" (vc-name file) 522 (vc-do-command "*vc*" 1 "rcsmerge" (vc-name file)
523 "-kk" ; ignore keyword conflicts 523 "-kk" ; ignore keyword conflicts
524 (concat "-r" first-version) 524 (concat "-r" first-version)
525 (if second-version (concat "-r" second-version)))) 525 (if second-version (concat "-r" second-version))))
@@ -530,16 +530,16 @@ If FUILEis a directory, steal the lock on all registered files beneath it.
530Needs RCS 5.6.2 or later for -M." 530Needs RCS 5.6.2 or later for -M."
531 (if (file-directory-p file) 531 (if (file-directory-p file)
532 (mapc 'vc-rcs-steal-lock (vc-expand-dirs (list file))) 532 (mapc 'vc-rcs-steal-lock (vc-expand-dirs (list file)))
533 (vc-do-command nil 0 "rcs" (vc-name file) "-M" (concat "-u" rev)) 533 (vc-do-command "*vc*" 0 "rcs" (vc-name file) "-M" (concat "-u" rev))
534 ;; Do a real checkout after stealing the lock, so that we see 534 ;; Do a real checkout after stealing the lock, so that we see
535 ;; expanded headers. 535 ;; expanded headers.
536 (vc-do-command nil 0 "co" (vc-name file) "-f" (concat "-l" rev)))) 536 (vc-do-command "*vc*" 0 "co" (vc-name file) "-f" (concat "-l" rev))))
537 537
538(defun vc-rcs-modify-change-comment (files rev comment) 538(defun vc-rcs-modify-change-comment (files rev comment)
539 "Modify the change comments change on FILES on a specified REV. If FILE is a 539 "Modify the change comments change on FILES on a specified REV. If FILE is a
540directory the operation is applied to all registered files beneath it." 540directory the operation is applied to all registered files beneath it."
541 (dolist (file (vc-expand-dirs files)) 541 (dolist (file (vc-expand-dirs files))
542 (vc-do-command nil 0 "rcs" (vc-name file) 542 (vc-do-command "*vc*" 0 "rcs" (vc-name file)
543 (concat "-m" rev ":" comment)))) 543 (concat "-m" rev ":" comment))))
544 544
545 545
@@ -550,7 +550,7 @@ directory the operation is applied to all registered files beneath it."
550(defun vc-rcs-print-log (files &optional buffer) 550(defun vc-rcs-print-log (files &optional buffer)
551 "Get change log associated with FILE. If FILE is a 551 "Get change log associated with FILE. If FILE is a
552directory the operation is applied to all registered files beneath it." 552directory the operation is applied to all registered files beneath it."
553 (vc-do-command buffer 0 "rlog" (mapcar 'vc-name (vc-expand-dirs files)))) 553 (vc-do-command (or buffer "*vc*") 0 "rlog" (mapcar 'vc-name (vc-expand-dirs files))))
554 554
555(defun vc-rcs-diff (files &optional oldvers newvers buffer) 555(defun vc-rcs-diff (files &optional oldvers newvers buffer)
556 "Get a difference report using RCS between two sets of files." 556 "Get a difference report using RCS between two sets of files."
@@ -792,7 +792,7 @@ systime, or nil if there is none. Also, reposition point."
792 792
793(defun vc-rcs-assign-name (file name) 793(defun vc-rcs-assign-name (file name)
794 "Assign to FILE's latest version a given NAME." 794 "Assign to FILE's latest version a given NAME."
795 (vc-do-command nil 0 "rcs" (vc-name file) (concat "-n" name ":"))) 795 (vc-do-command "*vc*" 0 "rcs" (vc-name file) (concat "-n" name ":")))
796 796
797 797
798;;; 798;;;
@@ -1063,18 +1063,18 @@ If the user has not set variable `vc-rcs-release' and it is nil,
1063variable `vc-rcs-release' is set to the returned value." 1063variable `vc-rcs-release' is set to the returned value."
1064 (or vc-rcs-release 1064 (or vc-rcs-release
1065 (setq vc-rcs-release 1065 (setq vc-rcs-release
1066 (or (and (zerop (vc-do-command nil nil "rcs" nil "-V")) 1066 (or (and (zerop (vc-do-command "*vc*" nil "rcs" nil "-V"))
1067 (with-current-buffer (get-buffer "*vc*") 1067 (with-current-buffer (get-buffer "*vc*")
1068 (vc-parse-buffer "^RCS version \\([0-9.]+ *.*\\)" 1))) 1068 (vc-parse-buffer "^RCS version \\([0-9.]+ *.*\\)" 1)))
1069 'unknown)))) 1069 'unknown))))
1070 1070
1071(defun vc-rcs-set-non-strict-locking (file) 1071(defun vc-rcs-set-non-strict-locking (file)
1072 (vc-do-command nil 0 "rcs" file "-U") 1072 (vc-do-command "*vc*" 0 "rcs" file "-U")
1073 (vc-file-setprop file 'vc-checkout-model 'implicit) 1073 (vc-file-setprop file 'vc-checkout-model 'implicit)
1074 (set-file-modes file (logior (file-modes file) 128))) 1074 (set-file-modes file (logior (file-modes file) 128)))
1075 1075
1076(defun vc-rcs-set-default-branch (file branch) 1076(defun vc-rcs-set-default-branch (file branch)
1077 (vc-do-command nil 0 "rcs" (vc-name file) (concat "-b" branch)) 1077 (vc-do-command "*vc*" 0 "rcs" (vc-name file) (concat "-b" branch))
1078 (vc-file-setprop file 'vc-rcs-default-branch branch)) 1078 (vc-file-setprop file 'vc-rcs-default-branch branch))
1079 1079
1080(defun vc-rcs-parse (&optional buffer) 1080(defun vc-rcs-parse (&optional buffer)
diff --git a/lisp/vc-sccs.el b/lisp/vc-sccs.el
index d4bc33fe9d3..f8a98f52702 100644
--- a/lisp/vc-sccs.el
+++ b/lisp/vc-sccs.el
@@ -180,7 +180,7 @@ For a description of possible values, see `vc-check-master-templates'."
180 180
181(defun vc-sccs-workfile-unchanged-p (file) 181(defun vc-sccs-workfile-unchanged-p (file)
182 "SCCS-specific implementation of `vc-workfile-unchanged-p'." 182 "SCCS-specific implementation of `vc-workfile-unchanged-p'."
183 (zerop (apply 'vc-do-command nil 1 "vcdiff" (vc-name file) 183 (zerop (apply 'vc-do-command "*vc*" 1 "vcdiff" (vc-name file)
184 (list "--brief" "-q" 184 (list "--brief" "-q"
185 (concat "-r" (vc-working-revision file)))))) 185 (concat "-r" (vc-working-revision file))))))
186 186
@@ -192,7 +192,7 @@ For a description of possible values, see `vc-check-master-templates'."
192(defun vc-sccs-do-command (buffer okstatus command file-or-list &rest flags) 192(defun vc-sccs-do-command (buffer okstatus command file-or-list &rest flags)
193 ;; (let ((load-path (append vc-sccs-path load-path))) 193 ;; (let ((load-path (append vc-sccs-path load-path)))
194 ;; (apply 'vc-do-command buffer okstatus command file-or-list flags)) 194 ;; (apply 'vc-do-command buffer okstatus command file-or-list flags))
195 (apply 'vc-do-command buffer okstatus "sccs" file-or-list command flags)) 195 (apply 'vc-do-command (or buffer "*vc*") okstatus "sccs" file-or-list command flags))
196 196
197(defun vc-sccs-create-repo () 197(defun vc-sccs-create-repo ()
198 "Create a new SCCS repository." 198 "Create a new SCCS repository."
diff --git a/lisp/vc-svn.el b/lisp/vc-svn.el
index 7b12717dd81..44f7e8eb44d 100644
--- a/lisp/vc-svn.el
+++ b/lisp/vc-svn.el
@@ -208,8 +208,8 @@ RESULT is a list of conses (FILE . STATE) for directory DIR."
208 208
209(defun vc-svn-create-repo () 209(defun vc-svn-create-repo ()
210 "Create a new SVN repository." 210 "Create a new SVN repository."
211 (vc-do-command nil 0 "svnadmin" '("create" "SVN")) 211 (vc-do-command "*vc*" 0 "svnadmin" '("create" "SVN"))
212 (vc-do-command nil 0 "svn" '(".") 212 (vc-do-command "*vc*" 0 "svn" '(".")
213 "checkout" (concat "file://" default-directory "SVN"))) 213 "checkout" (concat "file://" default-directory "SVN")))
214 214
215(defun vc-svn-register (files &optional rev comment) 215(defun vc-svn-register (files &optional rev comment)
@@ -389,17 +389,17 @@ or svn+ssh://."
389 ;; Repository Root is a local file. 389 ;; Repository Root is a local file.
390 (progn 390 (progn
391 (unless (vc-do-command 391 (unless (vc-do-command
392 nil 0 "svnadmin" nil 392 "*vc*" 0 "svnadmin" nil
393 "setlog" "--bypass-hooks" directory 393 "setlog" "--bypass-hooks" directory
394 "-r" rev (format "%s" tempfile)) 394 "-r" rev (format "%s" tempfile))
395 (error "Log edit failed")) 395 (error "Log edit failed"))
396 (delete-file tempfile)) 396 (delete-file tempfile))
397 397
398 ;; Remote repository, using svn+ssh. 398 ;; Remote repository, using svn+ssh.
399 (unless (vc-do-command nil 0 "scp" nil "-q" tempfile remotefile) 399 (unless (vc-do-command "*vc*" 0 "scp" nil "-q" tempfile remotefile)
400 (error "Copy of comment to %s failed" remotefile)) 400 (error "Copy of comment to %s failed" remotefile))
401 (unless (vc-do-command 401 (unless (vc-do-command
402 nil 0 "ssh" nil "-q" host 402 "*vc*" 0 "ssh" nil "-q" host
403 (format "svnadmin setlog --bypass-hooks %s -r %s %s; rm %s" 403 (format "svnadmin setlog --bypass-hooks %s -r %s %s; rm %s"
404 directory rev tempfile tempfile)) 404 directory rev tempfile tempfile))
405 (error "Log edit failed"))))) 405 (error "Log edit failed")))))
@@ -517,7 +517,7 @@ NAME is assumed to be a URL."
517 "A wrapper around `vc-do-command' for use in vc-svn.el. 517 "A wrapper around `vc-do-command' for use in vc-svn.el.
518The difference to vc-do-command is that this function always invokes `svn', 518The difference to vc-do-command is that this function always invokes `svn',
519and that it passes `vc-svn-global-switches' to it before FLAGS." 519and that it passes `vc-svn-global-switches' to it before FLAGS."
520 (apply 'vc-do-command buffer okstatus vc-svn-program file-or-list 520 (apply 'vc-do-command (or buffer "*vc*") okstatus vc-svn-program file-or-list
521 (if (stringp vc-svn-global-switches) 521 (if (stringp vc-svn-global-switches)
522 (cons vc-svn-global-switches flags) 522 (cons vc-svn-global-switches flags)
523 (append vc-svn-global-switches 523 (append vc-svn-global-switches
@@ -625,10 +625,6 @@ information about FILENAME and return its status."
625 (t 'edited))))) 625 (t 'edited)))))
626 (if filename (vc-file-getprop filename 'vc-state)))) 626 (if filename (vc-file-getprop filename 'vc-state))))
627 627
628(defun vc-svn-dir-state-heuristic (dir)
629 "Find the SVN state of all files in DIR, using only local information."
630 (vc-svn-dir-state dir 'local))
631
632(defun vc-svn-valid-symbolic-tag-name-p (tag) 628(defun vc-svn-valid-symbolic-tag-name-p (tag)
633 "Return non-nil if TAG is a valid symbolic tag name." 629 "Return non-nil if TAG is a valid symbolic tag name."
634 ;; According to the SVN manual, a valid symbolic tag must start with 630 ;; According to the SVN manual, a valid symbolic tag must start with