diff options
author | Oswald Buddenhagen <oswald.buddenhagen@nokia.com> | 2012-06-06 17:25:00 +0200 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@nokia.com> | 2012-06-08 10:56:43 +0200 |
commit | 1abf4e4a99f3c6a2abd071de499d0cf991a3e7c1 (patch) | |
tree | 9d417c31ef4aa56b13b0f65bb35265605a906cd8 /git-hooks/gerrit-bot | |
parent | 02cf006e738eb10d932678829a7d3de378fd203a (diff) |
put change refs into a more defined place
don't mess with the remote ref string
Change-Id: I30890801a40fc66049e96534ec69c7fe60032085
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Diffstat (limited to 'git-hooks/gerrit-bot')
-rwxr-xr-x | git-hooks/gerrit-bot | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/git-hooks/gerrit-bot b/git-hooks/gerrit-bot index 8bb327c..26ac741 100755 --- a/git-hooks/gerrit-bot +++ b/git-hooks/gerrit-bot @@ -82,9 +82,9 @@ sub printerr($) print STDERR $msg.".\n"; } -sub process_commit($$$) +sub process_commit($$$$) { - my ($project, $ref, $rev) = @_; + my ($number, $project, $ref, $rev) = @_; if (defined $processed{$ref}) { return; @@ -117,9 +117,7 @@ sub process_commit($$$) chomp(@mainlines = `git config remote.origin.fetch`); $skipfetch{$project} = 1; } - my $dref = $ref; - $dref =~ s,/[^/]+$,,; - if (system("git", "fetch", "-f", "origin", $ref.":".$dref, @mainlines)) { + if (system("git", "fetch", "-f", "origin", $ref.":refs/changes/".$number, @mainlines)) { printerr "GIT fetch of ".$ref." from ".$project." failed"; return; } @@ -167,6 +165,7 @@ open STATUS, "-|", @gerrit, "query", "--format", "JSON", "--current-patch-set", REVIEW: while (<STATUS>) { my $review = decode_json($_); defined($review) or die "cannot decode JSON string '".chomp($_)."'\n"; + my $number = $$review{'number'}; my $project = $$review{'project'}; my $cps = $$review{'currentPatchSet'}; if (defined $cps) { @@ -186,7 +185,7 @@ REVIEW: while (<STATUS>) { } } } - process_commit($project, $ref, $revision); + process_commit($number, $project, $ref, $revision); } } close STATUS; @@ -199,7 +198,7 @@ while (<UPDATES>) { if ($type eq 'patchset-created') { my $chg = $$update{'change'}; my $ps = $$update{'patchSet'}; - process_commit($$chg{'project'}, $$ps{'ref'}, $$ps{'revision'}); + process_commit($$chg{'number'}, $$chg{'project'}, $$ps{'ref'}, $$ps{'revision'}); } elsif ($type eq 'ref-updated') { my $rup = $$update{'refUpdate'}; delete $skipfetch{$$rup{'project'}}; |