@NotNull
    @Override
    public String resolveTargetPath(@NotNull String relativePath) throws IOException {
      if (myReal) {
        File targetFile = myTargetRoot.resolve(relativePath).toFile().getCanonicalFile();
        return targetFile.toString();
      }
      else {
        // myLocalRoot used there intentionally, because it could contain a relative path that some test expects to get.
        return FileUtil.toCanonicalPath(FileUtil.join(myLocalRoot.toString(), relativePath)).replace('/', File.separatorChar);
      }
    }
@NotNull
    @Override
    public String resolveTargetPath(@NotNull String relativePath)