JGit中DirCacheEditor的无效路径异常

时间:2019-03-24 02:18:45

标签: java jgit

我测试了一段代码

  DirCache index = repository.lockDirCache();
  DirCacheEditor editor = index.editor();
  editor.add(new DirCacheEditor.PathEdit(path + File.separator + fileName) {
      @Override
      public void apply(DirCacheEntry entry) {
          entry.setFileMode(FileMode.REGULAR_FILE);
      }
  });
  editor.finish();

其中path是存储库所在目录的绝对路径,而fileName是我要添加的文件。但是,该代码将引发异常,并显示消息“无效路径”。

path应该具有什么值,以便该异常不再出现?

1 个答案:

答案 0 :(得分:2)

必须始终相对于存储库的根目录提供JGit中的路径。此外,在所有平台上,路径分隔符均为“ /”。

因此您的代码应如下所示。

String path = "path/to";
String fileName = "file.ext";
...
new PathEdit(path + "/" + fileName)

得到这样的路径:path/to/file.ext

还请注意,大多数JGit API都需要相对路径,即不得有前导'/'。