From 1abf4e4a99f3c6a2abd071de499d0cf991a3e7c1 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Date: Wed, 6 Jun 2012 17:25:00 +0200 Subject: [PATCH] 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> --- git-hooks/gerrit-bot | 13 ++++++------- 1 file 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'}}; -- GitLab