blob: e7969de81166a738235538b8bc3a9e3db488d388 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
From d7afd9288e22c466b63c27e7e11783589b07aeff Mon Sep 17 00:00:00 2001
From: Karl Pflästerer <k@rl.pflaesterer.de>
Date: Sat, 12 Feb 2011 01:12:53 +0000
Subject: 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".
---
(limited to 'lisp/vc/vc-svn.el')
diff --git a/lisp/vc/vc-svn.el b/lisp/vc/vc-svn.el
index aefef50..20c7689 100644
--- a/lisp/vc-svn.el
+++ b/lisp/vc-svn.el
@@ -117,17 +117,13 @@ If you want to force an empty list of arguments, use t."
;;;###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 @@ Passes either `vc-svn-register-switches' or `vc-register-switches'
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)))))
+(defun vc-svn-root (file)
+ (vc-find-root file vc-svn-admin-directory))
-(defalias 'vc-svn-could-register 'vc-svn-responsible-p
+(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 @@ and that it passes `vc-svn-global-switches' to it before FLAGS."
(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.
--
cgit v0.9.0.2
|