branch: elpa/vc-fossil
commit 03282dc76166ece77f5207ed8778c5a79f7cefc1
Author: fifr <fifr>
Commit: fifr <fifr>
Implement next-revision command for whole repository.
If no file is specified, the revision succeeding the current one
should be returned. This is required for the `log-view-diff-changeset`
command to work.
---
vc/el/vc-fossil.el | 32 +++++++++++++++++---------------
1 file changed, 17 insertions(+), 15 deletions(-)
diff --git a/vc/el/vc-fossil.el b/vc/el/vc-fossil.el
index be99b7f..86c1344 100644
--- a/vc/el/vc-fossil.el
+++ b/vc/el/vc-fossil.el
@@ -356,21 +356,23 @@ If REV is specified, annotate that revision."
(defun vc-fossil-next-revision (file rev)
"Fossil specific version of the `vc-previous-revision'."
- (when file
- (with-temp-buffer
- (let ((found (not rev))
- (oldver nil))
- (insert (vc-fossil--run "finfo" "-l" "-b" (file-truename file)))
- ;; (vc-fossil--call "fossil" "finfo" "-l" "-b" file)
- (goto-char (point-min))
- (while (not (eobp))
- (let* ((line (buffer-substring-no-properties (point)
(line-end-position)))
- (version (car (split-string line))))
- (setq found (string= version rev))
- (setq oldver (or oldver found version)))
- (forward-line))
- oldver))))
-
+ (if file
+ (with-temp-buffer
+ (let ((found (not rev))
+ (oldver nil))
+ (vc-fossil-command t 0 (file-truename file) "finfo" "-l" "-b")
+ ;; (vc-fossil--call "fossil" "finfo" "-l" "-b" file)
+ (goto-char (point-min))
+ (while (not (eobp))
+ (let* ((line (buffer-substring-no-properties (point)
(line-end-position)))
+ (version (car (split-string line))))
+ (setq found (string= version rev))
+ (setq oldver (or oldver found version)))
+ (forward-line))
+ oldver))
+ (let ((info (vc-fossil--run "info" rev)))
+ (and (string-match "child: *\\([0-9a-fA-F]+\\)" info)
+ (match-string 1 info)))))
(defun vc-fossil-delete-file (file)
(vc-fossil-command nil 0 (file-truename file) "rm" "--hard"))