Differences between revisions 2 and 3
Revision 2 as of 2008-06-22 00:04:01
Size: 7646
Editor: gloob
Comment:
Revision 3 as of 2009-05-19 19:31:03
Size: 7673
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
Mira el ["Tutorial"] para unas instrucciones paso por paso. Mira el [[Tutorial]] para unas instrucciones paso por paso.
Line 6: Line 6:
[:BrazilianPortugueseUnderstandingMercurial:Brazilian Portuguese],
[:
ChineseUnderstandingMercurial:Chinese],
[:
FrenchUnderstandingMercurial:French],
[:
GermanUnderstandingMercurial:German],
[:
ItalianUnderstandingMercurial:Italian],
[:
JapaneseUnderstandingMercurial:Japanese],
[:
KoreanUnderstandingMercurial:Korean],
[:
RussianUnderstandingMercurial:Russian],
[:
SpanishUnderstandingMercurial:Spanish]
[[BrazilianPortugueseUnderstandingMercurial|Brazilian Portuguese]],
[[
ChineseUnderstandingMercurial|Chinese]],
[[
FrenchUnderstandingMercurial|French]],
[[
GermanUnderstandingMercurial|German]],
[[
ItalianUnderstandingMercurial|Italian]],
[[
JapaneseUnderstandingMercurial|Japanese]],
[[
KoreanUnderstandingMercurial|Korean]],
[[
RussianUnderstandingMercurial|Russian]],
[[
SpanishUnderstandingMercurial|Spanish]]
Line 18: Line 18:
[[TableOfContents]] <<TableOfContents>>
Line 22: Line 22:
Los [:Repository:repositorios] Mercurial contienen un [:WorkingDirectory:directorio de trabajo] asociado a un sistema de almacenamiento: Los [[Repository|repositorios]] Mercurial contienen un [[WorkingDirectory|directorio de trabajo]] asociado a un sistema de almacenamiento:
Line 48: Line 48:
El soporte de almacenamiento contiene el histórico '''completo''' del proyecto. En contraste de los [:SCM:SCMs] tradicionales, donde hay una sola copia central de este histórico, El soporte de almacenamiento contiene el histórico '''completo''' del proyecto. En contraste de los [[SCM|SCMs]] tradicionales, donde hay una sola copia central de este histórico,
Line 51: Line 51:
El directorio de trabajo contiene una copia de los ficheros del proyecto en un tiempo determinado (ej rev 2), listos para su edición. Debido a que las [:Tags:etiquetas] y El directorio de trabajo contiene una copia de los ficheros del proyecto en un tiempo determinado (ej rev 2), listos para su edición. Debido a que las [[Tags|etiquetas]] y
Line 56: Line 56:
Cuando haces un [:Commit:commit], el estado del directorio de trabajo relativo a sus [:Parents:padres] se guarda como una nueva [:Revision:revision]: Cuando haces un [[Commit|commit]], el estado del directorio de trabajo relativo a sus [[Parents|padres]] se guarda como una nueva [[Revision|revision]]:
Line 85: Line 85:
La revisión 4 es una '''[:Branch:rama]''' de la revisión 2, que era la revisión en el directorio de trabajo. Ahora la revisión 4 es el '''padre''' de este directorio de trabajo. La revisión 4 es una '''[[Branch|rama]]''' de la revisión 2, que era la revisión en el directorio de trabajo. Ahora la revisión 4 es el '''padre''' de este directorio de trabajo.
Line 89: Line 89:
Mercurial agrupa los cambios de múltiples ficheros a un [:ChangeSet:changesets] atómico, los cuales son revisiones del proyecto completo.
Se les asignan un número secuencia [:RevisionNumer:número de revisión]. Debido a que Mercurial permite el desarrollo distribuido y paralelo, estos números de revisión pueden no coincidir entre usuarios. Debido a esto Mercurial también asigna a cada changeset un [:ChangeSetID:changeset ID] global. Changeset IDs son números hexadecimales de 40 dígitos, pero pueden ser abreviados a un prefíjo unívoco, como "e38487".
Mercurial agrupa los cambios de múltiples ficheros a un [[ChangeSet|changesets]] atómico, los cuales son revisiones del proyecto completo.
Se les asignan un número secuencia [[RevisionNumer|número de revisión]]. Debido a que Mercurial permite el desarrollo distribuido y paralelo, estos números de revisión pueden no coincidir entre usuarios. Debido a esto Mercurial también asigna a cada changeset un [[ChangeSetID|changeset ID]] global. Changeset IDs son números hexadecimales de 40 dígitos, pero pueden ser abreviados a un prefíjo unívoco, como "e38487".
Line 106: Line 106:
Branches y [:Merge:merges] en el historial de revisiones pueden ocurrir en cualquier momento. Cada unmerged branch crea un nuevo [:Head:head] del historial de revisiones.
En este ejemplo, revisiones 5 y 6 son heads. Mercurial considera la revisión 6 ser el [:Tip:tip] del repositorio, el head con el numero mayor de revisión.
Branches y [[Merge|merges]] en el historial de revisiones pueden ocurrir en cualquier momento. Cada unmerged branch crea un nuevo [[Head|head]] del historial de revisiones.
En este ejemplo, revisiones 5 y 6 son heads. Mercurial considera la revisión 6 ser el [[Tip|tip]] del repositorio, el head con el numero mayor de revisión.
Line 122: Line 122:
Bob [:Clone:clona] este repo, y termina con una copia completa del repositorio de Alice (¡aunque su directorio de trabajo es independiente!): Bob [[Clone|clona]] este repo, y termina con una copia completa del repositorio de Alice (¡aunque su directorio de trabajo es independiente!):
Line 133: Line 133:
Bob hace una serie de cambios ([:Commit:commits]): Bob hace una serie de cambios ([[Commit|commits]]):
Line 158: Line 158:
Bob entonces [:Pull:pulls] el repositorio de Alice para sincronizarlo. Esto copia todos los cambios de Alice en el repositorio de Bob: Bob entonces [[Pull|pulls]] el repositorio de Alice para sincronizarlo. Esto copia todos los cambios de Alice en el repositorio de Bob:
Line 173: Line 173:
Debido a que la '''g''' de Alice es la más nueva en head en el repositorio de Bob, es ahora el '''tip'''. Bob entonces hace un [:Merge:merge] que combina los últimos cambios que el había hecho en ('''f''') con el tipo, aplica los resultados y termina con: Debido a que la '''g''' de Alice es la más nueva en head en el repositorio de Bob, es ahora el '''tip'''. Bob entonces hace un [[Merge|merge]] que combina los últimos cambios que el había hecho en ('''f''') con el tipo, aplica los resultados y termina con:
Line 235: Line 235:
Para una introducción práctica en el uso de Mercurial, échale un vistazo al ["Tutorial"]. Para una introducción práctica en el uso de Mercurial, échale un vistazo al [[Tutorial]].

El modelo de desarrollo descentralizado de Mercurial puede ser confuso para los nuevos usuarios. Esta página intenta ilustrar algunos de los conceptos básicos. Mira el Tutorial para unas instrucciones paso por paso.

(Traducciones: Brazilian Portuguese, Chinese, French, German, Italian, Japanese, Korean, Russian, Spanish )

Que hay en un Repositorio

Los repositorios Mercurial contienen un directorio de trabajo asociado a un sistema de almacenamiento:

El soporte de almacenamiento contiene el histórico completo del proyecto. En contraste de los SCMs tradicionales, donde hay una sola copia central de este histórico, cada directorio de trabajo está asociada con una copia privada del histórico. Esto permite que el desarrollo pueda ir en paralelo.

El directorio de trabajo contiene una copia de los ficheros del proyecto en un tiempo determinado (ej rev 2), listos para su edición. Debido a que las etiquetas y los ficheros ignorados también son controlados por cada revisión, están también incluidos.

Aplicando Cambios (Commit)

Cuando haces un commit, el estado del directorio de trabajo relativo a sus padres se guarda como una nueva revision:

La revisión 4 es una rama de la revisión 2, que era la revisión en el directorio de trabajo. Ahora la revisión 4 es el padre de este directorio de trabajo.

Revisiones, Changesets, Heads, and Tip

Mercurial agrupa los cambios de múltiples ficheros a un changesets atómico, los cuales son revisiones del proyecto completo. Se les asignan un número secuencia número de revisión. Debido a que Mercurial permite el desarrollo distribuido y paralelo, estos números de revisión pueden no coincidir entre usuarios. Debido a esto Mercurial también asigna a cada changeset un changeset ID global. Changeset IDs son números hexadecimales de 40 dígitos, pero pueden ser abreviados a un prefíjo unívoco, como "e38487".

Branches y merges en el historial de revisiones pueden ocurrir en cualquier momento. Cada unmerged branch crea un nuevo head del historial de revisiones. En este ejemplo, revisiones 5 y 6 son heads. Mercurial considera la revisión 6 ser el tip del repositorio, el head con el numero mayor de revisión.

Clonando, Haciendo Cambios, Merging, and Pulling

Empecemos con el usuario Alice, cuyo repositorio tiene este aspecto:

Bob clona este repo, y termina con una copia completa del repositorio de Alice (¡aunque su directorio de trabajo es independiente!):

Bob hace una serie de cambios (commits):

Alice hace sus propios cambios en paralelo:

Bob entonces pulls el repositorio de Alice para sincronizarlo. Esto copia todos los cambios de Alice en el repositorio de Bob:

Debido a que la g de Alice es la más nueva en head en el repositorio de Bob, es ahora el tip. Bob entonces hace un merge que combina los últimos cambios que el había hecho en (f) con el tipo, aplica los resultados y termina con:

Ahora si Alice pulls de Bob, ella tendrá los cambios de Bob e, f y h y ellos estarán totalmente sincronizados:

Un Sistema Descentralizado

Mercurial es un sistema completamente descentralizado, y como tal no tiene noción de repositorio central. Por tanto los usuarios son libre de definir sus propia topologías para compartir cambios (mira CommunicatinChanges):

Lo que Mercurial no puede hacer

Muchos usuarios de SVN/CVS esperan tener almacenados los proyectos relacionados todos en un repositorio central. Esto no es para lo que hg se ha hecho, por tanto debes encontrar una manera diferente de trabajar. Esto especialmente significa que no puedes solicitar (checkout) sólo un directorio del repositorio. Si necesitas de verdad gestionar múltiples proyectos en una especie de meta-repositorio, puedes probar la ForestExtension.

Para una introducción práctica en el uso de Mercurial, échale un vistazo al Tutorial.

SpanishUnderstandingMercurial (last edited 2012-11-11 19:11:32 by abuehl)