理论上可以将 Mercurial 或 Git 捆绑到浏览器扩展中吗?

发布于 2024-10-20 20:48:14 字数 464 浏览 4 评论 0原文

我正在 http://gnymb.us 构建基于浏览器的 Web 开发软件。最终,我们将提供有限的离线支持,以便您可以利用 localStorage、HTML5 数据库或 Google Gears 离线编辑文件。

我目前正在构建对 Subversion、Mercurial 和 Git 的源代码控制支持。当用户在线时,这非常有效。如您所知,Mercurial 和 Git 允许我们离线工作。编辑器离线支持的一个困难是,由于该软件是基于浏览器的,用户将无法利用离线SCM功能。

理论上是否可以将 Mercurial 或 Git 捆绑到浏览器扩展中,然后对其进行修改以利用基于哈希的 localStorage 或 HTML5 数据库而不是文件系统层次结构 - 而无需重写所有内容?我知道 Mercurial 使用 Python,所以我想在浏览器扩展中使用 Python。我也愿意接受其他解决方案。

I am building the browser-based web development software at http://gnymb.us. Eventually we will have limited offline support, such that you can edit your files offline by leveraging localStorage, HTML5 databases, or Google Gears.

I am currently building in source control support for Subversion, Mercurial, and Git. This works great while the user is online. As you may know, Mercurial and Git allow us to work offline. One difficulty to offline support for the editor is that, because this software is browser-based, the user will not be able to utilize offline SCM features.

Would it be theoretically possible to bundle Mercurial or Git in a browser extension and then modify it to utilize hash-based localStorage or HTML5 databases rather than a file system hierarchy--without rewriting everything? I know Mercurial uses Python, so I'd want to use Python in the browser extension. I'm open to other solutions as well.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

您可以为每个浏览器构建一个插件(或基于本机代码的浏览器扩展),并将 VCS 代码链接到其中。但你立即遇到 3 个问题:

  1. 你需要创建一个新插件,这限制了你的潜在用户(不是每个人都乐意安装插件)
  2. 你需要为每个不同的浏览器和每个支持的平台创建这个插件
  3. 你必须小心插件许可证,因为 Mercurial 和 git 是 GPL,而 SVN 是 APL。

You can build a plugin (or a native code based browser extension) for each browser, and link the VCS code into it. But you instantly get 3 Problems:

  1. You need to create a new plugin, which limits your potential users (not everyone is happy to install plugins)
  2. You need to create this plugin for each different browser, and for each supported plattform
  3. You have to take care of the plugin license, since mercurial and git are GPL, while SVN is APL.
初见你 2024-10-27 20:48:14

您可以在扩展中重新实现 git 的基本部分。 Git 的模型非常简单,并且其他语言已经做到了这一点,例如 Ruby (grit)

You could reimplement the essential parts of git in the extension. Git's model is pretty simple and this has already been done in other languages, for instance Ruby (grit).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文