【问题标题】:How to create a git repository in memory?如何在内存中创建一个 git 存储库?
【发布时间】:2016-10-05 01:26:24
【问题描述】:

我目前正在开发一个抽认卡应用程序,其中用户创建的卡片组充当 Git 存储库。在应用程序中创建卡片时,会将新文件提交到存储库,更改卡片时,更改文件,删除卡片时 - 嗯,你明白了。

应用程序保存到的文件格式是 gzip 压缩的 Git 存储库,因此我永远不需要将存储库写入磁盘。我怎样才能最好地以这种方式将卡片组视为 Git 存储库?

【问题讨论】:

  • 闪卡应用的状态? ??????

标签: ruby libgit2 rugged


【解决方案1】:

看看 libgit2。它支持内存中的 git 存储库方案,并且还绑定了多种语言:

https://libgit2.github.com

例如,通过使用 rugged,libgit2 的 ruby​​ 绑定,您可以执行以下操作:

a_backend = Rugged::InMemory::Backend.new(opt1: 'setting', opt2: 'setting')

repo = Rugged::Repository.init_at('repo_name', :bare, backend: a_backend)

【讨论】:

  • 谢谢。不过我不太了解Backend。为什么我需要一个?
  • libgit2 上下文中的后端只是您的存储库的存储机制。它可以是内存存储、磁盘存储、数据库存储、缓存存储等。关于后端的详细说明可以在 libgit2 here
  • @rpepato 你知道这是否适用于clone_at?我在文档中找不到
  • @Tiago 我没有测试它,但看起来确实如此。检查此link 中的示例
  • rugged 代码示例似乎不起作用。从 Rugged 0.27.0 开始,自述文件说您可以使用该代码创建内存中存储库,但 gem 不提供 Rugged::InMemory 类。
猜你喜欢
  • 2018-04-05
  • 1970-01-01
  • 2015-09-14
  • 1970-01-01
  • 1970-01-01
  • 2016-12-01
  • 2016-07-14
  • 2018-06-26
  • 1970-01-01
相关资源
最近更新 更多