~ruther/guix-local

72357e2170e88f73c11ff089f87a744cee8606ec — Ludovic Courtès 6 years ago 5d95ac9
git: 'commit-difference' really excludes the ancestors of #:excluded.

* guix/git.scm (commit-difference): Initialize VISITED to the closure of
OLD and EXCLUDED, as written in the docstring.
* tests/git.scm ("commit-difference, excluded commits"): Adjust
accordingly.
2 files changed, 4 insertions(+), 3 deletions(-)

M guix/git.scm
M tests/git.scm
M guix/git.scm => guix/git.scm +3 -1
@@ 416,7 416,9 @@ Essentially, this computes the set difference between the closure of NEW and
that of OLD."
  (let loop ((commits (list new))
             (result '())
             (visited (commit-closure old (list->setq excluded))))
             (visited (fold commit-closure
                            (setq)
                            (cons old excluded))))
    (match commits
      (()
       (reverse result))

M tests/git.scm => tests/git.scm +1 -2
@@ 119,8 119,7 @@
                    (list commit3 commit4))
             (lset= eq? (commit-difference commit4 commit1 (list commit3))
                    (list commit4))
             (lset= eq? (commit-difference commit4 commit1 (list commit5))
                    (list commit2 commit3 commit4)))))))
             (null? (commit-difference commit4 commit1 (list commit5))))))))

(unless (which (git-command)) (test-skip 1))
(test-equal "commit-relation"