JGit 中 DirCacheEditor 的无效路径异常
Invalid path exception with DirCacheEditor in 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
是我要添加的文件。但是,该代码抛出消息 "Invalid path" 的异常。
path
应该有什么值才能不再出现这个异常?
JGit 中的路径必须始终相对于存储库的根目录给出。此外,路径分隔符在所有平台上都是“/”。
因此您的代码应该如下所示。
String path = "path/to";
String fileName = "file.ext";
...
new PathEdit(path + "/" + fileName)
导致这样的路径:path/to/file.ext
另请注意,大多数 JGit API 都需要相对路径,即不得以“/”开头。
我测试的一段代码是
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
是我要添加的文件。但是,该代码抛出消息 "Invalid path" 的异常。
path
应该有什么值才能不再出现这个异常?
JGit 中的路径必须始终相对于存储库的根目录给出。此外,路径分隔符在所有平台上都是“/”。
因此您的代码应该如下所示。
String path = "path/to";
String fileName = "file.ext";
...
new PathEdit(path + "/" + fileName)
导致这样的路径:path/to/file.ext
另请注意,大多数 JGit API 都需要相对路径,即不得以“/”开头。