[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master a76420c: Fix emacs-repository-get-version with pack
From: |
Paul Eggert |
Subject: |
[Emacs-diffs] master a76420c: Fix emacs-repository-get-version with packed .git |
Date: |
Wed, 1 Jun 2016 18:03:44 +0000 (UTC) |
branch: master
commit a76420cce2d1c2e1d5de0cdf50443006064c58af
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>
Fix emacs-repository-get-version with packed .git
* lisp/version.el (emacs-repository-get-version):
Parse .git/packed-refs if it exists.
Problem reported by Martin Rudalics in:
http://lists.gnu.org/archive/html/emacs-devel/2016-05/msg00554.html
---
lisp/version.el | 25 +++++++++++++++++--------
1 file changed, 17 insertions(+), 8 deletions(-)
diff --git a/lisp/version.el b/lisp/version.el
index dc22887..2f71aeb 100644
--- a/lisp/version.el
+++ b/lisp/version.el
@@ -163,14 +163,23 @@ the VCS if we cannot find any information ourselves."
(or (if in-linked-worktree
(emacs-repository--version-git-1
(expand-file-name "HEAD" sub-dir) base-dir)
- (let ((files '("HEAD" "refs/heads/master"))
- file rev)
- (while (and (not rev)
- (setq file (car files)))
- (setq file (expand-file-name file base-dir)
- files (cdr files)
- rev (emacs-repository--version-git-1 file base-dir)))
- rev))
+ (or
+ (let ((packed-refs (expand-file-name "packed-refs" base-dir)))
+ (if (file-readable-p packed-refs)
+ (with-temp-buffer
+ (insert-file-contents packed-refs)
+ (when (re-search-forward
+ "^\\([0-9a-fA-F]\\{40\\}\\) refs/heads/master$"
+ nil t)
+ (match-string 1)))))
+ (let ((files '("HEAD" "refs/heads/master"))
+ file rev)
+ (while (and (not rev)
+ (setq file (car files)))
+ (setq file (expand-file-name file base-dir)
+ files (cdr files)
+ rev (emacs-repository--version-git-1 file base-dir)))
+ rev)))
;; AFAICS this doesn't work during dumping (bug#20799).
(emacs-repository-version-git dir))))))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master a76420c: Fix emacs-repository-get-version with packed .git,
Paul Eggert <=