Mal*_*alt 5 java git jgit jimfs
我一直在尝试使用JGIT和JIMFS使用类似的方法将一个小型 git 配置存储库克隆到内存中
FileSystem fs = Jimfs.newFileSystem(Configuration.unix());
Path gitPath = Files.createDirectories(fs.getPath("/git"));
Git.cloneRepository().setURI(...).setBranch(...).setDirectory(gitPath.toFile())
.setCredentialsProvider(...).call()
Run Code Online (Sandbox Code Playgroud)
但由于 JIMFS 使用路径Path API(因为它不使用默认的文件系统),而 JGIT 使用File API,因此 JIMFS 不实现 toFile() 调用:
@Override
public File toFile() {
// documented as unsupported for anything but the default file system
throw new UnsupportedOperationException();
}
Run Code Online (Sandbox Code Playgroud)
所以我得到的是这个UnsupportedOperationException。有没有一种简单的方法可以让这个(或类似的)设置工作而无需求助于磁盘上的临时目录?
JGit 提供了InMemoryRepository用于测试和实验的用途。但即使这个存储库后端也会将非裸存储库的工作目录存储在磁盘上。
除非 JGit 更改其FileRepository实现以使用 Paths API,否则我看不到使用 Jimfs 存储存储库的方法。
某些命令允许指定 a WorkingTreeIterator,理论上,这将允许对备用存储上的工作树进行读取访问。然而,并非所有命令都支持这个概念,目前还缺少写访问。
| 归档时间: |
|
| 查看次数: |
2287 次 |
| 最近记录: |