Fix: 'change_key' of current patchset pushed by 'refs/changes' is still old one.
When an existing Change's current patchset is replaced by another commit pushed by
'refs/changes', in the DB Change table the related record's 'change_key' is NOT
updated accordingly.
This commit fix it to make the related DB record to be consistant with that in
Git repository.
Change-Id: I5a34748246c0f6783f23852f87c055081dbb67d3
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java
index a5478ab..0a52782 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java
@@ -1810,6 +1810,14 @@
}
change.setLastSha1MergeTested(null);
change.setCurrentPatchSet(info);
+
+ final List<String> idList = newCommit.getFooterLines(CHANGE_ID);
+ if (idList.isEmpty()) {
+ change.setKey(new Change.Key("I" + newCommit.name()));
+ } else {
+ change.setKey(new Change.Key(idList.get(idList.size() - 1).trim()));
+ }
+
ChangeUtil.updated(change);
return change;
}