summaryrefslogtreecommitdiff
path: root/lisp/vc/vc-svn.el
diff options
context:
space:
mode:
authorWolfgang Scherer <wolfgang.scherer@gmx.de>2019-10-07 06:58:59 +0200
committerLars Ingebrigtsen <larsi@gnus.org>2019-10-07 08:15:22 +0200
commit604a985a1a1066679895d2ec80c7b351ecbf8ff4 (patch)
treea2abf61374a20e4fb45dba042c8957cac9af1616 /lisp/vc/vc-svn.el
parentf2346b5788338dbceabc30233234e4a3308f32c2 (diff)
downloademacs-604a985a1a1066679895d2ec80c7b351ecbf8ff4.tar.gz
Set correct svn:ignore property for relative filenames
* lisp/vc/vc-svn.el: (vc-svn-ignore) Use svn:ignore property of immediate parent directory for wildcard specification (bug#37216).
Diffstat (limited to 'lisp/vc/vc-svn.el')
-rw-r--r--lisp/vc/vc-svn.el11
1 files changed, 7 insertions, 4 deletions
diff --git a/lisp/vc/vc-svn.el b/lisp/vc/vc-svn.el
index 88a280d10f3..942dbd5fa5a 100644
--- a/lisp/vc/vc-svn.el
+++ b/lisp/vc/vc-svn.el
@@ -353,15 +353,18 @@ to the SVN command."
(defun vc-svn-ignore (file &optional directory remove)
"Ignore FILE under Subversion.
-FILE is a file wildcard, relative to the root directory of DIRECTORY."
- (let* ((ignores (vc-svn-ignore-completion-table directory))
- (file (file-relative-name file directory))
+FILE is a wildcard specification, either relative to
+DIRECTORY or absolute."
+ (let* ((path (directory-file-name (expand-file-name file directory)))
+ (directory (file-name-directory path))
+ (file (file-name-nondirectory path))
+ (ignores (vc-svn-ignore-completion-table 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))))
+ directory)))
(defun vc-svn-ignore-completion-table (directory)
"Return the list of ignored files in DIRECTORY."