libgit2-backend 的目的是什么?
What's the purpose of libgit2-backend?
我正在尝试构建一个支持 git 版本控制的网站。我在后端使用 libgit2。但我认为文件系统不是那么容易扩展和保证数据完整性。我注意到 libgit2 具有自定义后端 (https://github.com/libgit2/libgit2-backends) 支持,我可以在其中使用数据库进行一些存储。
最初我希望通过将所有 git 相关的内容保存到数据库中来完全摆脱文件系统。但是在我尝试了 sqlite 后端之后,似乎 libgit2 仍然需要在我的文件系统上生成一个 .git 文件夹?后台使用数据库的时候可以去掉.git文件夹吗?
有一些 "limitations" 使用 libgit2 的工作 "in-memory" 存储库,即使支持 "some" 内存中。正如您所发现的,自定义对象数据库 (.git/objects/
) 和 refdb (.git/refs/
) 都有 API 个端点,并且配置子系统可以在内存中工作。但是对于所有其他可以进入 .git/
的东西来说情况并非如此,因为在回购级别没有定制点 - 恕我直言,这不是 git 我们在谈论的时候完全无 fs — 工作并没有真正朝这个方向发展。
- 功能请求:https://github.com/libgit2/libgit2/issues/4671
- 关于修复的讨论 + 一些带有 "preparatory design work" 的分支:https://github.com/libgit2/libgit2/pull/4967
我正在尝试构建一个支持 git 版本控制的网站。我在后端使用 libgit2。但我认为文件系统不是那么容易扩展和保证数据完整性。我注意到 libgit2 具有自定义后端 (https://github.com/libgit2/libgit2-backends) 支持,我可以在其中使用数据库进行一些存储。
最初我希望通过将所有 git 相关的内容保存到数据库中来完全摆脱文件系统。但是在我尝试了 sqlite 后端之后,似乎 libgit2 仍然需要在我的文件系统上生成一个 .git 文件夹?后台使用数据库的时候可以去掉.git文件夹吗?
有一些 "limitations" 使用 libgit2 的工作 "in-memory" 存储库,即使支持 "some" 内存中。正如您所发现的,自定义对象数据库 (.git/objects/
) 和 refdb (.git/refs/
) 都有 API 个端点,并且配置子系统可以在内存中工作。但是对于所有其他可以进入 .git/
的东西来说情况并非如此,因为在回购级别没有定制点 - 恕我直言,这不是 git 我们在谈论的时候完全无 fs — 工作并没有真正朝这个方向发展。
- 功能请求:https://github.com/libgit2/libgit2/issues/4671
- 关于修复的讨论 + 一些带有 "preparatory design work" 的分支:https://github.com/libgit2/libgit2/pull/4967