tag source drop delete crear bad version-control mercurial dvcs

version-control - source - tag in bitbucket



Introducción a Mercurial (7)

Acabo de empezar a trabajar en un proyecto que utiliza Mercurial como sistema de control de versiones, y necesito algunos consejos básicos sobre cómo usarlo. Utilice esta pregunta para dar algunos consejos introductorios sobre esta tecnología.

Especialmente, estoy buscando consejos sobre los mejores programas para usar y las mejores técnicas para usar (ramas, dentro y fuera, etc. ¡Tengo que aprender las mejores prácticas!)



Aquí hay un útil tutorial sobre Mercurial escrito por Joel Spolsky .

Cubre el uso básico y los comandos, así como también cómo trabajar con Mercurial en un nivel más conceptual. Si ya está familiarizado con SVN, la primera parte definitivamente vale la pena leerla: habla sobre las principales diferencias conceptuales entre SVN y Mercurial, porque tratar de usar Mercurial de la misma manera que usa SVN es buscar problemas.



Además del Libro Mercurial y el tutorial Hg Init, me gustaría mencionar la guía basada en ejemplos que he escrito:

Muestra cómo comenzar con Mercurial y también cubre algunos conceptos más avanzados, como ramas con nombre y hgsubversión. Lo he usado cuando enseñaba Mercurial a nuevos usuarios y parecía que les gustaba.



Sé que ya tienes el sitio de Mercurial, pero el recurso más útil para mí fue el Mercurial . Es una excelente visión general del programa y cómo usarlo.

Encontré que la mejor manera de aprender Mercurial era usarlo en un proyecto. Importé en Mercurial un proyecto que había exportado de subversión y lo desarrollé con regularidad. Me aseguré de clonar el repositorio para diferentes conjuntos de cambios para poder acostumbrarme a la fusión y actualización. No he aprendido todos los usos avanzados, pero ahora estoy bastante firme con él y aún no me he vuelto a cambiar a Subversion.

Muchos proyectos tienen diferentes técnicas para el flujo de trabajo de compromiso. Algunos tienen cambios impulsados ​​por los desarrolladores, como los sistemas centralizados, y algunos sacarán los cambios de los contribuyentes (Linux, por ejemplo). Es difícil generalizar demasiado sin conocer el proceso para su proyecto.

Así es como hago mi desarrollo:

  • Árbol centralizado en un archivo compartido o http, llamado project-trunk o project que es la versión definitiva del proyecto
  • Un árbol limpio en mi sistema que clono desde el repositorio remoto y lo uso para retroceder al repositorio. Luego clono de este árbol para mis cambios. Yo llamo a este árbol project-local
  • Clona el árbol project-local del project-local para cada uno de mis cambios: ej. project-addusers , project-141 , etc.
  • Después de que termine con los commits de un árbol, luego envío los cambios al repositorio project-local del project-local
  • Finalmente, envíe los cambios en el project-local al project-trunk

Tengo el árbol project-local limpio porque luego puedo volver a colocar todos los conjuntos de cambios en el tronco al mismo tiempo, lo que es útil si hay un grupo de cambios relacionados que deben volverse a unir.

En cuanto a las herramientas, depende de su plataforma. Solo uso la herramienta de línea de comandos de vanilla. Viniendo de TortoiseSVN, fue un poco un cambio ir a la línea de comando. Pero estoy bien con eso ahora. Intenté usar TortoiseHg pero no funcionó bien en mi máquina virtual Windows 7 x64. Escuché que es mucho mejor en las plataformas compatibles de 32 bits.


Si utiliza el último cliente de TortoiseHG e incluye el directorio de instalación en su entorno PATH, podrá usar tanto la buena GUI que proporcionan como la línea de comando ''hg''.

No puedo recomendar el uso excesivo de las extensiones mq. Constituyen un excelente entorno de "repositorio de trabajo".

Utilizo las colas para administrar cambios locales en un repositorio de subversión. Hago mis cambios locales a corto plazo y uso mercurial para mantenerme sincronizado con la subversión y el resto del equipo.