[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/vc-svn.el
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/vc-svn.el |
Date: |
Fri, 04 Jul 2003 18:21:46 -0400 |
Index: emacs/lisp/vc-svn.el
diff -c emacs/lisp/vc-svn.el:1.9 emacs/lisp/vc-svn.el:1.10
*** emacs/lisp/vc-svn.el:1.9 Wed May 14 15:38:39 2003
--- emacs/lisp/vc-svn.el Fri Jul 4 18:21:45 2003
***************
*** 81,93 ****
:type '(repeat string)
:group 'vc)
! (defcustom vc-svn-use-edit nil
"*Non-nil means to use `svn edit' to \"check out\" a file.
This is only meaningful if you don't use the implicit checkout model
\(i.e. if you have $SVNREAD set)."
! :type 'boolean
! :version "21.4"
! :group 'vc)
;;;
;;; State-querying functions
--- 81,95 ----
:type '(repeat string)
:group 'vc)
! (defconst vc-svn-use-edit nil
! ;; Subversion does not provide this feature (yet).
"*Non-nil means to use `svn edit' to \"check out\" a file.
This is only meaningful if you don't use the implicit checkout model
\(i.e. if you have $SVNREAD set)."
! ;; :type 'boolean
! ;; :version "21.4"
! ;; :group 'vc
! )
;;;
;;; State-querying functions
***************
*** 151,156 ****
--- 153,161 ----
;; It looks like Subversion has no equivalent of CVSREAD.
'implicit)
+ ;; vc-svn-mode-line-string doesn't exist because the default implementation
+ ;; works just fine.
+
(defun vc-svn-dired-state-info (file)
"SVN-specific version of `vc-dired-state-info'."
(let ((svn-state (vc-state file)))
***************
*** 171,181 ****
`vc-register-switches' and `vc-svn-register-switches' are passed to
the SVN command (in that order)."
! (apply 'vc-svn-command nil 0 file
! "add"
! ;; (and comment (string-match "[^\t\n ]" comment)
! ;; (concat "-m" comment))
! (vc-switches 'SVN 'register)))
(defun vc-svn-responsible-p (file)
"Return non-nil if SVN thinks it is responsible for FILE."
--- 176,182 ----
`vc-register-switches' and `vc-svn-register-switches' are passed to
the SVN command (in that order)."
! (apply 'vc-svn-command nil 0 file "add" (vc-switches 'SVN 'register)))
(defun vc-svn-responsible-p (file)
"Return non-nil if SVN thinks it is responsible for FILE."
***************
*** 240,252 ****
;; Check out a particular version (or recreate the file).
(vc-file-setprop file 'vc-workfile-version nil)
(apply 'vc-svn-command nil 0 file
- "-w"
"update"
;; default for verbose checkout: clear the sticky tag so
;; that the actual update will get the head of the trunk
! (if (or (not rev) (string= rev ""))
! "-A"
! (concat "-r" rev))
switches)))
(defun vc-svn-delete-file (file)
--- 241,253 ----
;; Check out a particular version (or recreate the file).
(vc-file-setprop file 'vc-workfile-version nil)
(apply 'vc-svn-command nil 0 file
"update"
;; default for verbose checkout: clear the sticky tag so
;; that the actual update will get the head of the trunk
! (cond
! ((null rev) "-rBASE")
! ((or (eq rev t) (equal rev "")) nil)
! (t (concat "-r" rev)))
switches)))
(defun vc-svn-delete-file (file)
***************
*** 376,404 ****
(defun vc-svn-diff-tree (dir &optional rev1 rev2)
"Diff all files at and below DIR."
! (with-current-buffer "*vc-diff*"
! (setq default-directory dir)
! (if (vc-stay-local-p dir)
! ;; local diff: do it filewise, and only for files that are modified
! (vc-file-tree-walk
! dir
! (lambda (f)
! (vc-exec-after
! `(let ((coding-system-for-read (vc-coding-system-for-diff ',f)))
! ;; possible optimization: fetch the state of all files
! ;; in the tree via vc-svn-dir-state-heuristic
! (unless (vc-up-to-date-p ',f)
! (message "Looking at %s" ',f)
! (vc-diff-internal ',f ',rev1 ',rev2))))))
! ;; svn diff: use a single call for the entire tree
! (let ((coding-system-for-read (or coding-system-for-read 'undecided))
! (switches (vc-switches 'SVN 'diff)))
! (apply 'vc-svn-command "*vc-diff*" 1 nil "diff"
! (append
! (when rev1
! (list "-r" (if rev2 (concat rev1 ":" rev2) rev1)))
! (when switches
! (list "-x" (mapconcat 'identity switches " ")))))))))
;;;
;;; Snapshot system
--- 377,383 ----
(defun vc-svn-diff-tree (dir &optional rev1 rev2)
"Diff all files at and below DIR."
! (vc-svn-diff (file-name-as-directory dir) rev1 rev2))
;;;
;;; Snapshot system
***************
*** 407,452 ****
(defun vc-svn-create-snapshot (dir name branchp)
"Assign to DIR's current version a given NAME.
If BRANCHP is non-nil, the name is created as a branch (and the current
! workspace is immediately moved to that new branch)."
! (vc-svn-command nil 0 dir "tag" "-c" (if branchp "-b") name)
! (when branchp (vc-svn-command nil 0 dir "update" "-r" name)))
(defun vc-svn-retrieve-snapshot (dir name update)
"Retrieve a snapshot at and below DIR.
NAME is the name of the snapshot; if it is empty, do a `svn update'.
! If UPDATE is non-nil, then update (resynch) any affected buffers."
! (with-current-buffer (get-buffer-create "*vc*")
! (let ((default-directory dir)
! (sticky-tag))
! (erase-buffer)
! (if (or (not name) (string= name ""))
! (vc-svn-command t 0 nil "update")
! (vc-svn-command t 0 nil "update" "-r" name)
! (setq sticky-tag name))
! (when update
! (goto-char (point-min))
! (while (not (eobp))
! (if (looking-at "\\([CMUP]\\) \\(.*\\)")
! (let* ((file (expand-file-name (match-string 2) dir))
! (state (match-string 1))
! (buffer (find-buffer-visiting file)))
! (when buffer
! (cond
! ((or (string= state "U")
! (string= state "P"))
! (vc-file-setprop file 'vc-state 'up-to-date)
! (vc-file-setprop file 'vc-workfile-version nil)
! (vc-file-setprop file 'vc-checkout-time
! (nth 5 (file-attributes file))))
! ((or (string= state "M")
! (string= state "C"))
! (vc-file-setprop file 'vc-state 'edited)
! (vc-file-setprop file 'vc-workfile-version nil)
! (vc-file-setprop file 'vc-checkout-time 0)))
! (vc-file-setprop file 'vc-svn-sticky-tag sticky-tag)
! (vc-resynch-buffer file t t))))
! (forward-line 1))))))
!
;;;
;;; Miscellaneous
--- 386,404 ----
(defun vc-svn-create-snapshot (dir name branchp)
"Assign to DIR's current version a given NAME.
If BRANCHP is non-nil, the name is created as a branch (and the current
! workspace is immediately moved to that new branch).
! NAME is assumed to be a URL."
! (vc-svn-command nil 0 dir "copy" name)
! (when branchp (vc-svn-retrieve-snapshot dir name nil)))
(defun vc-svn-retrieve-snapshot (dir name update)
"Retrieve a snapshot at and below DIR.
NAME is the name of the snapshot; if it is empty, do a `svn update'.
! If UPDATE is non-nil, then update (resynch) any affected buffers.
! NAME is assumed to be a URL."
! (vc-svn-command nil 0 dir "switch" name)
! ;; FIXME: parse the output and obey `update'.
! )
;;;
;;; Miscellaneous
- [Emacs-diffs] Changes to emacs/lisp/vc-svn.el,
Stefan Monnier <=