[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/vc-svn.el,v
From: |
Glenn Morris |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/vc-svn.el,v |
Date: |
Sat, 04 Oct 2008 20:23:55 +0000 |
CVSROOT: /sources/emacs
Module name: emacs
Changes by: Glenn Morris <gm> 08/10/04 20:23:55
Index: vc-svn.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/vc-svn.el,v
retrieving revision 1.97
retrieving revision 1.98
diff -u -b -r1.97 -r1.98
--- vc-svn.el 4 Oct 2008 01:22:29 -0000 1.97
+++ vc-svn.el 4 Oct 2008 20:23:54 -0000 1.98
@@ -1,6 +1,7 @@
;;; vc-svn.el --- non-resident support for Subversion version-control
-;; Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation,
Inc.
+;; Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008
+;; Free Software Foundation, Inc.
;; Author: FSF (see vc.el for full credits)
;; Maintainer: Stefan Monnier <address@hidden>
@@ -146,7 +147,9 @@
"SVN-specific state heuristic."
(vc-svn-state file 'local))
-(defun vc-svn-after-dir-status (callback)
+;; FIXME it would be better not to have the "remote" argument,
+;; but to distinguish the two output formats based on content.
+(defun vc-svn-after-dir-status (callback &optional remote)
(let ((state-map '((?A . added)
(?C . conflict)
(?D . removed)
@@ -156,11 +159,18 @@
(?? . unregistered)
;; This is what vc-svn-parse-status does.
(?~ . edited)))
+ (re (if remote "^\\(.\\)..... \\([ *]\\) +[-0-9]+ +\\(.*\\)$"
+ ;; Subexp 2 is a dummy in this case, so the numbers match.
+ "^\\(.\\)....\\(.\\) \\(.*\\)$"))
result)
(goto-char (point-min))
- (while (re-search-forward "^\\(.\\)..... \\(.*\\)$" nil t)
+ (while (re-search-forward re nil t)
(let ((state (cdr (assq (aref (match-string 1) 0) state-map)))
- (filename (match-string 2)))
+ (filename (match-string 3)))
+ (and remote (string-equal (match-string 2) "*")
+ ;; FIXME are there other possible combinations?
+ (cond ((eq state 'edited) (setq state 'needs-merge))
+ ((not state) (setq state 'needs-update))))
(when state
(setq result (cons (list filename state) result)))))
(funcall callback result)))
@@ -169,9 +179,12 @@
"Run 'svn status' for DIR and update BUFFER via CALLBACK.
CALLBACK is called as (CALLBACK RESULT BUFFER), where
RESULT is a list of conses (FILE . STATE) for directory DIR."
- (vc-svn-command (current-buffer) 'async nil "status")
+ ;; FIXME should this rather be all the files in dir?
+ (let ((remote (not (vc-stay-local-p dir))))
+ (vc-svn-command (current-buffer) 'async nil "status"
+ (if remote "-u"))
(vc-exec-after
- `(vc-svn-after-dir-status (quote ,callback))))
+ `(vc-svn-after-dir-status (quote ,callback) ,remote))))
(defun vc-svn-dir-status-files (dir files default-state callback)
(apply 'vc-svn-command (current-buffer) 'async nil "status" files)
- [Emacs-diffs] Changes to emacs/lisp/vc-svn.el,v, Dan Nicolaescu, 2008/10/03
- [Emacs-diffs] Changes to emacs/lisp/vc-svn.el,v,
Glenn Morris <=
- [Emacs-diffs] Changes to emacs/lisp/vc-svn.el,v, Dan Nicolaescu, 2008/10/12
- [Emacs-diffs] Changes to emacs/lisp/vc-svn.el,v, Dan Nicolaescu, 2008/10/27
- [Emacs-diffs] Changes to emacs/lisp/vc-svn.el,v, Nick Roberts, 2008/10/30