diff options
author | Ludovic Courtès <ludo@gnu.org> | 2020-06-08 21:39:55 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2020-06-09 00:34:52 +0200 |
commit | 72357e2170e88f73c11ff089f87a744cee8606ec (patch) | |
tree | 6a80061f7a74c68ab6ed8a2e8144ed3c27742d40 | |
parent | 5d95ac9178c2b4f5510390b0c31d440efc3c203d (diff) | |
download | guix-72357e2170e88f73c11ff089f87a744cee8606ec.tar.gz |
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.
-rw-r--r-- | guix/git.scm | 4 | ||||
-rw-r--r-- | tests/git.scm | 3 |
2 files changed, 4 insertions, 3 deletions
diff --git a/guix/git.scm b/guix/git.scm index 1671f57d9f..0d8e617cc9 100644 --- a/guix/git.scm +++ b/guix/git.scm @@ -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)) diff --git a/tests/git.scm b/tests/git.scm index 4a806abcc3..aa4f03ca62 100644 --- a/tests/git.scm +++ b/tests/git.scm @@ -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" |