From d3acbc621cdc5f100f573fa531a80ea19acd6f25 Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Thu, 18 Mar 2021 10:38:34 +0100 Subject: [PATCH] Fix computation of ChangeData#merge I broke this in commit faf830b3b80e970f517865039fb403281aa411ae ("ChangeData: use the 'merge' variable") Add a test that covers this case. Change-Id: I9cf06346946e9b45e7feae39d6bb83e06a246114 --- .../google/gerrit/server/query/change/ChangeData.java | 2 +- .../server/query/change/AbstractQueryChangesTest.java | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/java/com/google/gerrit/server/query/change/ChangeData.java b/java/com/google/gerrit/server/query/change/ChangeData.java index 8886cca53d..ff0f9dfc44 100644 --- a/java/com/google/gerrit/server/query/change/ChangeData.java +++ b/java/com/google/gerrit/server/query/change/ChangeData.java @@ -607,7 +607,7 @@ public class ChangeData { author = c.getAuthorIdent(); committer = c.getCommitterIdent(); parentCount = c.getParentCount(); - merge = parentCount > 0; + merge = parentCount > 1; } catch (IOException e) { throw new StorageException( String.format( diff --git a/javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java b/javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java index 48bd321dcf..b97d9f2131 100644 --- a/javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java +++ b/javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java @@ -2370,21 +2370,24 @@ public abstract class AbstractQueryChangesTest extends GerritServerTests { TestRepository repo = createProject("repo"); RevCommit commit1 = repo.parseBody(repo.commit().add("file1", "contents1").create()); RevCommit commit2 = repo.parseBody(repo.commit().add("file1", "contents2").create()); + RevCommit commit3 = + repo.parseBody(repo.commit().parent(commit2).add("file1", "contents3").create()); Change change1 = insert(repo, newChangeForCommit(repo, commit1)); Change change2 = insert(repo, newChangeForCommit(repo, commit2)); + Change change3 = insert(repo, newChangeForCommit(repo, commit3)); RevCommit mergeCommit = repo.branch("master") .commit() .message("Merge commit") .parent(commit1) - .parent(commit2) + .parent(commit3) .insertChangeId() .create(); Change mergeChange = insert(repo, newChangeForCommit(repo, mergeCommit)); assertQuery("status:open is:merge", mergeChange); - assertQuery("status:open -is:merge", change2, change1); - assertQuery("status:open", mergeChange, change2, change1); + assertQuery("status:open -is:merge", change3, change2, change1); + assertQuery("status:open", mergeChange, change3, change2, change1); } @Test