Meta/CheckPush: minor versions could have more than one digit
Add compare_dotted_version helper and use it Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano committed
Jun 19, 2012 at 15:19 UTC
33ac7d225051008f5fc2d13cbd0c3d36a5b6122b
1 file changed
+27
-1
CheckPush
+27
-1
@@ -4,7 +4,33 @@ for range in $(
4
prev_branch=
5
{
6
git for-each-ref --format='%(refname)' refs/heads/maint-* |
7
- sed -e 's|^refs/heads/||'
7
+ perl -e '
8
+ sub compare_dotted_version {
9
+ my (@ours) = split(/\./, $_[0]);
10
+ my (@theirs) = split(/\./, $_[1]);
11
+ my ($i, $diff);
12
+
13
+ for ($i = 0; $i < @ours && $i < @theirs; $i++) {
14
+ $diff = $ours[$i] - $theirs[$i];
15
+ return $diff if ($diff);
16
+ }
17
+ return 1 if ($i < @ours);
18
+ return -1 if ($i < @theirs);
19
+ return 0;
20
+ }
21
+ my @maint = ();
22
+ while (<STDIN>) {
23
+ next unless s|^refs/heads/||;
24
+ chomp;
25
+ my ($v) = ($_ =~ /^maint-(.*)$/);
26
+ push @maint, [$v, $_];
27
+ }
28
+ for (map { $_->[1] }
29
+ sort { compare_dotted_version($a->[0], $b->[0]) }
30
+ @maint) {
31
+ print "$_\n";
32
+ }
33
+ '
34
cat <<-EOF
35
maint
36
master