emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master 7baae81: Fix VC test suite on MS-Windows


From: Eli Zaretskii
Subject: [Emacs-diffs] master 7baae81: Fix VC test suite on MS-Windows
Date: Sat, 27 Jun 2015 11:28:55 +0000

branch: master
commit 7baae811651d73b3e89c832a5c15ff5b40c82635
Author: Eli Zaretskii <address@hidden>
Commit: Eli Zaretskii <address@hidden>

    Fix VC test suite on MS-Windows
    
    * lisp/vc/vc-svn.el (vc-svn-create-repo): Make sure the file: URL
    always starts with 3 slashes after the colon.
    
    * test/automated/vc-tests.el (vc-test--create-repo-function): Use
    'w32-application-type' to invoke CVS on MS-Windows with properly
    formatted CVSROOT directory name.
---
 lisp/vc/vc-svn.el          |   10 +++++++++-
 test/automated/vc-tests.el |   14 +++++++++++++-
 2 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/lisp/vc/vc-svn.el b/lisp/vc/vc-svn.el
index 5ce9afa..f97e2ab 100644
--- a/lisp/vc/vc-svn.el
+++ b/lisp/vc/vc-svn.el
@@ -279,7 +279,15 @@ RESULT is a list of conses (FILE . STATE) for directory 
DIR."
   ;; Expand default-directory because svn gets confused by eg
   ;; file://~/path/to/file.  (Bug#15446).
   (vc-svn-command "*vc*" 0 "." "checkout"
-                  (concat "file://" (expand-file-name default-directory) 
"SVN")))
+                  (let ((defdir (expand-file-name default-directory)))
+                    (concat (if (and (stringp defdir)
+                                     (eq (aref defdir 0) ?/))
+                                "file://"
+                              ;; MS-Windows files d:/foo/bar need to
+                              ;; begin with 3 leading slashes.
+                              "file:///")
+                            defdir
+                            "SVN"))))
 
 (autoload 'vc-switches "vc")
 
diff --git a/test/automated/vc-tests.el b/test/automated/vc-tests.el
index 58d2237..a7242e9 100644
--- a/test/automated/vc-tests.el
+++ b/test/automated/vc-tests.el
@@ -130,7 +130,19 @@ For backends which dont support it, it is emulated."
            (make-temp-name "vc-test") temporary-file-directory)))
       (make-directory (expand-file-name "module" tmp-dir) 'parents)
       (make-directory (expand-file-name "CVSROOT" tmp-dir) 'parents)
-      (shell-command-to-string (format "cvs -Q -d:local:%s co module" tmp-dir))
+      (if (not (fboundp 'w32-application-type))
+          (shell-command-to-string (format "cvs -Q -d:local:%s co module"
+                                           tmp-dir))
+        (let ((cvs-prog (executable-find "cvs"))
+              (tdir tmp-dir))
+          ;; If CVS executable is an MSYS program, reformat the file
+          ;; name of TMP-DIR to have the /d/foo/bar form supported by
+          ;; MSYS programs.  (FIXME: What about Cygwin cvs.exe?)
+          (if (eq (w32-application-type cvs-prog) 'msys)
+              (setq tdir
+                    (concat "/" (substring tmp-dir 0 1) (substring tmp-dir 
2))))
+          (shell-command-to-string (format "cvs -Q -d:local:%s co module"
+                                           tdir))))
       (rename-file "module/CVS" default-directory)
       (delete-directory "module" 'recursive)
       ;; We must cleanup the "remote" CVS repo as well.



reply via email to

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