Browse code
Implement git:rev-list
Javier Olaechea authored on 14/11/2020 06:40:17
Showing 2 changed files
Showing 2 changed files
... | ... |
@@ -132,3 +132,13 @@ |
132 | 132 |
(alexandria:mappend 'cdr (component :parents commit))) |
133 | 133 |
(defun git:commit-parents (commit) |
134 | 134 |
(git::parents commit)) |
135 |
+ |
|
136 |
+(defun git:rev-list (ref-id) |
|
137 |
+ "Return the commits reachable from the ref." |
|
138 |
+ (labels ((iterate (queue accum) |
|
139 |
+ (if (null queue) |
|
140 |
+ accum |
|
141 |
+ (iterate (append (cdr queue) |
|
142 |
+ (git::parents (ensure-ref (car queue)))) |
|
143 |
+ (cons (car queue) accum))))) |
|
144 |
+ (iterate (list ref-id) ()))) |