Sync change from trunk at request of rms in FOR-RELEASE:
Stefan Monnier <monnier at iro.umontreal.ca> (vc-find-root): Stop searching when the user changes.
This commit is contained in:
parent
84bbd894e3
commit
6e94b3b6d8
1 changed files with 8 additions and 1 deletions
|
@ -315,10 +315,17 @@ If WITNESS if not found, return nil, otherwise return the root."
|
|||
;; Represent /home/luser/foo as ~/foo so that we don't try to look for
|
||||
;; witnesses in /home or in /.
|
||||
(setq file (abbreviate-file-name file))
|
||||
(let ((root nil))
|
||||
(let ((root nil)
|
||||
(user (nth 2 (file-attributes file))))
|
||||
(while (not (or root
|
||||
(equal file (setq file (file-name-directory file)))
|
||||
(null file)
|
||||
;; As a heuristic, we stop looking up the hierarchy of
|
||||
;; directories as soon as we find a directory belonging
|
||||
;; to another user. This should save us from looking in
|
||||
;; things like /net and /afs. This assumes that all the
|
||||
;; files inside a project belong to the same user.
|
||||
(not (equal user (file-attributes file)))
|
||||
(string-match vc-ignore-dir-regexp file)))
|
||||
(if (file-exists-p (expand-file-name witness file))
|
||||
(setq root file)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue