(vc-find-root): Remove initial loop because it's not
careful enough. Detect the uid-change all within the main loop.
This commit is contained in:
parent
f510617394
commit
5f8ea2c89b
2 changed files with 12 additions and 4 deletions
|
@ -1,3 +1,8 @@
|
|||
2008-02-16 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* vc-hooks.el (vc-find-root): Remove initial loop because it's not
|
||||
careful enough. Detect the uid-change all within the main loop.
|
||||
|
||||
2008-02-14 Stefan Monnier <monnier@pastel.home>
|
||||
|
||||
* textmodes/sgml-mode.el (sgml-mode): Fix comment syntax.
|
||||
|
|
|
@ -316,11 +316,12 @@ The function walks up the directory tree from FILE looking for WITNESS.
|
|||
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 /.
|
||||
(while (not (file-directory-p file))
|
||||
(setq file (file-name-directory (directory-file-name file))))
|
||||
(setq file (abbreviate-file-name file))
|
||||
(let ((root nil)
|
||||
(user (nth 2 (file-attributes file))))
|
||||
;; `user' is not initialized outside the loop because
|
||||
;; `file' may not exist, so we may have to walk up part of the
|
||||
;; hierarchy before we find the "initial UID".
|
||||
(user nil))
|
||||
(while (not (or root
|
||||
(null file)
|
||||
;; As a heuristic, we stop looking up the hierarchy of
|
||||
|
@ -328,7 +329,9 @@ If WITNESS if not found, return nil, otherwise return the root."
|
|||
;; 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 (nth 2 (file-attributes file))))
|
||||
(let ((prev-user user))
|
||||
(setq user (nth 2 (file-attributes file)))
|
||||
(and prev-user (not (equal user prev-user))))
|
||||
(string-match vc-ignore-dir-regexp file)))
|
||||
(if (file-exists-p (expand-file-name witness file))
|
||||
(setq root file)
|
||||
|
|
Loading…
Add table
Reference in a new issue