Commit f83109f0 authored by Eric S. Raymond's avatar Eric S. Raymond
Browse files

Remove never-used rev argument from VC's backend checkin methods.

Alters vc/vc-arch.el, vc/vc-bzr.el, vc/vc-cvs.el, vc/vc-dav.el,
vc/vc-git.el, vc/vc-hg.el, vc/vc-mtn.el, vc/vc-rcs.el,
vc/vc-sccs.el, vc/vc-svn.el, vc/vc.el.

Only the RCS, SCCS, and CVS back ends tried to do anything with it,
and that code was never exercised. Chiseling away the cruft of
decades...
parent f5d77aaf
2014-11-20 Eric S. Raymond <esr@snark>
* vc/vc-arch.el, vc/vc-bzr.el, vc/vc-cvs.el, vc/vc-dav.el,
vc/vc-git.el, vc/vc-hg.el, vc/vc-mtn.el, vc/vc-rcs.el,
vc/vc-sccs.el, vc/vc-svn.el, vc/vc.el: Remove never-used rev
argument from the backend checkin methods. Only the RCS, SCCS, and
CVS back ends tried to do anything with it, and that code was
never exercised. Chiseling away the cruft of decades...
2014-11-19 Lars Magne Ingebrigtsen <larsi@gnus.org> 2014-11-19 Lars Magne Ingebrigtsen <larsi@gnus.org>
   
* net/eww.el (eww-render): Remove a no-op :title setting. * net/eww.el (eww-render): Remove a no-op :title setting.
......
...@@ -441,8 +441,7 @@ CALLBACK expects (ENTRIES &optional MORE-TO-COME); see ...@@ -441,8 +441,7 @@ CALLBACK expects (ENTRIES &optional MORE-TO-COME); see
(autoload 'vc-switches "vc") (autoload 'vc-switches "vc")
(defun vc-arch-checkin (files rev comment) (defun vc-arch-checkin (files comment)
(if rev (error "Committing to a specific revision is unsupported"))
;; FIXME: This implementation probably only works for singleton filesets ;; FIXME: This implementation probably only works for singleton filesets
(let ((summary (file-relative-name (car files) (vc-arch-root (car files))))) (let ((summary (file-relative-name (car files) (vc-arch-root (car files)))))
;; Extract a summary from the comment. ;; Extract a summary from the comment.
......
...@@ -634,10 +634,8 @@ or a superior directory.") ...@@ -634,10 +634,8 @@ or a superior directory.")
"" (replace-regexp-in-string "" (replace-regexp-in-string
"\n[ \t]?" " " str))))) "\n[ \t]?" " " str)))))
(defun vc-bzr-checkin (files rev comment) (defun vc-bzr-checkin (files comment)
"Check FILES in to bzr with log message COMMENT. "Check FILES in to bzr with log message COMMENT."
REV non-nil gets an error."
(if rev (error "Can't check in a specific revision with bzr"))
(apply 'vc-bzr-command "commit" nil 0 files (apply 'vc-bzr-command "commit" nil 0 files
(cons "-m" (log-edit-extract-headers (cons "-m" (log-edit-extract-headers
`(("Author" . ,(vc-bzr--sanitize-header "--author")) `(("Author" . ,(vc-bzr--sanitize-header "--author"))
......
...@@ -321,20 +321,38 @@ its parents." ...@@ -321,20 +321,38 @@ its parents."
(directory-file-name dir)))) (directory-file-name dir))))
(eq dir t))) (eq dir t)))
(defun vc-cvs-checkin (files rev comment) ;; vc-cvs-checkin used to take a 'rev' second argument that allowed
;; checking in onto a specified branch tip rather than the current
;; default branch, but nothing in the entire rest of VC exercised
;; this code. Removing it simplifies the backend interface for all
;; modes.
;;
;; Here's the setup code preserved in amber, in case the logic needs
;; to be broken out into a method someday; (if rev (concat "-r" rev))
;; used to be part of the switches passed to vc-cvs-command.
;;
;; (unless (or (not rev) (vc-cvs-valid-revision-number-p rev))
;; (if (not (vc-cvs-valid-symbolic-tag-name-p rev))
;; (error "%s is not a valid symbolic tag name" rev)
;; ;; If the input revision is a valid symbolic tag name, we create it
;; ;; as a branch, commit and switch to it.
;; (apply 'vc-cvs-command nil 0 files "tag" "-b" (list rev))
;; (apply 'vc-cvs-command nil 0 files "update" "-r" (list rev))
;; (mapc (lambda (file) (vc-file-setprop file 'vc-cvs-sticky-tag rev))
;; files)))
;;
;; The following postamble cleaned up after the branch change:
;;
;; ;; if this was an explicit check-in (does not include creation of
;; ;; a branch), remove the sticky tag.
;; (if (and rev (not (vc-cvs-valid-symbolic-tag-name-p rev)))
;; (vc-cvs-command nil 0 files "update" "-A"))))
;; files)))
;;
(defun vc-cvs-checkin (files comment)
"CVS-specific version of `vc-backend-checkin'." "CVS-specific version of `vc-backend-checkin'."
(unless (or (not rev) (vc-cvs-valid-revision-number-p rev))
(if (not (vc-cvs-valid-symbolic-tag-name-p rev))
(error "%s is not a valid symbolic tag name" rev)
;; If the input revision is a valid symbolic tag name, we create it
;; as a branch, commit and switch to it.
(apply 'vc-cvs-command nil 0 files "tag" "-b" (list rev))
(apply 'vc-cvs-command nil 0 files "update" "-r" (list rev))
(mapc (lambda (file) (vc-file-setprop file 'vc-cvs-sticky-tag rev))
files)))
(let ((status (apply 'vc-cvs-command nil 1 files (let ((status (apply 'vc-cvs-command nil 1 files
"ci" (if rev (concat "-r" rev)) "ci" (concat "-m" comment)
(concat "-m" comment)
(vc-switches 'CVS 'checkin)))) (vc-switches 'CVS 'checkin))))
(set-buffer "*vc*") (set-buffer "*vc*")
(goto-char (point-min)) (goto-char (point-min))
...@@ -365,12 +383,7 @@ its parents." ...@@ -365,12 +383,7 @@ its parents."
;; tell it from the permissions of the file (see ;; tell it from the permissions of the file (see
;; vc-cvs-checkout-model). ;; vc-cvs-checkout-model).
(mapc (lambda (file) (vc-file-setprop file 'vc-checkout-model nil)) (mapc (lambda (file) (vc-file-setprop file 'vc-checkout-model nil))
files) files)))
;; if this was an explicit check-in (does not include creation of
;; a branch), remove the sticky tag.
(if (and rev (not (vc-cvs-valid-symbolic-tag-name-p rev)))
(vc-cvs-command nil 0 files "update" "-A"))))
(defun vc-cvs-find-revision (file rev buffer) (defun vc-cvs-find-revision (file rev buffer)
(apply 'vc-cvs-command (apply 'vc-cvs-command
......
...@@ -82,10 +82,8 @@ See `vc-checkout-model' for a list of possible values." ...@@ -82,10 +82,8 @@ See `vc-checkout-model' for a list of possible values."
;; Do we need to do anything here? FIXME? ;; Do we need to do anything here? FIXME?
) )
(defun vc-dav-checkin (url rev comment) (defun vc-dav-checkin (url comment)
"Commit changes in URL to WebDAV. "Commit changes in URL to WebDAV. COMMENT is used as a check-in comment."
If REV is non-nil, that should become the new revision number.
COMMENT is used as a check-in comment."
;; This should PUT the resource and release any locks that we hold. ;; This should PUT the resource and release any locks that we hold.
) )
......
...@@ -665,7 +665,7 @@ If toggling on, also insert its message into the buffer." ...@@ -665,7 +665,7 @@ If toggling on, also insert its message into the buffer."
"Major mode for editing Git log messages. "Major mode for editing Git log messages.
It is based on `log-edit-mode', and has Git-specific extensions.") It is based on `log-edit-mode', and has Git-specific extensions.")
(defun vc-git-checkin (files _rev comment) (defun vc-git-checkin (files comment)
(let* ((file1 (or (car files) default-directory)) (let* ((file1 (or (car files) default-directory))
(root (vc-git-root file1)) (root (vc-git-root file1))
(default-directory (expand-file-name root)) (default-directory (expand-file-name root))
......
...@@ -407,7 +407,7 @@ Optional arg REVISION is a revision to annotate from." ...@@ -407,7 +407,7 @@ Optional arg REVISION is a revision to annotate from."
(and (vc-hg-command nil 0 nil "status") (and (vc-hg-command nil 0 nil "status")
(vc-hg-command nil 0 nil (if branchp "bookmark" "tag") name)))) (vc-hg-command nil 0 nil (if branchp "bookmark" "tag") name))))
(defun vc-hg-retrieve-tag (dir name update) (defun vc-hg-retrieve-tag (dir name _update)
"Retrieve the version tagged by NAME of all registered files at or below DIR." "Retrieve the version tagged by NAME of all registered files at or below DIR."
(let ((default-directory dir)) (let ((default-directory dir))
(vc-hg-command nil 0 nil "update" name) (vc-hg-command nil 0 nil "update" name)
...@@ -477,7 +477,7 @@ COMMENT is ignored." ...@@ -477,7 +477,7 @@ COMMENT is ignored."
(declare-function log-edit-extract-headers "log-edit" (headers string)) (declare-function log-edit-extract-headers "log-edit" (headers string))
(defun vc-hg-checkin (files _rev comment) (defun vc-hg-checkin (files comment)
"Hg-specific version of `vc-backend-checkin'. "Hg-specific version of `vc-backend-checkin'.
REV is ignored." REV is ignored."
(apply 'vc-hg-command nil 0 files (apply 'vc-hg-command nil 0 files
......
...@@ -187,7 +187,7 @@ If nil, use the value of `vc-diff-switches'. If t, use no switches." ...@@ -187,7 +187,7 @@ If nil, use the value of `vc-diff-switches'. If t, use no switches."
(declare-function log-edit-extract-headers "log-edit" (headers string)) (declare-function log-edit-extract-headers "log-edit" (headers string))
(defun vc-mtn-checkin (files _rev comment) (defun vc-mtn-checkin (files comment)
(apply 'vc-mtn-command nil 0 files (apply 'vc-mtn-command nil 0 files
(nconc (list "commit" "-m") (nconc (list "commit" "-m")
(log-edit-extract-headers '(("Author" . "--author") (log-edit-extract-headers '(("Author" . "--author")
......
...@@ -358,23 +358,27 @@ whether to remove it." ...@@ -358,23 +358,27 @@ whether to remove it."
(yes-or-no-p (format "Directory %s is empty; remove it? " dir)) (yes-or-no-p (format "Directory %s is empty; remove it? " dir))
(delete-directory dir)))) (delete-directory dir))))
(defun vc-rcs-checkin (files rev comment) ;; It used to be possible to pass in a value for the variable rev, but
;; nothing in the rest of VC used this capability. Removing it makes the
;; backend interface simpler for all modes.
;;
(defun vc-rcs-checkin (files comment)
"RCS-specific version of `vc-backend-checkin'." "RCS-specific version of `vc-backend-checkin'."
(let ((switches (vc-switches 'RCS 'checkin))) (let (rev (switches (vc-switches 'RCS 'checkin)))
;; Now operate on the files ;; Now operate on the files
(dolist (file (vc-expand-dirs files)) (dolist (file (vc-expand-dirs files))
(let ((old-version (vc-working-revision file)) new-version (let ((old-version (vc-working-revision file)) new-version
(default-branch (vc-file-getprop file 'vc-rcs-default-branch))) (default-branch (vc-file-getprop file 'vc-rcs-default-branch)))
;; Force branch creation if an appropriate ;; Force branch creation if an appropriate
;; default branch has been set. ;; default branch has been set.
(and (not rev) (and default-branch
default-branch
(string-match (concat "^" (regexp-quote old-version) "\\.") (string-match (concat "^" (regexp-quote old-version) "\\.")
default-branch) default-branch)
(setq rev default-branch) (setq rev default-branch)
(setq switches (cons "-f" switches))) (setq switches (cons "-f" switches)))
(if (and (not rev) old-version) (if old-version
(setq rev (vc-branch-part old-version))) (setq rev (vc-branch-part old-version))
(error "can't find current branch"))
(apply #'vc-do-command "*vc*" 0 "ci" (vc-name file) (apply #'vc-do-command "*vc*" 0 "ci" (vc-name file)
;; if available, use the secure check-in option ;; if available, use the secure check-in option
(and (vc-rcs-release-p "5.6.4") "-j") (and (vc-rcs-release-p "5.6.4") "-j")
......
...@@ -253,11 +253,10 @@ expanded if `vc-keep-workfiles' is non-nil, otherwise, delete the workfile." ...@@ -253,11 +253,10 @@ expanded if `vc-keep-workfiles' is non-nil, otherwise, delete the workfile."
(stringp (vc-sccs-search-project-dir (or (file-name-directory file) "") (stringp (vc-sccs-search-project-dir (or (file-name-directory file) "")
(file-name-nondirectory file))))) (file-name-nondirectory file)))))
(defun vc-sccs-checkin (files rev comment) (defun vc-sccs-checkin (files comment)
"SCCS-specific version of `vc-backend-checkin'." "SCCS-specific version of `vc-backend-checkin'."
(dolist (file (vc-expand-dirs files)) (dolist (file (vc-expand-dirs files))
(apply 'vc-sccs-do-command nil 0 "delta" (vc-name file) (apply 'vc-sccs-do-command nil 0 "delta" (vc-name file)
(if rev (concat "-r" rev))
(concat "-y" comment) (concat "-y" comment)
(vc-switches 'SCCS 'checkin)) (vc-switches 'SCCS 'checkin))
(if vc-keep-workfiles (if vc-keep-workfiles
......
...@@ -316,9 +316,8 @@ to the SVN command." ...@@ -316,9 +316,8 @@ to the SVN command."
"Return non-nil if FILE could be registered in SVN. "Return non-nil if FILE could be registered in SVN.
This is only possible if SVN is responsible for FILE's directory.") This is only possible if SVN is responsible for FILE's directory.")
(defun vc-svn-checkin (files rev comment &optional _extra-args-ignored) (defun vc-svn-checkin (files comment &optional _extra-args-ignored)
"SVN-specific version of `vc-backend-checkin'." "SVN-specific version of `vc-backend-checkin'."
(if rev (error "Committing to a specific revision is unsupported in SVN"))
(let ((status (apply (let ((status (apply
'vc-svn-command nil 1 files "ci" 'vc-svn-command nil 1 files "ci"
(nconc (list "-m" comment) (vc-switches 'SVN 'checkin))))) (nconc (list "-m" comment) (vc-switches 'SVN 'checkin)))))
......
...@@ -72,7 +72,7 @@ ...@@ -72,7 +72,7 @@
;; When using Subversion or a later system, anything you do outside VC ;; When using Subversion or a later system, anything you do outside VC
;; *through the VCS tools* should safely interlock with VC ;; *through the VCS tools* should safely interlock with VC
;; operations. Under these VC does little state caching, because local ;; operations. Under these VC does little state caching, because local
;; operations are assumed to be fast. The dividing line is ;; operations are assumed to be fast.
;; ;;
;; ADDING SUPPORT FOR OTHER BACKENDS ;; ADDING SUPPORT FOR OTHER BACKENDS
;; ;;
...@@ -267,12 +267,12 @@ ...@@ -267,12 +267,12 @@
;; Unregister FILE from this backend. This is only needed if this ;; Unregister FILE from this backend. This is only needed if this
;; backend may be used as a "more local" backend for temporary editing. ;; backend may be used as a "more local" backend for temporary editing.
;; ;;
;; * checkin (files rev comment) ;; * checkin (files comment)
;; ;;
;; Commit changes in FILES to this backend. REV is a historical artifact ;; Commit changes in FILES to this backend. COMMENT is used as a
;; and should be ignored. COMMENT is used as a check-in comment. ;; check-in comment. The implementation should pass the value of
;; The implementation should pass the value of vc-checkin-switches to ;; vc-checkin-switches to the backend command. The revision argument
;; the backend command. ;; of some older VC versions is no longer supported.
;; ;;
;; * find-revision (file rev buffer) ;; * find-revision (file rev buffer)
;; ;;
...@@ -1498,13 +1498,11 @@ Type \\[vc-next-action] to check in changes.") ...@@ -1498,13 +1498,11 @@ Type \\[vc-next-action] to check in changes.")
".\n") ".\n")
(message "Please explain why you stole the lock. Type C-c C-c when done."))) (message "Please explain why you stole the lock. Type C-c C-c when done.")))
(defun vc-checkin (files backend &optional rev comment initial-contents) (defun vc-checkin (files backend &optional comment initial-contents)
"Check in FILES. "Check in FILES. COMMENT is a comment string; if omitted, a
The optional argument REV may be a string specifying the new revision buffer is popped up to accept a comment. If INITIAL-CONTENTS is
level (strongly deprecated). COMMENT is a comment non-nil, then COMMENT is used as the initial contents of the log
string; if omitted, a buffer is popped up to accept a comment. If entry buffer.
INITIAL-CONTENTS is non-nil, then COMMENT is used as the initial contents
of the log entry buffer.
If `vc-keep-workfiles' is nil, FILE is deleted afterwards, provided If `vc-keep-workfiles' is nil, FILE is deleted afterwards, provided
that the version control system supports this mode of operation. that the version control system supports this mode of operation.
...@@ -1530,7 +1528,7 @@ Runs the normal hooks `vc-before-checkin-hook' and `vc-checkin-hook'." ...@@ -1530,7 +1528,7 @@ Runs the normal hooks `vc-before-checkin-hook' and `vc-checkin-hook'."
;; vc-checkin-switches, but 'the' local buffer is ;; vc-checkin-switches, but 'the' local buffer is
;; not a well-defined concept for filesets. ;; not a well-defined concept for filesets.
(progn (progn
(vc-call-backend backend 'checkin files rev comment) (vc-call-backend backend 'checkin files comment)
(mapc 'vc-delete-automatic-version-backups files)) (mapc 'vc-delete-automatic-version-backups files))
`((vc-state . up-to-date) `((vc-state . up-to-date)
(vc-checkout-time . ,(nth 5 (file-attributes file))) (vc-checkout-time . ,(nth 5 (file-attributes file)))
...@@ -2686,7 +2684,7 @@ backend to NEW-BACKEND, and unregister FILE from the current backend. ...@@ -2686,7 +2684,7 @@ backend to NEW-BACKEND, and unregister FILE from the current backend.
(when (or move edited) (when (or move edited)
(vc-file-setprop file 'vc-state 'edited) (vc-file-setprop file 'vc-state 'edited)
(vc-mode-line file new-backend) (vc-mode-line file new-backend)
(vc-checkin file new-backend nil comment (stringp comment))))) (vc-checkin file new-backend comment (stringp comment)))))
(defun vc-rename-master (oldmaster newfile templates) (defun vc-rename-master (oldmaster newfile templates)
"Rename OLDMASTER to be the master file for NEWFILE based on TEMPLATES." "Rename OLDMASTER to be the master file for NEWFILE based on TEMPLATES."
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment