diff options
Diffstat (limited to 'guix-qa-frontpage')
-rw-r--r-- | guix-qa-frontpage/git-repository.scm | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/guix-qa-frontpage/git-repository.scm b/guix-qa-frontpage/git-repository.scm index 9b733f7..17c0ef5 100644 --- a/guix-qa-frontpage/git-repository.scm +++ b/guix-qa-frontpage/git-repository.scm @@ -21,7 +21,8 @@ get-commit - get-git-branch-head-committer-date)) + get-git-branch-head-committer-date + get-git-merge-base)) (define %git-repository-location (make-parameter #f)) @@ -108,3 +109,20 @@ "~Y-~m-~d ~H:~M:~S ~z"))) (loop (read-line pipe) (cons line lines)))))))) + +(define (get-git-merge-base a b) + (with-bare-git-repository + (lambda () + (let ((pipe (open-pipe* OPEN_READ + "git" "merge-base" a b))) + (let loop ((line (read-line pipe)) + (lines '())) + (if (eof-object? line) + (begin + (close-pipe pipe) + + (if (null? lines) + #f + (first lines))) + (loop (read-line pipe) + (cons line lines)))))))) |