private void updateNonChangeRefs()

in src/main/java/com/googlesource/gerrit/plugins/importer/GitFetchStep.java [49:88]


  private void updateNonChangeRefs(Repository repo) throws IOException {
    Map<String, Ref> refs = repo.getRefDatabase().getRefs(ConfigureRepositoryStep.R_IMPORTS);
    for (Map.Entry<String, Ref> e : refs.entrySet()) {
      String name = e.getKey();
      if (name.startsWith("imports/")) {
        continue;
      }
      if (name.startsWith("cache-automerge/")) {
        continue;
      }
      if (name.startsWith("changes/")) {
        continue;
      }
      if (name.startsWith("users/") && name.contains("/edit")) {
        continue;
      }
      String targetRef = Constants.R_REFS + name;
      RefUpdate ru = repo.updateRef(targetRef);
      ru.setNewObjectId(e.getValue().getObjectId());
      RefUpdate.Result result = ru.forceUpdate();
      switch (result) {
        case NEW:
        case FAST_FORWARD:
        case FORCED:
        case NO_CHANGE:
          break;
        case IO_FAILURE:
        case LOCK_FAILURE:
        case NOT_ATTEMPTED:
        case REJECTED:
        case REJECTED_CURRENT_BRANCH:
        case RENAMED:
        case REJECTED_MISSING_OBJECT:
        case REJECTED_OTHER_REASON:
        default:
          throw new IOException(
              String.format("Failed to update %s, RefUpdate.Result = %s", targetRef, result));
      }
    }
  }