@Nullable
  public String getContent() throws VcsException {
    try {
      if (myUseBaseRevision) {
        return ContentRevisionCache.getOrLoadCurrentAsString(
                myVcs.getProject(),
                myFile,
                myVcs.getKeyInstanceMethod(),
                new CurrentRevisionProvider() {
                  @Override
                  public VcsRevisionNumber getCurrentRevision() throws VcsException {
                    return getRevisionNumber();
                  }

                  @Override
                  public Pair<VcsRevisionNumber, byte[]> get() throws VcsException, IOException {
                    return Pair.create(getRevisionNumber(), getUpToDateBinaryContent());
                  }
                })
            .getSecond();
      } else {
        return ContentRevisionCache.getOrLoadAsString(
            myVcs.getProject(),
            myFile,
            getRevisionNumber(),
            myVcs.getKeyInstanceMethod(),
            ContentRevisionCache.UniqueType.REPOSITORY_CONTENT,
            new Throwable2Computable<byte[], VcsException, IOException>() {
              @Override
              public byte[] compute() throws VcsException, IOException {
                return getUpToDateBinaryContent();
              }
            });
      }
    } catch (IOException e) {
      throw new VcsException(e);
    }
  }
  public byte[] getContent() throws IOException, VcsException {
    byte[] result;

    if (SVNRevision.HEAD.equals(myRevision)) {
      result = loadContent();
    } else {
      result =
          ContentRevisionCache.getOrLoadAsBytes(
              myVCS.getProject(),
              VcsUtil.getFilePathOnNonLocal(myURL, false),
              getRevisionNumber(),
              myVCS.getKeyInstanceMethod(),
              ContentRevisionCache.UniqueType.REMOTE_CONTENT,
              new Throwable2Computable<byte[], VcsException, IOException>() {
                @Override
                public byte[] compute() throws VcsException, IOException {
                  return loadContent();
                }
              });
    }

    return result;
  }