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