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

时间:2011-03-04 16:54:03

标签: git web-applications version-control mercurial browser-extension

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

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

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

2 个答案:

答案 0 :(得分:1)

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

  1. 您需要创建一个新插件,这会限制您的潜在用户(并非所有人都乐于安装插件)
  2. 您需要为每个不同的浏览器以及每个支持的平台
  3. 创建此插件
  4. 您必须处理插件许可证,因为mercurial和git是GPL,而SVN是APL。

答案 1 :(得分:1)

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