Merge "Merge branch 'stable-3.4'"
diff --git a/Documentation/note-db.txt b/Documentation/note-db.txt
index a13cbfb..b376d6e 100644
--- a/Documentation/note-db.txt
+++ b/Documentation/note-db.txt
@@ -36,6 +36,67 @@
not available in 3.0, so any upgrade from Gerrit 2.x to 3.x must go through
2.16 to effect the NoteDb upgrade.
+== Format
+
+Each review ("change") in Gerrit is numbered. The different revisions
+("patchsets") of a change 12345 are stored under
+----
+ refs/changes/45/12345/${PATCHSET_NUMBER}
+----
+
+The revisions are stored as commits to the main project, ie. if you
+fetch this ref, you can check out the proposed change.
+
+A change 12345 has its review metadata under
+----
+ refs/changes/45/12345/meta
+----
+The metadata is a notes branch. The commit messages on the branch hold
+modifications to global data of the change (votes, global comments). The inline
+comments are in a
+link:https://git.eclipse.org/r/plugins/gitiles/jgit/jgit/\+/master/org.eclipse.jgit/src/org/eclipse/jgit/notes/NoteMap.java[NoteMap],
+where the key is the commit SHA-1 of the patchset
+that the comment refers to, and the value is JSON data. The format of the
+JSON is in the
+link:https://gerrit.googlesource.com/gerrit/\+/master/java/com/google/gerrit/server/notedb/RevisionNoteData.java[RevisionNoteData]
+which contains
+link:https://gerrit.googlesource.com/gerrit/\+/master/java/com/google/gerrit/entities/Comment.java[Comment] entities.
+
+For example:
+----
+ {
+ "key": {
+ "uuid": "c7be1334_47885e36",
+ "filename":
+"java/com/google/gerrit/server/restapi/project/CommitsCollection.java",
+ "patchSetId": 7
+ },
+ "lineNbr": 158,
+ "author": {
+ "id": 1026112
+ },
+ "writtenOn": "2019-11-06T09:00:50Z",
+ "side": 1,
+ "message": "nit: factor this out in a variable, use
+toImmutableList as collector",
+ "range": {
+ "startLine": 156,
+ "startChar": 32,
+ "endLine": 158,
+ "endChar": 66
+ },
+ "revId": "071c601d6ee1a2a9f520415fd9efef8e00f9cf60",
+ "serverId": "173816e5-2b9a-37c3-8a2e-48639d4f1153",
+ "unresolved": true
+ },
+----
+
+Automated systems may post "robot comments" instead of normal
+comments, which are an extension of the previous comment, defined in
+the
+link:https://gerrit.googlesource.com/gerrit/\+/master/java/com/google/gerrit/entities/RobotComment.java[RobotComment]
+class.
+
[[migration]]
== Migration
diff --git a/java/com/google/gerrit/testing/TestLoggingActivator.java b/java/com/google/gerrit/testing/TestLoggingActivator.java
index 6b5d8fd..b3ad862 100644
--- a/java/com/google/gerrit/testing/TestLoggingActivator.java
+++ b/java/com/google/gerrit/testing/TestLoggingActivator.java
@@ -48,11 +48,6 @@
.put("org.openid4java.server.RealmVerifier", Level.ERROR)
.put("org.openid4java.message.AuthSuccess", Level.ERROR)
- // Silence non-critical messages from c3p0 (if used).
- .put("com.mchange.v2.c3p0", Level.WARN)
- .put("com.mchange.v2.resourcepool", Level.WARN)
- .put("com.mchange.v2.sql", Level.WARN)
-
// Silence non-critical messages from apache.http.
.put("org.apache.http", Level.WARN)
diff --git a/javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java b/javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java
index b97d9f2..cbeb59d 100644
--- a/javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java
+++ b/javatests/com/google/gerrit/server/query/change/AbstractQueryChangesTest.java
@@ -19,6 +19,7 @@
import static com.google.common.truth.Truth.assertWithMessage;
import static com.google.common.truth.TruthJUnit.assume;
import static com.google.gerrit.acceptance.testsuite.project.TestProjectUpdate.allowLabel;
+import static com.google.gerrit.acceptance.testsuite.project.TestProjectUpdate.block;
import static com.google.gerrit.extensions.client.ListChangesOption.DETAILED_LABELS;
import static com.google.gerrit.extensions.client.ListChangesOption.REVIEWED;
import static com.google.gerrit.server.group.SystemGroupBackend.REGISTERED_USERS;
@@ -705,6 +706,23 @@
}
@Test
+ public void byProjectWithHidden() throws Exception {
+ TestRepository<Repo> hiddenProject = createProject("hiddenProject");
+ insert(hiddenProject, newChange(hiddenProject));
+ projectOperations
+ .project(Project.nameKey("hiddenProject"))
+ .forUpdate()
+ .add(block(Permission.READ).ref("refs/*").group(REGISTERED_USERS))
+ .update();
+
+ TestRepository<Repo> visibleProject = createProject("visibleProject");
+ Change visibleChange = insert(visibleProject, newChange(visibleProject));
+ assertQuery("project:visibleProject", visibleChange);
+ assertQuery("project:hiddenProject");
+ assertQuery("project:visibleProject OR project:hiddenProject", visibleChange);
+ }
+
+ @Test
public void byParentOf() throws Exception {
TestRepository<Repo> repo1 = createProject("repo1");
RevCommit commit1 = repo1.parseBody(repo1.commit().message("message").create());
diff --git a/polygerrit-ui/app/elements/change/gr-confirm-move-dialog/gr-confirm-move-dialog.ts b/polygerrit-ui/app/elements/change/gr-confirm-move-dialog/gr-confirm-move-dialog.ts
index ce5b246..eb4053a 100644
--- a/polygerrit-ui/app/elements/change/gr-confirm-move-dialog/gr-confirm-move-dialog.ts
+++ b/polygerrit-ui/app/elements/change/gr-confirm-move-dialog/gr-confirm-move-dialog.ts
@@ -55,7 +55,7 @@
project?: RepoName;
@property({type: Object})
- _query?: (_text?: string) => Promise<AutocompleteSuggestion[]>;
+ _query: (input: string) => Promise<AutocompleteSuggestion[]>;
get keyBindings() {
return {
@@ -67,7 +67,7 @@
constructor() {
super();
- this._query = () => this._getProjectBranchesSuggestions();
+ this._query = (text: string) => this._getProjectBranchesSuggestions(text);
}
_handleConfirmTap(e: Event) {
@@ -93,10 +93,9 @@
}
_getProjectBranchesSuggestions(
- input?: string
+ input: string
): Promise<AutocompleteSuggestion[]> {
if (!this.project) return Promise.reject(new Error('Missing project'));
- if (!input) return Promise.reject(new Error('Missing input'));
if (input.startsWith('refs/heads/')) {
input = input.substring('refs/heads/'.length);
}
diff --git a/polygerrit-ui/app/elements/change/gr-confirm-move-dialog/gr-confirm-move-dialog_test.js b/polygerrit-ui/app/elements/change/gr-confirm-move-dialog/gr-confirm-move-dialog_test.js
index db00f6b..36a2ad3 100644
--- a/polygerrit-ui/app/elements/change/gr-confirm-move-dialog/gr-confirm-move-dialog_test.js
+++ b/polygerrit-ui/app/elements/change/gr-confirm-move-dialog/gr-confirm-move-dialog_test.js
@@ -64,5 +64,12 @@
done();
});
});
+
+ test('_getProjectBranchesSuggestions input empty string', done => {
+ element._getProjectBranchesSuggestions('').then(branches => {
+ assert.equal(branches.length, 0);
+ done();
+ });
+ });
});
diff --git a/resources/log4j.properties b/resources/log4j.properties
index 39246b3..2898cfc 100644
--- a/resources/log4j.properties
+++ b/resources/log4j.properties
@@ -41,11 +41,5 @@
log4j.logger.org.openid4java.server.RealmVerifier=ERROR
log4j.logger.org.openid4java.message.AuthSuccess=ERROR
-# Silence non-critical messages from c3p0 (if used).
-#
-log4j.logger.com.mchange.v2.c3p0=WARN
-log4j.logger.com.mchange.v2.resourcepool=WARN
-log4j.logger.com.mchange.v2.sql=WARN
-
# Silence non-critical messages from apache.http
log4j.logger.org.apache.http=WARN