java - JGit 中 DirCacheEditor 的路径异常无效
问题描述
我测试了一段代码
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();
wherepath
是存储库所在目录的绝对路径,并且fileName
是我要添加的文件。但是,该代码会引发异常,并显示消息“无效路径”。
应该具有什么值才能path
使此异常不再出现?
解决方案
JGit 中的路径必须始终相对于存储库的根目录给出。此外,所有平台上的路径分隔符都是“/”。
因此,您的代码应如下所示。
String path = "path/to";
String fileName = "file.ext";
...
new PathEdit(path + "/" + fileName)
导致这样的路径:path/to/file.ext
另请注意,大多数 JGit API 需要相对路径,即不能有前导“/”。
推荐阅读
- reactjs - 如何使用能够在 React Router 中导航的持久标头组件?
- express - Express.js 应用程序无服务器,使用 Lambda 或函数 - 好主意吗?
- c# - 手动添加时更改 TableLayoutPanel 的颜色
- graphics - 手动转换交换链图像布局
- javascript - Map 方法不断返回一个对象数组,导致 React 出错
- bash - 捕获多行 ssh 命令的输出
- android - 存储在特定文件夹 SharedPreferences 颤动
- javascript - 如何验证字符串是否只有一个表情符号?
- oracle - 如何在 oracle Apex 的交互式报表中将行数设置为 5
- python - 无法在pygame中检测到碰撞