gpt4 book ai didi

java - 在内存中克隆 git 存储库

转载 作者:太空狗 更新时间:2023-10-29 14:17:11 25 4
gpt4 key购买 nike

我一直在尝试使用 JGIT 将一个小型 git 配置存储库克隆到内存中和 JIMFS使用类似的东西

FileSystem fs = Jimfs.newFileSystem(Configuration.unix());
Path gitPath = Files.createDirectories(fs.getPath("/git"));
Git.cloneRepository().setURI(...).setBranch(...).setDirectory(gitPath.toFile())
.setCredentialsProvider(...).call()

但是由于 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();
}

所以我得到的是这个 UnsupportedOperationException。有没有一种简单的方法可以让这个(或类似的)设置工作而无需求助于磁盘上的临时目录?

最佳答案

JGit 提供了一个 InMemoryRepository 用于测试和实验使用。但即使是这个存储库后端也会将非裸存储库的工作目录存储在磁盘上。

除非 JGit 更改其 FileRepository 实现以使用 Paths API,否则我看不到使用 Jimfs 存储存储库的方法。

一些命令允许指定一个 WorkingTreeIterator,这在理论上允许对备用存储上的工作树进行读取访问。但是,并非所有命令都支持此概念,写访问权限目前也缺失。

关于java - 在内存中克隆 git 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45263853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com