3

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

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

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

4

2 回答 2

1

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

  1. 您需要创建一个新插件,这会限制您的潜在用户(不是每个人都乐于安装插件)
  2. 您需要为每个不同的浏览器和每个支持的平台创建这个插件
  3. 您必须注意插件许可证,因为 mercurial 和 git 是 GPL,而 SVN 是 APL。
于 2011-03-07T08:37:34.427 回答
1

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

于 2011-03-07T08:48:30.853 回答