@@ -32,6 +32,7 @@ my \DIR-BASE = PROJECT.lc;
32
32
my \PARALLEL-COUNT = 1 ;
33
33
my \COMMIT-RANGE = ‘ 2015.07^..HEAD’ ;
34
34
my \TAGS-SINCE = ‘ 2014-01-01’ ;
35
+ my \ALL-SINCE = ‘ 2017-01-01’ ; # catch branches that are flapping in the breeze
35
36
36
37
my \WORKING-DIRECTORY = ‘ .’ ; # TODO not supported yet
37
38
@@ -73,15 +74,19 @@ if REPO-CURRENT.IO !~~ :d {
73
74
74
75
my $ channel = Channel . new ;
75
76
76
- my @ git-latest = ‘ git’ , ‘ --git-dir’ , “ { REPO-LATEST} /.git” , ‘ --work-tree’ , REPO-LATEST;
77
+ my @ git-latest = ‘ git’ , ‘ --git-dir’ , “ { REPO-LATEST} /.git” , ‘ --work-tree’ , REPO-LATEST;
77
78
my @ args-tags = | @ git-latest , ‘ log’ , ‘ -z’ , ‘ --pretty=%H’ , ‘ --tags’ , ‘ --no-walk’ , ‘ --since’ , TAGS-SINCE;
78
79
my @ args-latest = | @ git-latest , ‘ log’ , ‘ -z’ , ‘ --pretty=%H’ , COMMIT-RANGE;
79
-
80
- # $channel.send: $_ for run(:out, |@args-tags ).out.split(0.chr, :skip-empty);
81
- # ↑ TODO this ends with Nil or an empty string for some reason? It makes
82
- # this check: 「last unless $commit」 exit from the loop, so it never reaches
83
- # actual commits.
84
- $ channel . send: $ _ for run (: out, | @ args-latest ). out. split (0 . chr , : skip-empty);
80
+ my @ args-recent = | @ git-latest , ‘ log’ , ‘ -z’ , ‘ --pretty=%H’ , ‘ --all’ , ‘ --since’ , ALL-SINCE;
81
+
82
+ my % commits ;
83
+ for @ args-tags , @ args-latest , @ args-recent -> @ _ {
84
+ for run (: out, | @ _ ). out. split (0 . chr , : skip-empty) {
85
+ next if % commits {$ _ }: exists ;
86
+ % commits {$ _ }++ ;
87
+ $ channel . send: $ _
88
+ }
89
+ }
85
90
86
91
await (for ^ PARALLEL-COUNT { # TODO rewrite when .race starts working in rakudo
87
92
start loop {
0 commit comments