private @NotNull SimpleDiffRequest createRequest(@Nullable Project project,
                                                     @NotNull Change leftChange,
                                                     @NotNull Change rightChange,
                                                     @NotNull UserDataHolder context,
                                                     @NotNull ProgressIndicator indicator)
      throws DiffRequestProducerException {
      String requestTitle = getRequestTitle(leftChange);

      ContentRevision leftRevision = leftChange.getBeforeRevision();
      ContentRevision centerRevision = leftChange.getAfterRevision();
      ContentRevision rightRevision = rightChange.getBeforeRevision();

      String leftTitle = getRevisionTitle(myContext, DiffUserDataKeysEx.VCS_DIFF_LEFT_CONTENT_TITLE, leftRevision,
                                          ChangeDiffRequestProducer.getYourVersion());
      String centerTitle = getRevisionTitle(myContext, DiffUserDataKeysEx.VCS_DIFF_CENTER_CONTENT_TITLE, centerRevision,
                                            ChangeDiffRequestProducer.getMergedVersion());
      String rightTitle = getRevisionTitle(myContext, DiffUserDataKeysEx.VCS_DIFF_RIGHT_CONTENT_TITLE, rightRevision,
                                           ChangeDiffRequestProducer.getServerVersion());

      if (leftRevision == null) {
        return createTwoSideRequest(project, centerRevision, rightRevision, requestTitle, centerTitle, rightTitle, context, indicator);
      }
      else if (rightRevision == null) {
        return createTwoSideRequest(project, leftRevision, centerRevision, requestTitle, leftTitle, centerTitle, context, indicator);
      }
      else if (centerRevision == null) {
        return createTwoSideRequest(project, leftRevision, rightRevision, requestTitle, leftTitle, rightTitle, context, indicator);
      }
      return new SimpleDiffRequest(requestTitle,
                                   ChangeDiffRequestProducer.createContent(project, leftRevision, context, indicator),
                                   ChangeDiffRequestProducer.createContent(project, centerRevision, context, indicator),
                                   ChangeDiffRequestProducer.createContent(project, rightRevision, context, indicator),
                                   leftTitle, centerTitle, rightTitle);
    }
private @NotNull SimpleDiffRequest createRequest(@Nullable Project project,
                                                     @NotNull Change leftChange,
                                                     @NotNull Change rightChange,
                                                     @NotNull UserDataHolder context,
                                                     @NotNull ProgressIndicator indicator)