Pregunta

Me gustaría evaluar Mercurial para mis proyectos de trabajo. Pero la mayoría de mis proyectos muy dependen en gran medida de la presencia de svn: externos como apoyo. He buscado en Google y sobre StackOverflow para el apoyo correspondiente de Mercurial. Todo lo que encontré es característica subrepo añadido en Mercurial 1.3, pero la página para esta función dijo:

  

subrepos son una característica experimental para Mercurial 1.3. Así que no hacer esto en repositorios de misión críticos!

No quiero usar algo inestable.

¿Alguien puede arrojar algo de luz sobre el estado real de esta función, y los planes de pulido / acabado y cuando se va a llamar "estable" y listo para su misión repositorios críticos?

¿Fue útil?

Solución

La palabra en el canal de IRC #mercurial es que subrepos seguirá trabajando como lo hacen, y el apoyo crecerán. Por ejemplo actualmente el comando 'hg status' no está al tanto subrepo - que funciona, simplemente no es recursivo, pero que en el futuro será. Sin embargo, los comportamientos actuales, formatos de archivo (.hgsub y .hgsubstate) sólo se pueden cambiar en formas compatibles con versiones anteriores.

Por lo tanto, seguir adelante y contar con ella ahora, y esperamos que cada vez mejor.

P.S. A partir de 1.4.2 mercurial los subrepos ahora pueden ser repositorios de subversión, por lo que puede utilizar una matriz de mercurio y un niño SVN.

Otros consejos

He tenido buena suerte con la característica de mi uso (luz) de él hasta ahora. Es muy útil en dos lugares:

  1. Copia de seguridad de un árbol de repositorios no relacionadas con un único comando hg pull.
  2. Atar un proyecto junto con versiones específicas de sus dependencias, por lo que un solo hg clone recibe el código fuente edificable. Esto está más cerca del uso típico svn:externals.

Aquí hay un par de las limitaciones que he visto con ella hasta el momento:

  1. En el caso # 1 anterior, usted tiene que comprometerse todos subrepos a la vez. Esto es sólo ocasionalmente molesto, ya Mercurial (como cualquier DVCS) alienta frecuentes de confirmaciones por lo que la mayoría de los repositorios no se queden sentados en un estado incompleto, para empezar.
  2. Sólo los comandos Mercurial más básicos son conscientes subrepo-: clone, push / pull, update / commit, y tal vez un par de los demás
  3. .
  4. autores de extensión van a necesitar tiempo para probar sus extensiones contra repositorios con subrepos.

Cuando el equipo Mercurial describe la función como "experimental", que no significa que sea pronto va a decidir borrar todos sus datos. Ellos simplemente significa que no se han codificado alrededor de todos los casos extremos como los conflictos de nombres (por ejemplo, un desarrollador añade una llamada subrepo README, mientras que otro desarrollador agrega un archivo de texto llamado README).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top