Merge "Do not fail to create account if email doesn't match"
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/AddApprovalsStep.java b/src/main/java/com/googlesource/gerrit/plugins/importer/AddApprovalsStep.java
index e703b60..a4a31ae 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/AddApprovalsStep.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/AddApprovalsStep.java
@@ -105,7 +105,8 @@
+ " This label was referenced by an approval provided from '%s'"
+ " for change '%s'."
+ " This approval will be skipped. In order to import this"
- + " approval configure the missing label and resume the import."
+ + " approval configure the missing label and resume the import"
+ + " with the force option."
, pluginName, labelName, a.username, changeInfo.id));
continue;
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayChangesStep.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayChangesStep.java
index dcb2ceb..c7d058f 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayChangesStep.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayChangesStep.java
@@ -17,6 +17,7 @@
import com.google.common.collect.Iterators;
import com.google.gerrit.common.Nullable;
import com.google.gerrit.common.errors.NoSuchAccountException;
+import com.google.gerrit.extensions.annotations.PluginName;
import com.google.gerrit.extensions.client.ChangeStatus;
import com.google.gerrit.extensions.common.ChangeInfo;
import com.google.gerrit.extensions.restapi.BadRequestException;
@@ -64,6 +65,7 @@
private static Logger log = LoggerFactory.getLogger(ReplayChangesStep.class);
+ private final String pluginName;
private final ReplayRevisionsStep.Factory replayRevisionsFactory;
private final ReplayInlineCommentsStep.Factory replayInlineCommentsFactory;
private final ReplayMessagesStep.Factory replayMessagesFactory;
@@ -86,6 +88,7 @@
@Inject
ReplayChangesStep(
+ @PluginName String pluginName,
ReplayRevisionsStep.Factory replayRevisionsFactory,
ReplayInlineCommentsStep.Factory replayInlineCommentsFactory,
ReplayMessagesStep.Factory replayMessagesFactory,
@@ -105,6 +108,7 @@
@Assisted("resume") boolean resume,
@Assisted ResumeImportStatistic importStatistic,
@Assisted ProgressMonitor pm) {
+ this.pluginName = pluginName;
this.replayRevisionsFactory = replayRevisionsFactory;
this.replayInlineCommentsFactory = replayInlineCommentsFactory;
this.replayMessagesFactory = replayMessagesFactory;
@@ -170,6 +174,13 @@
return;
}
}
+
+ if (c.revisions.isEmpty()) {
+ log.warn(String.format("[%s] Change %s has no revisions.",
+ pluginName, c.id));
+ return;
+ }
+
replayRevisionsFactory.create(repo, rw, change, c).replay(api);
upsertChange(resumeChange, change, c);
diff --git a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayMessagesStep.java b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayMessagesStep.java
index 5f2d92c..306d819 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayMessagesStep.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/importer/ReplayMessagesStep.java
@@ -87,9 +87,10 @@
if (msg.author != null) {
Account.Id userId = accountUtil.resolveUser(api, msg.author);
ChangeUpdate update = updateFactory.create(control(change, userId), ts);
- ChangeMessage cmsg =
- new ChangeMessage(msgKey, userId, ts, new PatchSet.Id(
- change.getId(), msg._revisionNumber));
+ PatchSet.Id psId = msg._revisionNumber != null
+ ? new PatchSet.Id(change.getId(), msg._revisionNumber)
+ : null;
+ ChangeMessage cmsg = new ChangeMessage(msgKey, userId, ts, psId);
cmsg.setMessage(msg.message);
cmUtil.addChangeMessage(db, update, cmsg);
update.commit();