237 votos

Mercurial para Principiantes: La Definitiva Guía Práctica

Inspirado por Git para principiantes: La definitiva guía práctica.

Esta es una compilación de información sobre el uso de Mercurial para principiantes para la práctica de su uso.

Principiante - un programador que lo ha tocado de control de código fuente, sin entender muy bien.

Práctica - que abarca las situaciones que la mayoría de los usuarios se encuentran a menudo - la creación de un repositorio, la ramificación, la fusión, tirar/empujar/a un repositorio remoto, etc.

Notas:

  • Explicar cómo hacer algo en vez de cómo algo es implementado.
  • Lidiar con una pregunta por responder.
  • Respuesta clara y concisamente como sea posible.
  • Editar/extender una respuesta existente en lugar de crear una nueva respuesta en el mismo tema.
  • Por favor, proporcione un vínculo a la de la Mercurial wiki o el HG Libro para personas que quieren aprender más.

Preguntas:

Instalación/Configuración

Trabajar con el código

El etiquetado, la ramificación, de prensa, de líneas de base

Otros

Otros Mercurial referencias

16voto

Joakim Lundborg Puntos 2650

¿Cómo se puede configurar para ignorar los archivos?

Ignorar es configurado en un archivo de texto normal llamado .hgignore en la raíz del repositorio. Agregar simplemente como un archivo normal con:

hg add .hgignore

Hay dos sintaxis de las opciones disponibles para el archivo de la correspondencia, la glob y regexp. el golf es unix-como nombre de archivo de expansión y regexp es de expresiones regulares. Se activa cada añadiendo syntax: glob o syntax: regexp en una línea por sí mismo. Todas las líneas siguientes que se utilice la sintaxis, hasta la siguiente sintaxis marcador. Usted puede tener muchos sintaxis de marcadores como desee. La sintaxis por defecto es regexp, por lo que si sólo se utiliza la expresión regular expreg usted no necesita ningún marcador de sintaxis.

Usted puede agregar comentarios con #

Ejemplo:

# python temporary files
syntax: glob
*.pyc

#editor autosaves
*~

# temporary data
syntax: regexp
temp

Ignorar sólo se aplica a los no administrados de archivos (es decir. archivos que no son ya está registrado). Para ignorar los archivos que se encuentran bajo el control de la versión, puede utilizar los modificadores-I y-X.

7voto

Steve Losh Puntos 11958

¿Cómo ves lo que está involucrado, o el estado actual de su base de código?

Para ver una lista de los archivos que han cambiado:

$ hg status

Este se imprima cada archivo que ha cambiado a lo largo de su estatus, que pueden incluir:

  • M - Modificado. El archivo ha sido cambiado y que los cambios no han sido comprometidos.
  • A - Añadió. El archivo no se realiza un seguimiento antes, pero si usted se compromete Mercurial comenzará el seguimiento de la misma.
  • R - Eliminado. El archivo fue seguido antes, pero si usted se compromete Mercurial dejará de seguimiento en el presente y el futuro se compromete.
  • ? - Desconocido. El archivo no está actualmente seguido por Mercurial. Cometer tendrá ningún efecto a menos que use hg add de añadir.
  • ! - Desaparecidos. El archivo fue localizado pero Mercurial no se puede encontrar en la copia de trabajo.

Para ver los cambios que han sido realizados en los archivos:

$ hg diff

5voto

quark Puntos 7773

¿Cómo interactúo con la Subversión?

Hay tres formas:


El convertir la extensión de clonar existente en un repositorio de Subversion en un Mercurial. Viene con Mercurial. Funciona aproximadamente así:

hg convert <Subversion URL or directory> <path to new Mercurial repository>

Por ejemplo, esto va a agarrar el tronco de la SixApart memcached repositorio.

hg convert http://code.sixapart.com/svn/memcached/trunk

La extensión puede incrementalmente poner en las nuevas revisiones de un repositorio de Subversion en la Mercurial uno (un poco como tirar). Sin embargo, esto no apoya la toma de Mercurial revisiones y enviarlos de vuelta a la Subversión (sin empujar). [XXX: Corregir esto si es malo].


El hgsubversion extensión. Es en muchos sentidos la más sofisticada solución, ya que utiliza la Subversión de la API para comunicarse con el repositorio de Subversion. Se persigue el objetivo de convertirse en el hg-svn puente. Se permite el pleno round-tripping de revisiones (completo clon, tire y empuje), sin Embargo a partir de este escrito [XXX: Modificar esto si/cuando se vuelve incorrecto] todavía está en desarrollo y aún no hay versiones oficiales. Como consecuencia, es sólo funciona con la mayoría de arriba-a-fecha de Mercurial (1.3 a partir de este escrito).

  • Asigna etiquetas y ramas (anterior todas las etiquetas con tags/ para distinguirlas de nombre equivalentes de las ramas).
  • Mantiene una sección especial closed-branches para el cierre de sucursales, las cuales se eliminan en la Subversión.
  • Se requiere que el repositorio de Subversion ser establecidos de acuerdo a la convención de trunk/branches/tags.
  • El comando set es típicamente hg svn <subcommand> a pesar de que pretende ser integrada hasta el punto de que no necesitará el 'svn' parte (es decir. se quiere tratar a una Subversión clon tanto como sea posible, como cualquier otro repositorio de Mercurial).;

Esto funciona así:

clon:

hg svnclone <Subversion URL>

O (sólo para svn:// direcciones Url)

hg clone <svn:// URL>

pull:

hg svn pull

push:

hg svn push

entrantes:

hg svn incoming

salida:

hg svn outgoing

La desprotección de un repositorio completo:

hg svnclone http://code.sixapart.com/svn/memcached


El hgsvn utilidad (bitbucket árbol). Hasta hace poco esta solo te permitirá clonar y tire de un repositorio de Subversion, pero a partir de hgsvn 0.1.7 soporta push. [No sé cómo de bien lo hace de empujar. Cualquier persona con más experiencia deben actualizar esto.] Tiene las siguientes características importantes:

  • Se genera un Mercurial etiqueta para cada SVN etiqueta.
  • Se pone un local de la etiqueta en cada conjunto de cambios para marcar su SVN revisión.
  • Se pone cada Mercurial revisión en el nombre de una rama llamada después de su rama SVN. Por ejemplo, branches/some-feature sería como hg branch some-feature. Coloca el tronco en trunk (es decir. nada es en la Mercurial rama predeterminada, a menos que el usuario explícitamente vuelve a ella.)
  • Se intentará identificar las ramas y las etiquetas, y crear con ellos pero si no puede simplemente salta. Esto es útil cuando el repositorio de Subversion no está siguiendo el convencional trunk/branches/tags diseño.

Esto funciona así:

clon:

hgimportsvn <Subversion URL>

pull:

hgpullsvn

push:

hgpushsvn

entrantes:

hgpullsvn -n

salida:

hgpushsvn -n

La desprotección de un repositorio completo:

hgimportsvn http://code.sixapart.com/svn/memcached

De la comprobación hacia fuera sólo el tronco:

hgimportsvn http://code.sixapart.com/svn/memcached/trunk

5voto

NawaMan Puntos 615

¿Cómo se puede comparar dos revisiones de un archivo, o el archivo actual y una revisión anterior?

Ambos usan hg diff. Cuando hg diff se utiliza todos los cambios en la copia de trabajo y la punta (el último commit) se muestra.

"¿Cómo se puede comparar dos revisiones de un archivo?"

$ hg diff -r{rev1} -r{rev2} {file.code}

El comando de arriba se muestran diferentes entre rev1 y rev2 de "file.code".

"¿Cómo se puede comparar su archivo actual y una revisión anterior?"

$ hg diff {file.code}

El comando de arriba se muestran las diferentes entre la versión actual de "file.code" y la última revisión (la última confirmada).

:D

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X