Merge "Add secondary index implementation using SolrCloud"
diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Reindex.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Reindex.java
index ae92586..19ae1d3 100644
--- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Reindex.java
+++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/Reindex.java
@@ -84,6 +84,7 @@
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Collections;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -101,6 +102,9 @@
@Option(name = "--dry-run", usage = "Dry run: don't write anything to index")
private boolean dryRun;
+ @Option(name = "--verbose", usage = "Output debug information for each change")
+ private boolean verbose;
+
private Injector dbInjector;
private Injector sysInjector;
@@ -326,9 +330,13 @@
try {
Map<String, Ref> refs = repo.getAllRefs();
for (Change c : db.changes().byProject(project)) {
- Ref r = refs.get(c.currentPatchSetId().toRefName());
+ String refName = c.currentPatchSetId().toRefName();
+ Ref r = refs.get(refName);
if (r != null) {
byId.put(r.getObjectId(), new ChangeData(c));
+ } else {
+ fail("Failed to index change " + c.getId()
+ + " (" + refName + " not found)", true, null);
}
}
walk();
@@ -369,6 +377,7 @@
private void getPathsAndIndex(RevCommit bCommit) throws Exception {
RevTree bTree = bCommit.getTree();
+ List<ChangeData> cds = byId.get(bCommit);
try {
RevTree aTree = aFor(bCommit, walk);
if (aTree == null) {
@@ -377,21 +386,31 @@
DiffFormatter df = new DiffFormatter(DisabledOutputStream.INSTANCE);
try {
df.setRepository(repo);
- List<ChangeData> cds = byId.get(bCommit);
if (!cds.isEmpty()) {
List<String> paths = getPaths(df.scan(aTree, bTree));
- for (ChangeData cd : cds) {
- cd.setCurrentFilePaths(paths);
- indexer.indexTask(cd).call();
- done.update(1);
+ Iterator<ChangeData> cdit = cds.iterator();
+ for (ChangeData cd ; cdit.hasNext(); cdit.remove()) {
+ cd = cdit.next();
+ try {
+ cd.setCurrentFilePaths(paths);
+ indexer.indexTask(cd).call();
+ done.update(1);
+ if (verbose) {
+ System.out.println("Reindexed change " + cd.getId());
+ }
+ } catch (Exception e) {
+ fail("Failed to index change " + cd.getId(), true, e);
+ }
}
}
} finally {
df.release();
}
} catch (Exception e) {
- log.warn("Failed to index changes for commit " + bCommit.name(), e);
- failed.update(1);
+ fail("Failed to index commit " + bCommit.name(), false, e);
+ for (ChangeData cd : cds) {
+ fail("Failed to index change " + cd.getId(), true, null);
+ }
}
}
@@ -433,6 +452,22 @@
oi.release();
}
}
+
+ private void fail(String error, boolean failed, Exception e) {
+ if (failed) {
+ this.failed.update(1);
+ }
+
+ if (e != null) {
+ log.warn(error, e);
+ } else {
+ log.warn(error);
+ }
+
+ if (verbose) {
+ System.out.println(error);
+ }
+ }
}
private void writeVersion() throws IOException,
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/PatchSetInserter.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/PatchSetInserter.java
index f0458a6..8317859 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/change/PatchSetInserter.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/PatchSetInserter.java
@@ -205,19 +205,19 @@
if (copyLabels) {
ApprovalsUtil.copyLabels(db, refControl.getProjectControl()
- .getLabelTypes(), currentPatchSetId, change.currentPatchSetId());
+ .getLabelTypes(), currentPatchSetId, updatedChange.currentPatchSetId());
}
final List<FooterLine> footerLines = commit.getFooterLines();
- ChangeUtil.updateTrackingIds(db, change, trackingFooters, footerLines);
+ ChangeUtil.updateTrackingIds(db, updatedChange, trackingFooters, footerLines);
db.commit();
if (changeMessage != null) {
db.changeMessages().insert(Collections.singleton(changeMessage));
}
- indexer.index(change);
- hooks.doPatchsetCreatedHook(change, patchSet, db);
+ indexer.index(updatedChange);
+ hooks.doPatchsetCreatedHook(updatedChange, patchSet, db);
} finally {
db.rollback();
}
diff --git a/lib/codemirror/BUCK b/lib/codemirror/BUCK
index 0bd12ce..c722be7 100644
--- a/lib/codemirror/BUCK
+++ b/lib/codemirror/BUCK
@@ -1,7 +1,7 @@
include_defs('//lib/maven.defs')
-VERSION = 'bb73aeacb8'
-SHA1 = '3bc9c92b97210135bc83fca7a2bd5f3c4aab496a'
+VERSION = '1121be6ce8'
+SHA1 = '0f07c14d6a9de7082985e8b3a644b0713e669b17'
URL = GERRIT + 'net/codemirror/codemirror-%s.zip' % VERSION
prebuilt_jar(