Merge "Fix review labels with AnyWithBlock function" into stable-2.11
diff --git a/Documentation/install-quick.txt b/Documentation/install-quick.txt
index 6138a28..f4c12a9 100644
--- a/Documentation/install-quick.txt
+++ b/Documentation/install-quick.txt
@@ -163,7 +163,7 @@
Download a local clone of the repository and move into it
----
- user@host:~$ git clone ssh://user@host:29418/demo-project
+ user@host:~$ git clone ssh://user@localhost:29418/demo-project
Cloning into demo-project...
remote: Counting objects: 2, done
remote: Finding sources: 100% (2/2)
diff --git a/Documentation/pgm-reindex.txt b/Documentation/pgm-reindex.txt
index b1116d3..e1d8e8b 100644
--- a/Documentation/pgm-reindex.txt
+++ b/Documentation/pgm-reindex.txt
@@ -15,15 +15,6 @@
--threads::
Number of threads to use for indexing.
---recheck-mergeable::
- Recheck the mergeable flag on all open changes. For each open change,
- look up for which commit the mergeability check was last done and if
- this commit is different from the HEAD commit of the change's destination
- branch, recompute the mergeability flag of the change by checking if the
- commit of the current patch set can be merged into the destination branch.
- Because this operation is computationally expensive, it is not enabled
- by default.
-
--schema-version::
Schema version to reindex; default is most recent version.
diff --git a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/ReviewProjectAccess.java b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/ReviewProjectAccess.java
index 9437bbe..af6c0da 100644
--- a/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/ReviewProjectAccess.java
+++ b/gerrit-httpd/src/main/java/com/google/gerrit/httpd/rpc/project/ReviewProjectAccess.java
@@ -14,6 +14,7 @@
package com.google.gerrit.httpd.rpc.project;
+import com.google.gerrit.common.FooterConstants;
import com.google.gerrit.common.Nullable;
import com.google.gerrit.common.TimeUtil;
import com.google.gerrit.common.data.AccessSection;
@@ -100,6 +101,7 @@
protected Change.Id updateProjectConfig(ProjectControl ctl,
ProjectConfig config, MetaDataUpdate md, boolean parentProjectUpdate)
throws IOException, OrmException {
+ md.setInsertChangeId(true);
Change.Id changeId = new Change.Id(db.nextChangeId());
RevCommit commit =
config.commitToNewRef(md, new PatchSet.Id(changeId,
@@ -109,7 +111,7 @@
}
Change change = new Change(
- new Change.Key("I" + commit.name()),
+ getChangeId(commit),
changeId,
user.getAccountId(),
new Branch.NameKey(
@@ -133,6 +135,14 @@
return changeId;
}
+ private static Change.Key getChangeId(RevCommit commit) {
+ List<String> idList = commit.getFooterLines(FooterConstants.CHANGE_ID);
+ Change.Key changeKey = !idList.isEmpty()
+ ? new Change.Key(idList.get(idList.size() - 1).trim())
+ : new Change.Key("I" + commit.name());
+ return changeKey;
+ }
+
private void addProjectOwnersAsReviewers(ChangeResource rsrc) {
final String projectOwners =
groupBackend.get(SystemGroupBackend.PROJECT_OWNERS).getName();
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/MetaDataUpdate.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/MetaDataUpdate.java
index c71c94f..840b167 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/git/MetaDataUpdate.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/MetaDataUpdate.java
@@ -148,6 +148,7 @@
private final BatchRefUpdate batch;
private final CommitBuilder commit;
private boolean allowEmpty;
+ private boolean insertChangeId;
@AssistedInject
public MetaDataUpdate(GitReferenceUpdated gitRefUpdated,
@@ -180,6 +181,10 @@
this.allowEmpty = allowEmpty;
}
+ public void setInsertChangeId(boolean insertChangeId) {
+ this.insertChangeId = insertChangeId;
+ }
+
/** @return batch in which to run the update, or {@code null} for no batch. */
BatchRefUpdate getBatch() {
return batch;
@@ -202,6 +207,10 @@
return allowEmpty;
}
+ boolean insertChangeId() {
+ return insertChangeId;
+ }
+
public CommitBuilder getCommitBuilder() {
return commit;
}
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 957f28f..16b316f 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
@@ -2382,7 +2382,11 @@
walk.sort(RevSort.NONE);
try {
Set<ObjectId> existing = Sets.newHashSet();
- walk.markStart(walk.parseCommit(cmd.getNewId()));
+ RevObject parsedObject = walk.parseAny(cmd.getNewId());
+ if (!(parsedObject instanceof RevCommit)) {
+ return;
+ }
+ walk.markStart((RevCommit)parsedObject);
markHeadsAsUninteresting(walk, existing, cmd.getRefName());
RevCommit c;
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/VersionedMetaData.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/VersionedMetaData.java
index b905f67..37df726 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/git/VersionedMetaData.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/VersionedMetaData.java
@@ -43,6 +43,7 @@
import org.eclipse.jgit.revwalk.RevWalk;
import org.eclipse.jgit.transport.ReceiveCommand;
import org.eclipse.jgit.treewalk.TreeWalk;
+import org.eclipse.jgit.util.ChangeIdUtil;
import org.eclipse.jgit.util.RawParseUtils;
import java.io.BufferedReader;
@@ -271,6 +272,14 @@
commit.addParentId(src);
}
+ if (update.insertChangeId()) {
+ ObjectId id =
+ ChangeIdUtil.computeChangeId(res, getRevision(),
+ commit.getAuthor(), commit.getCommitter(),
+ commit.getMessage());
+ commit.setMessage(ChangeIdUtil.insertId(commit.getMessage(), id));
+ }
+
src = inserter.insert(commit);
srcTree = res;
}
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeNotes.java b/gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeNotes.java
index 8cb72e9..21981ab 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeNotes.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/notedb/ChangeNotes.java
@@ -76,7 +76,7 @@
}
});
- public static Comparator<PatchLineComment> PLC_ORDER =
+ public static final Comparator<PatchLineComment> PLC_ORDER =
new Comparator<PatchLineComment>() {
@Override
public int compare(PatchLineComment c1, PatchLineComment c2) {
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/project/ListProjects.java b/gerrit-server/src/main/java/com/google/gerrit/server/project/ListProjects.java
index a9851e4..1f17e70 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/project/ListProjects.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/project/ListProjects.java
@@ -37,9 +37,9 @@
import com.google.gerrit.server.OutputFormat;
import com.google.gerrit.server.StringUtil;
import com.google.gerrit.server.WebLinks;
-import com.google.gerrit.server.account.GroupCache;
import com.google.gerrit.server.account.GroupControl;
import com.google.gerrit.server.git.GitRepositoryManager;
+import com.google.gerrit.server.group.GroupsCollection;
import com.google.gerrit.server.util.RegexListSearcher;
import com.google.gerrit.server.util.TreeFormatter;
import com.google.gson.reflect.TypeToken;
@@ -108,7 +108,7 @@
private final CurrentUser currentUser;
private final ProjectCache projectCache;
- private final GroupCache groupCache;
+ private final GroupsCollection groupsCollection;
private final GroupControl.Factory groupControlFactory;
private final GitRepositoryManager repoManager;
private final ProjectNode.Factory projectNodeFactory;
@@ -190,13 +190,16 @@
private AccountGroup.UUID groupUuid;
@Inject
- protected ListProjects(CurrentUser currentUser, ProjectCache projectCache,
- GroupCache groupCache, GroupControl.Factory groupControlFactory,
- GitRepositoryManager repoManager, ProjectNode.Factory projectNodeFactory,
+ protected ListProjects(CurrentUser currentUser,
+ ProjectCache projectCache,
+ GroupsCollection groupsCollection,
+ GroupControl.Factory groupControlFactory,
+ GitRepositoryManager repoManager,
+ ProjectNode.Factory projectNodeFactory,
WebLinks webLinks) {
this.currentUser = currentUser;
this.projectCache = projectCache;
- this.groupCache = groupCache;
+ this.groupsCollection = groupsCollection;
this.groupControlFactory = groupControlFactory;
this.repoManager = repoManager;
this.projectNodeFactory = projectNodeFactory;
@@ -279,7 +282,7 @@
break;
}
if (!pctl.getLocalGroups().contains(
- GroupReference.forGroup(groupCache.get(groupUuid)))) {
+ GroupReference.forGroup(groupsCollection.parseId(groupUuid.get())))) {
continue;
}
}
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/util/SystemLog.java b/gerrit-server/src/main/java/com/google/gerrit/server/util/SystemLog.java
index cf7f11f..f885e78 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/util/SystemLog.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/util/SystemLog.java
@@ -72,6 +72,7 @@
public AsyncAppender createAsyncAppender(String name, Layout layout) {
AsyncAppender async = new AsyncAppender();
+ async.setName(name);
async.setBlocking(true);
async.setBufferSize(config.getInt("core", "asyncLoggingBufferSize", 64));
async.setLocationInfo(false);