For non-batch updates, use provided message instead of generic one
For single accounts we should not put "Batch update for 1 accounts",
but instead use the provided message.
Change-Id: Ifeb15f4077e223c4562acca5d3ff9e32935cb3b5
diff --git a/java/com/google/gerrit/server/account/AccountsUpdate.java b/java/com/google/gerrit/server/account/AccountsUpdate.java
index 7bd2c53..93738b0 100644
--- a/java/com/google/gerrit/server/account/AccountsUpdate.java
+++ b/java/com/google/gerrit/server/account/AccountsUpdate.java
@@ -512,7 +512,10 @@
BatchRefUpdate batchRefUpdate = allUsersRepo.getRefDatabase().newBatchUpdate();
- String externalIdUpdateMessage = "Batch update for " + updatedAccounts.size() + " accounts";
+ String externalIdUpdateMessage =
+ updatedAccounts.size() == 1
+ ? Iterables.getOnlyElement(updatedAccounts).message
+ : "Batch update for " + updatedAccounts.size() + " accounts";
for (UpdatedAccount updatedAccount : updatedAccounts) {
// These updates are all for different refs (because batches never update the same account
// more than once), so there can be multiple commits in the same batch, all with the same base
diff --git a/javatests/com/google/gerrit/acceptance/api/accounts/AccountIT.java b/javatests/com/google/gerrit/acceptance/api/accounts/AccountIT.java
index 9e51054..d54574a 100644
--- a/javatests/com/google/gerrit/acceptance/api/accounts/AccountIT.java
+++ b/javatests/com/google/gerrit/acceptance/api/accounts/AccountIT.java
@@ -2975,7 +2975,7 @@
}
@Test
- public void externalIdBatchUpdates_commitMsg() throws Exception {
+ public void externalIdBatchUpdates_commitMsg_multipleAccounts() throws Exception {
ExternalId extId1 =
ExternalId.createWithEmail(ExternalId.Key.parse("foo:bar"), admin.id(), "1@foo.com");
ExternalId extId2 =
@@ -2998,6 +2998,22 @@
}
}
+ @Test
+ public void externalIdBatchUpdates_commitMsg_singleAccount() throws Exception {
+ ExternalId extId =
+ ExternalId.createWithEmail(ExternalId.Key.parse("foo:bar"), admin.id(), "1@foo.com");
+
+ accountsUpdateProvider.get().update("foobar", admin.id(), (a, u) -> u.addExternalId(extId));
+
+ try (Repository allUsersRepo = repoManager.openRepository(allUsers);
+ RevWalk rw = new RevWalk(allUsersRepo)) {
+ RevCommit commit =
+ rw.parseCommit(allUsersRepo.exactRef(RefNames.REFS_EXTERNAL_IDS).getObjectId());
+
+ assertThat(commit.getFullMessage()).isEqualTo("foobar\n");
+ }
+ }
+
private void createDraft(PushOneCommit.Result r, String path, String message) throws Exception {
DraftInput in = new DraftInput();
in.path = path;