emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r103228: Adapt to Subversion change,


From: Chong Yidong
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r103228: Adapt to Subversion change, with no .svn directory in each sub directory.
Date: Fri, 11 Feb 2011 20:12:53 -0500
User-agent: Bazaar (2.0.3)

------------------------------------------------------------
revno: 103228
author: Karl Pflästerer <address@hidden>
committer: Chong Yidong <address@hidden>
branch nick: trunk
timestamp: Fri 2011-02-11 20:12:53 -0500
message:
  Adapt to Subversion change, with no .svn directory in each sub directory.
  
  http://lists.gnu.org/archive/html/emacs-devel/2011-02/msg00357.html
  
  * vc/vc-svn.el (vc-svn-registered): Use vc-svn-root.
  (vc-svn-root): New function.  Make vc-svn-responsible-p an alias.
  (vc-svn-repository-hostname): Use "svn info".
modified:
  lisp/ChangeLog
  lisp/vc/vc-svn.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2011-02-11 18:25:06 +0000
+++ b/lisp/ChangeLog    2011-02-12 01:12:53 +0000
@@ -1,3 +1,11 @@
+2011-02-12  Karl Pflästerer  <address@hidden>  (tiny change)
+
+       * vc/vc-svn.el: Adapt to Subversion change, with no .svn directory
+       in each sub directory.
+       (vc-svn-registered): Use vc-svn-root.
+       (vc-svn-root): New function.  Make vc-svn-responsible-p an alias.
+       (vc-svn-repository-hostname): Use "svn info".
+
 2011-02-11  Deniz Dogan  <address@hidden>
 
        * simple.el (delete-trailing-whitespace): New optional buffer

=== modified file 'lisp/vc/vc-svn.el'
--- a/lisp/vc/vc-svn.el 2011-01-26 08:36:39 +0000
+++ b/lisp/vc/vc-svn.el 2011-02-12 01:12:53 +0000
@@ -117,17 +117,13 @@
 ;;;###autoload                                (getenv "SVN_ASP_DOT_NET_HACK"))
 ;;;###autoload                           "_svn")
 ;;;###autoload                          (t ".svn"))))
-;;;###autoload     (when (file-readable-p (expand-file-name
-;;;###autoload                             (concat admin-dir "/entries")
-;;;###autoload                             (file-name-directory f)))
+;;;###autoload     (when (vc-find-root f admin-dir)
 ;;;###autoload       (load "vc-svn")
 ;;;###autoload       (vc-svn-registered f))))
 
 (defun vc-svn-registered (file)
   "Check if FILE is SVN registered."
-  (when (file-readable-p (expand-file-name (concat vc-svn-admin-directory
-                                                  "/entries")
-                                          (file-name-directory file)))
+  (when (vc-svn-root file)
     (with-temp-buffer
       (cd (file-name-directory file))
       (let* (process-file-side-effects
@@ -275,14 +271,12 @@
 to the SVN command."
   (apply 'vc-svn-command nil 0 files "add" (vc-switches 'SVN 'register)))
 
-(defun vc-svn-responsible-p (file)
-  "Return non-nil if SVN thinks it is responsible for FILE."
-  (file-directory-p (expand-file-name vc-svn-admin-directory
-                                     (if (file-directory-p file)
-                                         file
-                                       (file-name-directory file)))))
-
-(defalias 'vc-svn-could-register 'vc-svn-responsible-p
+(defun vc-svn-root (file)
+  (vc-find-root file vc-svn-admin-directory))
+
+(defalias 'vc-svn-responsible-p 'vc-svn-root)
+
+(defalias 'vc-svn-could-register 'vc-svn-root
   "Return non-nil if FILE could be registered in SVN.
 This is only possible if SVN is responsible for FILE's directory.")
 
@@ -594,20 +588,10 @@
 
 (defun vc-svn-repository-hostname (dirname)
   (with-temp-buffer
-    (let ((coding-system-for-read
-          (or file-name-coding-system
-              default-file-name-coding-system)))
-      (vc-insert-file (expand-file-name (concat vc-svn-admin-directory
-                                               "/entries")
-                                       dirname)))
+    (let (process-file-side-effects)
+      (vc-svn-command t t dirname "info" "--xml"))
     (goto-char (point-min))
-    (when (re-search-forward
-          ;; Old `svn' used name="svn:this_dir", newer use just name="".
-          (concat "name=\"\\(?:svn:this_dir\\)?\"[\n\t ]*"
-                  "\\(?:[-a-z]+=\"[^\"]*\"[\n\t ]*\\)*?"
-                  "url=\"\\(?1:[^\"]+\\)\""
-                   ;; Yet newer ones don't use XML any more.
-                   "\\|^\ndir\n[0-9]+\n\\(?1:.*\\)") nil t)
+    (when (re-search-forward "<url>\\(.*\\)</url>" nil t)
       ;; This is not a hostname but a URL.  This may actually be considered
       ;; as a feature since it allows vc-svn-stay-local to specify different
       ;; behavior for different modules on the same server.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]