2011-05-04 17 views
7

Aloha!Cómo usar mercurial (Hg) dentro de una aplicación Python?

Hg es un buen DVCS que también es un módulo de Python. Esto nos permite hacer '' importar mercurial '' y cargar hg en nuestra propia aplicación. Mi idea era usar mercurial dentro de una aplicación Python para crear un almacenamiento controlado de revisión para mi aplicación.

Sin embargo, mi google-fu SEMM a fallarme. No puedo encontrar ninguna documentación, tutorial o ejemplos de cómo usar hg como módulo en la funcionalidad de Python. help (mercurial) enumera los comandos normales y dir() proporciona algunos consejos de métodos.

¿Pero, por ejemplo, crear archivos de almacén de respaldo, o no se obtiene otro tipo de estructura de datos que funciona como un acuerdo de recompra de Hg?

Parece que hay un gran potencial para la pulcritud que tiene esta funcionalidad. ¿Pero cómo?

+0

No es una gran idea para hacerlo, ya que el proyecto de mercurio no hace ningún intento alguno para mantener la compatibilidad hacia atrás en la API entre las versiones, y son por adelantado acerca de esto. – geoffspear

+1

Tenga en cuenta que Mercurial es GPL (no LGPL), por lo que si su aplicación se vincula a Mercurial de esta manera y se distribuye, también debe colocar su aplicación bajo la GPL. Por esa razón, y debido a que es la única API que se garantiza que es estable, la mayoría de la integración se realiza en el nivel de línea de comando/proceso, que es muy estable y está bien documentada. –

Respuesta

6

API es en su mayoría indocumentados, y su uso podría requerir que liberar su código como GPL - ver https://www.mercurial-scm.org/wiki/MercurialApi. La forma preferida (y más compatible con versiones anteriores) es llamar a hg CLI frontend.

+0

Gracias a todos por las respuestas. Básicamente, esta idea es mala debido a la inestabilidad y la licencia de Hg API. Hmmmm está bien. Ejecutarlo a través de llamadas CLI es un camino a seguir y, como usted dice, resuelve esos problemas perfectamente. Sin embargo, no es tan fácil como poder controlar las estructuras de datos directamente, sino que implica el vertido (decapado) en archivos para su almacenamiento. Que probablemente tendrías que hacer de todos modos. De vuelta al tablero de dibujo, supongo. ¡Gracias de nuevo! – JoachimS

Cuestiones relacionadas