in src/main/java/com/googlesource/gerrit/plugins/importer/ReplayRevisionsStep.java [159:183]
private void updateRef(Repository repo, PatchSet ps) throws IOException {
String ref = ps.getId().toRefName();
RefUpdate ru = repo.updateRef(ref);
ru.setExpectedOldObjectId(ObjectId.zeroId());
ru.setNewObjectId(ObjectId.fromString(ps.getRevision().get()));
RefUpdate.Result result = ru.update();
switch (result) {
case NEW:
case FORCED:
case FAST_FORWARD:
return;
case IO_FAILURE:
case LOCK_FAILURE:
case NOT_ATTEMPTED:
case NO_CHANGE:
case REJECTED:
case REJECTED_CURRENT_BRANCH:
case RENAMED:
case REJECTED_MISSING_OBJECT:
case REJECTED_OTHER_REASON:
default:
throw new IOException(
String.format("Failed to create ref %s, RefUpdate.Result = %s", ref, result));
}
}