有人制作了内存中的 GIT 存储库吗?
Posted
技术标签:
【中文标题】有人制作了内存中的 GIT 存储库吗?【英文标题】:has anyone produced an in-memory GIT repository? 【发布时间】:2011-02-20 17:42:10 【问题描述】:我希望能够利用 GIT(及其工作流程)的优势,但无需磁盘访问成本 - 我只想利用 GIT 的分布式修订控制功能来生产类似混合的东西memcached 和 GIT。 (最好在 .NET 中)
那里有这样的野兽吗?
【问题讨论】:
可以选择 RAM 磁盘吗? 在 C# 中有 git 的实现,称为 'git#',但它处于非常早期的开发阶段。 谢谢雅库布。链接是eqqon.com/index.php/GitSharp Jakub,如果您想添加您的评论作为答案,我很乐意将其标记为答案。我不能用你的评论做到这一点。 【参考方案1】:为什么不直接使用 Windows 版本的 git 并使用 Process.Start()
调用它?
至于存储,您可以将存储库放在 RAM 磁盘中(就像 Andrew 上面建议的那样),但我不确定性能提升有多大。我认为将它放在硬盘上是非常好的,特别是考虑到如果你经常使用它,它无论如何都会缓存在 RAM 中。
【讨论】:
【参考方案2】:我不认为这可以基于他们使用的编译器和资源不是开源/微软共享的。
虽然技术上没有阻止您在应用程序中使用 C# 作为脚本语言并使用您自己的编译器进行构建...但您为什么要这样做?
我猜这个想法是微软为你处理。
话虽如此,也许如果你能弄清楚这些部分是什么并以编程方式调用它们,你应该能够从那里获取 JIT 处理的代码流,你可以将它放在你想要的地方(当然理论上),但是这意味着对未记录的程序集进行不安全的调用,Microsoft 可能为了让生活变得更轻松而对其进行了混淆。
有没有人在 .Net 中看到任何实际编译器的来源? 不能说我有...
不过会带来一些有趣的技巧。
但是....
在反射类中,我相信你可以在某个地方调用“Emit”,让框架编写诸如语句/类型定义的代码之类的东西,也许这些命名空间中有一些东西可以获取 Emit 的输出并将其填充到编译过程...
多么酷的概念!!!
【讨论】:
我正在为我的应用程序使用 C#/.NET,我不想将 GIT 转换为 .NET。我想要的是 GIT 的功能集,因为我认为它是一种一般管理数据的好方法,而不需要对 GNU/Linux 和实际文件持久性的必要依赖。以上是关于有人制作了内存中的 GIT 存储库吗?的主要内容,如果未能解决你的问题,请参考以下文章