]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix vc-svn-ignore
authorDmitry Gutov <dgutov@yandex.ru>
Fri, 3 Oct 2014 13:15:05 +0000 (17:15 +0400)
committerDmitry Gutov <dgutov@yandex.ru>
Fri, 3 Oct 2014 13:15:05 +0000 (17:15 +0400)
* lisp/vc/vc-svn.el (vc-svn-ignore-completion-table): Implement.
(vc-svn-ignore): Use it.

Fixes: debbugs:18619
lisp/ChangeLog
lisp/vc/vc-svn.el

index a2f8ba55ceb7c91b6bb22bfba1e3871c85c765ca..40faa8a43fed0860ad984f360d961e31adaa3f26 100644 (file)
@@ -1,3 +1,8 @@
+2014-10-03  Dmitry Gutov  <dgutov@yandex.ru>
+
+       * vc/vc-svn.el (vc-svn-ignore-completion-table): Implement.
+       (vc-svn-ignore): Use it.  (Bug#18619)
+
 2014-10-03  Martin Rudalics  <rudalics@gmx.at>
 
        * frame.el (toggle-frame-maximized, toggle-frame-fullscreen):
index a336a952df1dd2b1a49ad838bdf32a622838f17c..c7568e456f55718391ac8da54c25f8a06ae1d2d1 100644 (file)
@@ -354,14 +354,23 @@ This is only possible if SVN is responsible for FILE's directory.")
                (concat "-r" rev))
           (vc-switches 'SVN 'checkout))))
 
-(defun vc-svn-ignore (file &optional _directory _remove)
+(defun vc-svn-ignore (file &optional directory remove)
   "Ignore FILE under Subversion.
 FILE is a file wildcard, relative to the root directory of DIRECTORY."
-  (vc-svn-command t 0 file "propedit" "svn:ignore"))
-
-(defun vc-svn-ignore-completion-table (_file)
-  "Return the list of ignored files."
-  )
+  (let* ((ignores (vc-svn-ignore-completion-table directory))
+         (file (file-relative-name file directory))
+         (ignores (if remove
+                      (delete file ignores)
+                    (push file ignores))))
+    (vc-svn-command nil 0 nil nil "propset" "svn:ignore"
+                    (mapconcat #'identity ignores "\n")
+                    (expand-file-name directory))))
+
+(defun vc-svn-ignore-completion-table (directory)
+  "Return the list of ignored files in DIRECTORY."
+  (with-temp-buffer
+    (vc-svn-command t t nil "propget" "svn:ignore" (expand-file-name directory))
+    (split-string (buffer-string))))
 
 (defun vc-svn-find-admin-dir (file)
   "Return the administrative directory of FILE."