如何在内存中创建一个git存储库?

bir*_*day 4 ruby libgit2 rugged

我目前正在开发一个flashcard应用程序,其中用户创建的decks充当Git存储库.在应用程序中创建卡片时,会在更换卡片,更改文件以及删除卡片时将新文件提交到存储库 - 嗯,您明白了.

应用程序保存到的文件格式是一个gzip压缩的Git存储库,所以在任何时候我都不需要将存储库写入磁盘.我怎样才能以这种方式最好地处理甲板作为Git存储库?

小智 6

看看libgit2.它支持内存中的git存储库场景,并且还绑定了许多语言:

https://libgit2.github.com

例如,通过使用坚固的,libgit2的ruby绑定,你可以做这样的事情:

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

repo = Rugged::Repository.init_at('repo_name', :bare, backend: a_backend)
Run Code Online (Sandbox Code Playgroud)

  • `rugged` 代码示例似乎不起作用。从 Rugged 0.27.0 开始,自述文件说您可以使用该代码创建内存存储库,但 gem 不提供“Rugged::InMemory”类。 (2认同)