2009-05-08 15 views
12

Acabo de comenzar 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.Introducción a Mercurial

Sobre todo, estoy en busca de consejos sobre los mejores programas para usar y las mejores técnicas a utilizar (ramas, dentro y fuera de comprobación, etc. Tengo que aprender las mejores prácticas !)

Respuesta

13

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

Encontré la mejor manera de aprender que Mercurial era solo 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.

Ésta es la forma en que hago mi desarrollo:

  • árbol centralizada en un recurso compartido de archivos o http, llamado project-trunk o project que es la versión definitiva del proyecto
  • Un árbol limpia en mi sistema que clonar el repositorio remoto y uso para retroceder al repositorio. Luego clono de este árbol para mis cambios. Llamo a este árbol project-local
  • Copie el árbol project-local para cada uno de mis cambios: ej. project-addusers, project-141, etc.
  • Después que he terminado con las commit en un árbol, a continuación, empuje los cambios en el repositorio de project-local
  • Por último, empujar los cambios en el project-local a project-trunk

tengo el árbol limpio project-local porque 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.

+0

El libro ha mejorado con su iteración más reciente, y es lo suficientemente maduro como para haber sido publicado en copia impresa. Si estás leyendo esto y todavía estás buscando un punto de partida de Mercurial, definitivamente es el lugar para comenzar. – quark

+1

Como una ventaja adicional, puede encontrar la fuente del libro en un repositorio de Mercurial en BitBucket: http://bitbucket.org/bos/hgbook. Lo que significa que puede hacer modificaciones y presentarlas al autor, utilizando la herramienta misma. – quark

2

Si utiliza la última TortoiseHG cliente e incluir el directorio de instalación en su entorno PATH, usted será capaz de utilizar tanto la interfaz gráfica agradable que proporcionan, y la línea de comandos 'hg'

No puedo recomendar el uso de la extensiones de mq demasiado. 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.

13

Aquí hay un helpful tutorial en Mercurial escrito por Joel Spolsky.

Cubre el uso básico y los comandos, y 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.

+1

Este tutorial es absolutamente increíble, tan claro y fácil de entender. Justo lo que necesitaba como alguien completamente nuevo en DVCSs y Control de versiones en general. – Acorn

+0

Lo más probable es que tengas razón al advertir sobre el uso de Mercurial como si fuera SVN, pero para muchas operaciones básicas, esto aún es posible. Y las extensiones como * hgsubversion * (ver https://bitbucket.org/durin42/hgsubversion/overview/) incluso sugieren que esto es perfectamente válido.Sin embargo, las características especiales que incluyen * Mercurial Queues * (http://mercurial.selenic.com/wiki/MqExtension) liberan el poder real de Mercurial, y lo extrañas antes de que te familiarices con estas características. – hasienda

0

Además del libro Mercurial y el tutorial Hg Init, te gusta mencionar el ejemplo impulsada guía que he escrito:

Muestra cómo llegar comenzó con Mercurial y también cubre algunos conceptos más avanzados como ramas con nombre y hgsubversión. Lo he usado al enseñar Mercurial a nuevos usuarios y parece que les gustó.