Mercurial > emacs
comparison lisp/vc-git.el @ 106220:a88a54e96796
vc-git-registered: use checkout directory (where .git is)
rather than the file's directory and a relative path spec to work around a bug in git.
author | David Reitter <david.reitter@gmail.com> |
---|---|
date | Tue, 24 Nov 2009 15:31:01 +0000 |
parents | 2f9ecf376c7a |
children | 1c9648ddfd5e |
comparison
equal
deleted
inserted
replaced
106219:16b061d2742d | 106220:a88a54e96796 |
---|---|
145 (defun vc-git-registered (file) | 145 (defun vc-git-registered (file) |
146 "Check whether FILE is registered with git." | 146 "Check whether FILE is registered with git." |
147 (when (vc-git-root file) | 147 (when (vc-git-root file) |
148 (with-temp-buffer | 148 (with-temp-buffer |
149 (let* (process-file-side-effects | 149 (let* (process-file-side-effects |
150 (dir (file-name-directory file)) | 150 ;; do not use the `file-name-directory' here: git-ls-files |
151 ;; sometimes fails to return the correct status for relative | |
152 ;; path specs. | |
153 ;; see also: http://marc.info/?l=git&m=125787684318129&w=2 | |
154 (dir (vc-git-root file)) | |
151 (name (file-relative-name file dir)) | 155 (name (file-relative-name file dir)) |
152 (str (ignore-errors | 156 (str (ignore-errors |
153 (when dir (cd dir)) | 157 (when dir (cd dir)) |
154 (vc-git--out-ok "ls-files" "-c" "-z" "--" name) | 158 (vc-git--out-ok "ls-files" "-c" "-z" "--" name) |
155 ;; if result is empty, use ls-tree to check for deleted file | 159 ;; if result is empty, use ls-tree to check for deleted file |