首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在内存中克隆git存储库

在内存中克隆git存储库
EN

Stack Overflow用户
提问于 2017-07-23 18:05:49
回答 2查看 1.5K关注 0票数 4

我一直在尝试使用JGITJIMFS将一个很小的git配置存储库克隆到内存中,方法如下

代码语言:javascript
复制
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不实现to toFile()调用:

代码语言:javascript
复制
@Override
public File toFile() {
    // documented as unsupported for anything but the default file system
    throw new UnsupportedOperationException();
}

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-24 00:32:15

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

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

一些命令允许指定WorkingTreeIterator,理论上,这将允许对备用存储上的工作树进行读访问。然而,并不是所有的命令都支持这个概念,目前也缺少写访问。

票数 2
EN

Stack Overflow用户

发布于 2019-02-02 04:20:11

Yo可以将存储库克隆到内存中,并将其逐个文件复制到自己的文件系统中。请参阅将文件读入内部内存存储库的示例:https://stackoverflow.com/a/54486558/449553

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45263853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档