Teóricamente posible agrupar Mercurial o Git en una extensión de browser?

Estoy construyendo el software de desarrollo web basado en browser en http://gnymb.us . Eventualmente, tendremos soporte limitado fuera de línea, de modo que pueda editar sus files sin connection aprovechando localStorage, bases de datos HTML5 o Google Gears.

Actualmente estoy desarrollando un soporte de control de fuente para Subversion, Mercurial y Git. Esto funciona muy bien mientras el usuario está en línea. Como sabrá, Mercurial y Git nos permiten trabajar fuera de línea. Una de las dificultades del soporte fuera de línea para el editor es que, dado que este software está basado en el browser, el usuario no podrá utilizar las características de SCM sin connection.

¿Sería teóricamente posible agrupar Mercurial o Git en una extensión de browser y luego modificarla para utilizar bases de datos localStorage basadas en hash o HTML5 en lugar de una jerarquía de sistema de files, sin reescribir todo? Sé que Mercurial usa Python, así que me gustaría usar Python en la extensión del browser. Estoy abierto a otras soluciones también.

Puede build un complemento (o una extensión de browser basada en el código nativo) para cada browser, y vincular el código VCS en él. Pero al instante obtienes 3 problemas:

  1. Necesita crear un nuevo complemento, que limita a sus usuarios potenciales (no todos están contentos de instalar complementos)
  2. Necesita crear este complemento para cada browser diferente y para cada plataforma compatible
  3. Debes ocuparte de la licencia del complemento, ya que mercurial y git son GPL, mientras que SVN es APL.

Podría volver a implementar las partes esenciales de git en la extensión. El model de Git es bastante simple y esto ya se ha hecho en otros idiomas, por ejemplo Ruby (grit) .

Intereting Posts