annotate es/intro.tex @ 592:26fb9b724588

translated some paragraphs to spanish from mq-ref.tex
author Igor Támara <igor@tamarapatino.org>
date Wed, 07 Jan 2009 23:47:09 -0500
parents cf6b9bf14af7
children e98a8c3afcef
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
502
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
1 \chapter{Introducción}
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
2 \label{chap:intro}
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
3
502
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
4 \section{Acerca del control de revisiones}
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
5
502
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
6 El control de revisiones es el proceso de administrar diferentes
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
7 versiones de una pieza de información. En su forma más simple es algo
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
8 que la mayoría de gente hace a mano: cada vez que usted modifica un
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
9 fichero, lo graba con un nuevo nombre que contiene un número, el
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
10 siguiente mayor que el anterior.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
11
502
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
12 Administrar manualmente muchas versiones de un fichero es una tarea
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
13 propensa a errores, a pesar de que hace bastante tiempo hay
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
14 herramientas que ayudan en este proceso. Las primeras herramientas
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
15 para automatizar el control de revisiones fueron pensadas para que un
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
16 usuario administrara un solo fichero. En las décadas pasadas, el
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
17 alcance de las herramientas de control de revisiones ha ido aumentando
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
18 considerablemente; ahora manejan muchos ficheros y facilitan el
502
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
19 trabajo en conjunto de varias personas. Las mejores herramientas de
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
20 control de revisiones de la actualidad no tienen problema con miles de
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
21 personas trabajando en proyectos que consisten de decenas de miles de
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
22 ficheros.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
23
502
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
24 \subsection{¿Por qué usar control de revisiones?}
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
25
502
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
26 Hay muchas razones por las cuales usted o su equipo desearía usar una
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
27 herramienta automática de control de revisiones para un proyecto.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
28 \begin{itemize}
502
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
29 \item Contar con la historia y la evolución de su proyecto, para
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
30 evitar hacer la tarea manualmente. Por cada cambio tendrá una
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
31 bitácora de \emph{quién} lo hizo; \emph{por qué} se hizo;
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
32 \emph{cuándo} se hizo; y de \emph{qué} se trataba el cambio.
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
33 \item Cuando trabaja con más personas, los programas de control de
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
34 revisiones facilitan la colaboración. Por ejemplo, cuando varias
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
35 personas de forma casi simultanea pueden hacer cambios
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
36 incompatibles, el programa le ayudará a identificar y resolver tales
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
37 conflictos.
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
38 \item Puede ayudarle a recuperarse de equivocaciones. Si aplica un
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
39 cambio que posteriormente se evidencia como un error, puede
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
40 revertirlo a una versión previa a uno o muchos ficheros. De hecho,
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
41 una herramienta \emph{realmente} buena, incluso puede ayudarle
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
42 efectivamente a darse cuenta exactamente cuándo se introdujo el
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
43 error( para más detalles ver la sección~\ref{sec:undo:bisect}).
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
44 \item Le permitirá trabajar simultáneamente, y manejar las diferencias
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
45 entre múltiples versiones de su proyecto.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
46 \end{itemize}
575
cf6b9bf14af7 corrected some typos, added a note about the meaning of a sentence
Javier Rojas <jerojasro@devnull.li>
parents: 508
diff changeset
47 La mayoría de estas razones son igualmente válidas ---por lo menos en
502
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
48 teoría--- así esté trabajando en un proyecto solo, o con mucha gente.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
49
502
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
50 Algo fundamental acerca de lo práctico de un sistema de control de
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
51 revisiones en estas dos escalas (``un hacker solo'' y ``un equipo
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
52 gigantesco'') es cómo se comparan los \emph{beneficios} con los
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
53 \emph{costos}. Una herramienta de control de revisiones que sea
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
54 difícil de entender o usar impondrá un costo alto.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
55
502
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
56 Un proyecto de quinientas personas es muy propenso a colapsar
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
57 solamente con su peso inmediatamente sin una herramienta de control de
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
58 versiones y un proceso. En este caso, el costo de usar control de
575
cf6b9bf14af7 corrected some typos, added a note about the meaning of a sentence
Javier Rojas <jerojasro@devnull.li>
parents: 508
diff changeset
59 revisiones ni siquiera se tiene en cuenta, puesto que \emph{sin} él,
502
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
60 el fracaso está casi garantizado.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
61
502
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
62 Por otra parte, un ``arreglo rápido'' de una sola persona, excluiría
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
63 la necesidad de usar una herramienta de control de revisiones, porque
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
64 casi seguramente, el costo de usar una estaría cerca del costo del
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
65 proyecto. ¿No es así?
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
66
575
cf6b9bf14af7 corrected some typos, added a note about the meaning of a sentence
Javier Rojas <jerojasro@devnull.li>
parents: 508
diff changeset
67 %TODO el sentido de uniquely va más a decir que hace ambas cosas sin problema,
cf6b9bf14af7 corrected some typos, added a note about the meaning of a sentence
Javier Rojas <jerojasro@devnull.li>
parents: 508
diff changeset
68 % no a que ``apenas''las soporta, no?
502
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
69 Mercurial solamente soporta \emph{ambas} escalas de de
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
70 desarrollo. Puede aprender lo básico en pocos minutos, y dado su bajo
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
71 sobrecosto, puede aplicar el control de revisiones al proyecto más
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
72 pequeño con facilidad. Su simplicidad significa que no tendrá que
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
73 preocuparse por conceptos obtusos o secuencias de órdenes compitiendo
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
74 por espacio mental con lo que sea que \emph{realmente} esté tratando
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
75 de hacer. Al mismo tiempo, Mercurial tiene alto desempeño y su
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
76 naturaleza peer-to-peer le permite escalar indoloramente para manejar
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
77 grandes proyectos.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
78
502
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
79 Ninguna herramienta de control de revisiones puede salvar un
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
80 proyecto mal administrado, pero la elección de herramientas puede
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
81 hacer una gran diferencia en la fluidez con la cual puede trabajar en
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
82 el proyecto.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
83
502
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
84 \subsection{La cantidad de nombres del control de revisiones}
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
85
502
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
86 El control de revisiones es un campo amplio, tan ampli que no hay un
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
87 acrónimo o nombre único. A continuación presentamos un listado de
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
88 nombres comunes y acrónimos que se podrían encontrar:
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
89 \begin{itemize}
502
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
90 \item Control de revisiones (RCS)
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
91 \item Manejo de Configuraciones de Programas(SCM), o administracón de
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
92 configuraciones
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
93 \item Administración de código fuente
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
94 \item Control de Código Fuente, o Control de Fuentes
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
95 \item Control de Versiones(VCS)
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
96 \end{itemize}
502
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
97 Algunas personas aducen que estos términos tienen significados
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
98 diversos, pero en la práctica se sobrelapan tanto que no hay un
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
99 acuerdo o una forma adecuada de separarlos.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
100
502
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
101 \section{Historia resumida del control de revisiones}
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
102
502
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
103 La herramienta de control de revisiones más antigua conocida es SCCS
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
104 (Sistema de Control de Código), escrito por Marc Rochkind en Bell
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
105 Labs, a comienzos de los setentas(1970s). SCCS operaba sobre ficheros
502
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
106 individuales, y requería que cada persona que trabajara en el proyecto
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
107 tuviera acceso a un espacio compartido en un solo sistema. Solamente
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
108 una persona podía modificar un fichero en un momento dado; el
502
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
109 arbitramiento del acceso a los ficheros se hacía con candados. Era
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
110 común que la gente pusiera los candados a los ficheros, y que
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
111 posteriormente olvidara quitarlos, impidiendo que otro pudiera
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
112 modificar los ficheros en cuestión sin la intervención del
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
113 administrador.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
114
502
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
115 Walter Tichy desarrolló una alternativa gratutita a SCCS a comienzos
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
116 de los ochentas(1980s), llamó a su programa RCS(Sistema de Control de
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
117 Revisiones). Al igual que SCCS, RCS requería que los desarrolladores
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
118 trabajaran en un único espacio compartido y colocaran candados a los
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
119 ficheros para evitar que varias personas los estuvieran modificando
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
120 simultáneamente.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
121
502
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
122 Después en los ochenta, Dick Grune usó RCS como un bloque de
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
123 construcción para un conjunto de guiones de línea de comando, que
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
124 inicialmente llamó cmt, pero que renombró a CVS(Sistema Concurrente de
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
125 Versiones). La gran innovación de CVS era que permitía a los
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
126 desarrolladores trabajar simultáneamente de una forma más o menos
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
127 independiente en sus propios espacios de trabajo. Los espacios de
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
128 trabajo personales impedian que los desarrolladores se pisaran las
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
129 mangueras todo el tiempo, situación común con SCCS y RCS. Cada
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
130 desarrollador tenía una copia de todo el fichero del proyecto y podía
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
131 modificar su copia independientemente, Tenían que fusionar sus
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
132 ediciones antes de consignar los cambios al repositorio central.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
133
502
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
134 Brian Berliner tomó los scripts originales de Grune y los reescribió
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
135 en~C, haciéndolos públicos en 1989, código sobre el cual se ha
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
136 desarrollado la versión moderna de CVS. CVS posteriormente adquirió
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
137 la habilidad de operar sobre una conexión de red, dotándolo de una
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
138 arquitectura, cliente/servidor. La arquitectura de CVS es
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
139 centralizada; La historia del proyecto está únicamente en el
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
140 repositorio central. Los espacios de trabajo de los clientes
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
141 contienen únicamente copias recientes de las versiones de los
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
142 ficheros, y pocos metadatos para indicar dónde está el servidor. CVS
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
143 ha tenido un éxito enorme; Es probablemente el sistema de control de
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
144 revisiones más extendido del planeta.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
145
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
146 A comienzos de los noventa(1990s), Sun MicroSystems desarrollo un
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
147 temprano sistema distribuido de revisión de controles llamado TeamWare
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
148 Un espacio de trabajo TeamWare contiene una copia completa de la
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
149 historia del proyecto. TeamWare no tiene la noción de repositorio
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
150 central. (CVS se basaba en RCS para el almacenamiento de su historia;
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
151 TeamWare usaba SCCS.)
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
152
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
153 A medida que avanzaba la decada de los noventa, se empezño a
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
154 evidenciar los problemas de CVS. Alacena cambios simultáneos a muchos
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
155 ficheros de forma individual, en lugar de agruparlos como una
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
156 operación única y atómica lógicamente. No maneja bien su jerarquía de
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
157 ficheros bien; es fácil desordenar un repositorio renombrando ficheros
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
158 y directorios. Peor aún, su código fuente es difícil de leer y
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
159 mantener, lo que hace que su ``umbral de dolor'' para arreglar sus
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
160 problemas arquitecturales algo prohibitivo.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
161
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
162 En 2001, Jim Blandy y Karl Fogel, dos desarrolladores que habían
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
163 trabajado en CVS, comenzaron un proyecto para reemplazarlo con una
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
164 herramienta con mejor arquitectura y código más limpio. El resultado,
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
165 Subversion, no se separó del modelo centralizado cliente/servidor de
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
166 CVS, pero añadió consignaciones atómicas de varios ficheros, mejor
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
167 manejo de nombres de espacios, y otras características que lo hacen
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
168 mejor que CVS. Desde su versión inicial, ha ido creciendo en
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
169 popularidad.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
170
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
171 Más o menos en forma simultánea Graydon Hoare comenzó a trabajar en un
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
172 sistema distribuido de control de versiones ambicioso que llamó
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
173 Monotone. Mientras que Monotone se enfocaba a evitar algunas fallas de
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
174 diseño de CVS con una arquitectura peer-to-peer, fue mucho más
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
175 allá(junto con otros proyectos subsecuentes) que unas herramientas de
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
176 control de revisiones en varios aspectos innovadores. Usa hashes
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
177 criptográficos como identificadores, y tiene una noción integral de
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
178 ``confianza'' para código de diversas fuentes.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
179
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
180 Mercurial nació en el 2005. Algunos de sus aspectos de de diseño
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
181 fueron influenciados por Monotone, pero Mercurial se enfoca en la
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
182 facilidad de uso, gran rendimiento y escalabilidad para proyectos muy
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
183 grandes.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
184
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
185 \section{Tendencias en el control de revisiones}
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
186
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
187 Ha habido varias tendencias en el desarrollo y uso de las herramientas
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
188 de control de revisiones en las pasadas cuatro décadas, mientras la
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
189 gente se ha vuelto familiar con las capacidades de sus herramientas
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
190 así mismo con sus limitaciones.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
191
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
192 La primera generación comenzó administrando ficheros individuales en
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
193 computadores por persona. A pesar de que tales herramientas
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
194 representaron un avance importante frente al control de revisiones
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
195 manual, su modelo de candados y la limitación a un sólo computador,
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
196 determinó equipos de trabajo pequeños y acoplados.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
197
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
198 La segunda generación dejó atrás esas limitaciones moviéndose a
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
199 arquitecturas centradas en redes, y administrando proyectos completos
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
200 uno a la vez. A medida que los proyectos crecían, nacieron nuevos
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
201 problemas. Con la necesidad de comunicación frecuente con los
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
202 servidores, escalar estas máquinas se convirtió en un problema en
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
203 proyectos realmente grandes. Las redes con poca estabilidad impidieron
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
204 que usuarios remotos se conectaran al servidor. A medida que los
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
205 proyecos de código abierto comenzaron a ofrecer acceso de sólo lectura
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
206 de forma anónima a cualquiera, la gente sin permiso para consignar,
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
207 vio que no podían usar tales herramientas para interactuar en un
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
208 proyecto de forma natural, puesto que no podían guardar sus cambios.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
209
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
210 La generación actual de herramientas de control de revisiones es de
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
211 forma natural peer-to-peer. Todos estos sistemas han eliminado la
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
212 dependencia de un único servidor central, y han permitido que la
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
213 gente distribuya sus datos de control de revisiones donde realmente se
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
214 necesita. La colaboración a través de Internet ha cambiado las
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
215 limitantes tecnológicas a la cuestión de elección y consenso. Las
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
216 herramientas modernas pueden operar sin conexión indefinidamenta y
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
217 autónomamente, necesitando una conexión de red solamente para
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
218 sincronizar los cambios con otro repositorio.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
219
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
220 \section{Algunas ventajas del control distribuido de revisiones}
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
221
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
222 A pesar de que las herramientas para el control distribuido de
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
223 revisiones lleva varios años siendo tan robusto y usable como la
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
224 generación previa de su contraparte, personas que usan herramientas
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
225 más antiguas no se han percatado de sus ventajas. Hay gran cantidad
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
226 de situaciones en las cuales las herramientas distribuidas brillan
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
227 frente a las centralizadas.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
228
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
229 Para un desarrollador individual, las herramientas distribuidas casi
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
230 siempre son más rápidas que las centralizadas. Por una razón sencilla:
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
231 Una herramienta centralizada necesita comunicarse por red para las
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
232 operaciones más usuales, debido a que los metadatos se almacenan en
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
233 una sola copia en el servidor central. Una herramienta distribuida
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
234 almacena todos sus metadatos localmente. Con todo lo demás de la
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
235 misma forma, comunicarse por red tiene un sobrecosto en una
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
236 herramienta centralizada. No subestime el valor de una herramienta de
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
237 respuesta rápida: Usted empleará mucho tiempo interactuando con su
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
238 programa de control de revisiones.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
239
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
240 Las herramientas distribuidas son indiferentes a los caprichos de su
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
241 infraestructura de servidores, de nuevo, debido a la replicación de
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
242 metadatos en tantos lugares. Si usa un sistema centralizado y su
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
243 servidor explota, ojalá los medios físicos de su copia de seguridad
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
244 sean confiables, y que su última copia sea reciente y además
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
245 funcione. Con una herramienta distribuida tiene tantas copias de
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
246 seguridad disponibles como computadores de contribuidores.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
247
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
248 La confiabilidad de su red afectará las herramientas distribuidas de
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
249 una forma mucho menor que las herramientas centralizadas No puede
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
250 siquiera usar una herramienta centralizada sin conexión de red,
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
251 excepto con algunas órdenes muy limitadas. Con herramientas
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
252 distribuidas, si sus conexión cae mientras usted está trabajando,
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
253 podría nisiquiera darse cuenta. Lo único que que no podrá hacer es
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
254 comunicarse con repositorios en otros computadores, algo que es
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
255 relativamente raro comparado con las operaciones locales. Si tiene
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
256 colaboradores remotos en su equipo, puede ser significante.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
257
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
258 \subsection{Ventajas para proyectos de código abierto}
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
259
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
260 Si descubre un proyecto de código abierto y decide que desea comenzar
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
261 a trabajar en él, y ese proyecto usa una herramienta de control
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
262 distribuido de revisiones, usted es un par con la gente que se
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
263 considera el ``alma'' del proyecto. Si ellos publican los
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
264 repositorios, se puede copiar inmediatamente la historia del proyecto,
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
265 hacer cambios y guardar su trabajo, usando las mismas herramientas de
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
266 la misma forma que ellos. En contraste, con una herramienta
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
267 centralizada, debe usar el programa en un modo ``sólo lectura'' a
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
268 menos que alguien le otorgue permisos para consignar cambios en el
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
269 repositorio central. Hasta entonces, no podrá almacenar sus cambios y
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
270 sus modificaciones locales correrán el riesgo de dañarse cuando trate
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
271 de actualizar su vista del repositorio.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
272
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
273 \subsubsection{Las bifurcaciones(forks) no son un problema}
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
274
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
275 Se ha mencionado que las herramientas de control distribuido de
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
276 versiones albergan un riesgo a los proyectos de código abierto, puesto
504
779944196e2a corrected typo in command to insert notes of translators
Javier Rojas <jerojasro@devnull.li>
parents: 503
diff changeset
277 que se vuelve muy sencillo hacer una ``bifurcanción''\ndt{fork.} del
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
278 desarrollo del proyecto. Una bifurcación pasa cuando hay diferencias
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
279 de opinión o actitud entre grupos de desarrolladores que desenvoca en
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
280 la decisión de la imposibilidad de continuar trabajando juntos. Cada
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
281 parte toma una copia más o menos completa del código fuente del
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
282 proyecto y toma su propio rumbo.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
283
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
284 En algunas ocasiones los líderes de las bifurcaciones reconcilian sus
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
285 diferencias. Con un sistema centralizado de control de revisiones, el
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
286 proceso \emph{técnico} de reconciliarse es doloroso, y se hace de
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
287 forma muy manual. Tiene que decidir qué historia de revisiones va a
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
288 ``win'', e injertar los cambios del otro equipo en el árbol de alguna
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
289 manera. Con esto usualmente se pierde algo o todo del historial de la
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
290 revisión de alguna de las partes.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
291
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
292 Lo que las herramientas distribuidas hacen con respecto a las
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
293 bifurcaciones, es que las bifurcaciones son la \emph{única} forma de
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
294 desarrollar un proyecto. Cada cambio que usted hace es potencialmente
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
295 un punto de bifurcación. La gran fortaleza de esta aproximación es que
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
296 las herramientas distribuidas de control de revisiones tiene que ser
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
297 bueno al \emph{fusionar} las bifurcaciones, porque las bifurcaciones
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
298 son absolutamente fundamentales: pasan todo el tiempo.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
299
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
300 Si todas las porciones de trabajo que todos hacen todo el tiempo, se
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
301 enmarca en términos de bifurcaciones y fusiones, entonces a aquello a
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
302 lo que se refiere en el mundo del código abierto a una ``bifurcación''
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
303 se convierte \emph{puramente} en una cuestión social. Lo que hacen las
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
304 herramientas distribuidas es \emph{disminuir} la posibilidad de una
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
305 bifurcación porque:
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
306 \begin{itemize}
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
307 \item Eliminan la distinción social que las herramientas centralizadas
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
308 imponen: esto entre los miembros (personas con permiso de consignar)
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
309 y forasteros(los que no tienen el permiso).
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
310 \item Facilitan la reconciliación después de una bifurcación social,
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
311 porque todo lo que concierne al programa de control de revisiones es
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
312 una fusión.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
313 \end{itemize}
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
314
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
315 Algunas personas se resisten a las herramientas distribuidas porque
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
316 desean mantener control completo sobre sus proyectos, y creen que las
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
317 herramientas centralizadas les da tal control. En todo caso, si este
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
318 es su parecer, y publica sus repositorios de CVS o Subversion, hay
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
319 muchas herramientas disponibles que pueden obtener la historia
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
320 completa(A pesar de lo lento) y recrearla en otro sitio que usted no
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
321 controla. Siendo así un control ilusorio, puesto que está impidiendo
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
322 la fluidez de colaboración en lugar de prevenir que alguien se sienta
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
323 impulsado a obtener una copia y hacer una bifurcación con su historia.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
324
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
325 \subsection{Ventajas para proyectos comerciales}
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
326
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
327 Muchos proyectos comerciales tienen grupos de trabajo distribuidos
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
328 alrededor del globo. Quienes contribuyen y están lejos de un
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
329 repositorio central verán una ejecución más lenta de las órdenes y tal
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
330 vez menos confiabilidad. Los sistemas de control de revisión
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
331 comerciales intentan amortiguar estos problemas con adiciones de
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
332 replicación remota que usualmente son muy costosos y complicados de
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
333 administradr. Un sistema distribuido no padece estos problemas. Mejor
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
334 aún, puede colocar varios servidores autorizados, por ejemplo, uno por
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
335 sitio, de tal forma que no haya comunicación redundante entre
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
336 repositorios sobre enlaces de conexión costosos.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
337
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
338 Los sistemas de control de revisiones distribuidos tienden a ser poco
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
339 escalables. No es inusual quw costosos sistemas centralizados caigan
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
340 ante la carga combinada de unas cuantas docenas de usuarios
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
341 concurrentes. De nuevo, las respuestas típicas de replibcación tienden
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
342 a ser costosas y complejas de instalar y administrar. Dado que la
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
343 carga en un servidor central---si es que tiene uno---es muchas veces
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
344 menor con una herramienta distribuida(debido a que los datos están
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
345 replicados en todas partes), un sólo servidor económico puede tratar
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
346 las necesidades de equipos mucho más grandes, y la replicación para
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
347 balancear la carga se vuelve cosa de scripts.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
348
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
349 Si tiene un empleado en el campo, se beneficiará grandemente de un
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
350 sistema distribuido de control de versiones al resolver problemas en
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
351 el sitio del cliente. La herramienta le permitirá generar
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
352 construcciones a la medida, probar diferentes arreglos de forma
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
353 independiente y buscar de forma eficiente las fuentes de fallos en la
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
354 historia y regresiones en los ambientes de los clientes, todo, sin
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
355 necesidad de conectarse al servidor de su compañía.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
356
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
357 \section{¿Por qué elegir Mercurial?}
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
358
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
359 Mercurial cuenta con un conjunto único de propiedades que lo hacen
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
360 particularmente una buena elección como un sistema de control de
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
361 revisiones, puesto que:
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
362 \begin{itemize}
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
363 \item Es fácil de aprender y usar.
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
364 \item Es liviano.
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
365 \item Escala de forma excelente.
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
366 \item Es fácil de acondicionar.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
367 \end{itemize}
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
368
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
369 Si los sistemas de control de revisiones le son familiares, debería
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
370 estar listo para usar Mercurial en menos de cinco minutos. Si no, va a
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
371 tomar unos pocos minutos más. Las órdenes de Mercurial y su conjunto
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
372 de características son uniformes y consistentes generalmente, y basta
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
373 con que siga unas pocas reglas generales en lugar de un montón de
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
374 excepciones.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
375
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
376 En un proyecto pequeño, puede comenzar a trabajar con Mercurial poco a
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
377 poco. Creando nuevos cambios y ramas, transfiriendo cambios(localmente
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
378 o por la red); y las operaciones relacionadas con el estado y la
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
379 historia son rápidas. Mercurial buscar ser ligero y no incomodar en su
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
380 camino combinando poca sobrecarga cognitiva con operaciones
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
381 asombrosamente rápidas.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
382
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
383 La utilidad de Mercurial no se limita a proyectos pequeños: está
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
384 siendo usado por proyectos con centenas de miles de contribuyentes,
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
385 cada uno conteniendo decenas de miles de ficheros y centenas de
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
386 megabytes de código fuente
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
387
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
388 Si la funcionalidad básica de Mercurial no es suficiente para usted,
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
389 es muy fácil extenderlo. Mercurial se comporta muy bien con tareas de
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
390 scripting y su limpieza interna junto con su implementación en Python
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
391 permiten añadir características fácilmente en forma de extensiones.
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
392 Hay un buen número de extensiones útiles y populares en este momento,
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
393 desde ayudar a identificar fallos hasta el mejoramiento de su
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
394 desempeño.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
395
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
396 \section{Comparación de Mercurial con otras herramientas}
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
397
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
398 Antes de leer, por favor tenga en cuenta que esta sección
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
399 necesariamente refleja mis propias experiencias, intereses y(tengo que
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
400 decirlo) mis preferencias. He usado cada una de las herramientas de
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
401 control de versiones listadas a continuación, y en muchos casos por
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
402 varios años.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
403
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
404
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
405 \subsection{Subversion}
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
406
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
407 Subversion es una herramienta de control de revisiones muy popular,
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
408 desarrollada para reemplazar a CVS. Su arquitectura es centralizada
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
409 en cliente/servidor.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
410
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
411 Subversion y Mercurial tienen órdenes con nombres similares para hacer
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
412 las mismas operaciones, por lo que si le son familiares en una, será
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
413 sencillo aprender a usar la otra. Ambas herramientas son portables en
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
414 todos los sistemas operativos populares.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
415
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
416 Antes de la versión 1.5, Subversion no tenía soporte para fusiones. En
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
417 el momento de la escritura, sus capcidades para llevar cuenta de las
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
418 funciones son nuevas,
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
419 \href{http://svnbook.red-bean.com/nightly/en/svn.branchmerge.advanced.html#svn.branchmerge.advanced.finalword}{complicadas
508
04ba1c7785ae Fixing build prevention, goofy translator. Taking a new chapter
Igor TAmara <igor@tamarapatino.org>
parents: 507
diff changeset
420 y poco estables\ndt{buggy}}.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
421
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
422 Mercurial tiene una ventaja considerable en el desempeño sobre
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
423 Subversion en cualquier operación de control de revisiones que yo haya
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
424 medido. He medido sus ventajas con factores desde dos hasta seis veces
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
425 comparando con almacenamiento de ficheros \emph{ra\_local}
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
426 Subversion~1.4.3, el cual es el método de acceso más rápido. En los
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
427 escenarios más sencillos incluyendo almacenamiento con la red de por
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
428 medio, Subversion se encuentra en desventaja aún mayor. Dado que casi
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
429 todas las órdenes de Subversion deben tratar con el servidor y
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
430 Subversion no tiene utilidades de replicación sencillas, la capacidad
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
431 del servidor y el ancho de banda se convierten en cuellos de botella
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
432 para proyectos modestamente grandes.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
433
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
434 Adicionalmente, Subversion tiene un sobrecosto en almacentamiento
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
435 considerable para evitar transacciones por red en algunas operaciones,
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
436 tales como encontrar ficheros modificados(\texttt{status}) y desplegar
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
437 información frente a la revisión actual(\texttt{diff}). Como
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
438 resultado, la copia de trabajo de Subversion termina siendo del mismo
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
439 tamaño o más grande que un repositorio de Mercurial y el directorio de
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
440 trabajo, a pesar de que el repositorio de Mercurial contiene la
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
441 historia completa del proyecto.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
442
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
443 Subversion tiene soporte amplio de otras herramientas. Mercurial por
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
444 ahora está bastante atrás en este aspecto. Esta diferencia está
508
04ba1c7785ae Fixing build prevention, goofy translator. Taking a new chapter
Igor TAmara <igor@tamarapatino.org>
parents: 507
diff changeset
445 disminuyendo, y algunas de las herramientas GUI\ndt{Interfaz de
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
446 Usuario Gráfica}, eclipsan sus equivalentes de Subversion. Al igual
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
447 que Mercurial, Subversion tiene un excelente manual de usuario.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
448
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
449 Dado que Subversion no almacena la historia de revisiones en el
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
450 cliente, es muy bueno para administrar proyectos que tienen muchos
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
451 ficheros binarios grandes y opacos. Si consigna cincuenta revisiones
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
452 de un fichero de 10MB que no es comprimible, el esapacio en el cliente
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
453 de Subversion se mantendrá constante mientras que el espacio usado por
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
454 cualquier Sistema Distribuido de Control de Revisiones crecerá
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
455 rápidamente en proporción con el número de revisiones, debido a que
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
456 las diferencias entre cada revisión es grande.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
457
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
458 Adicionalmente, generalmente es difícil o más bien, imposible mezclar
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
459 diferentes versiones de un fichero binario. La habilidad de Subversion
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
460 para permitirle al usuario poner una cerradura a un fichero, de modo
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
461 que tenga un permiso exclusivo para consignar cambios, puede ser una
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
462 ventaja significativa en un proyecto donde los ficheros binarios sean
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
463 usados ampliamente.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
464
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
465 Mercurial puede importar la historia de revisiones de un repositorio
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
466 de Subversion. También puede exportar historia de revisiones a un
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
467 repositorio de Subversion. De esta forma es sencillo ``dar un
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
468 vistazo'' y usar Mercurial y Subversion en paralelo antes de decidirse
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
469 a dar el paso. La conversión de la historia es incremental, de modo
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
470 que puede aplicar una conversión inicial, y después conversiones
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
471 pequeñas y adicionales posteriormente para traer nuevos cambios.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
472
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
473 \subsection{Git}
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
474
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
475 Git es una herramienta distribuida de control de revisiones
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
476 desarrollada para administrar el arbol del Kernel de Linux. Al igual
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
477 que Mercurial los principios de su diseño fueron influenciados por
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
478 Monotone.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
479
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
480 Git tiene un conjunto de órdenes muy grande en la versión~1.5.0
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
481 ofrece~139 órdenes individuales. Tiene cierta reputación de ser
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
482 difícil de aprender. Comparado con Git, Mercurial tiene un fuerte
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
483 enfoque hacia la facilidad.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
484
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
485 En términos de rendimiento, Git es extremadamente rápido. En muchos
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
486 casos, es más rápido que Mercurial, por lo menos en Linux, mientras
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
487 que Mercurial se comporta mejor en otras operaciones. De todas
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
488 maneras en Windows, el desempeño y el nivel general de soporte que
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
489 ofrece Git, al momento de la escritura, está lejos detrás de
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
490 Mercurial.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
491
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
492 Mientras que el repositorio de Mercurial no requiere mantenimiento, el
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
493 repositorio de Git requiere frecuentes ``repacks'' a sus metadatos.
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
494 Sin estos, el desempeño se degrada y el espacio crece rápidamente. Un
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
495 servidor que contenga repositorios de Git que no sean reempacados
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
496 rigurosa y frecuentemente requerirá trabajo-intenso de disco durante
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
497 las copias de seguridad, y ha habido situaciones en copias de
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
498 seguridad diaria que toman más de 24 horas como resultado. Un
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
499 repositorio recién reempacado de Git es un poco más pequeño que un
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
500 repositorio de Mercurial, pero un repositorio sin reempacar es varios
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
501 órdenes de magnitud más grande.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
502
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
503 El corazón de Git está escrito en C. Muchas órdenes de Git están
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
504 implementadas como scripts de shell o Perl y la calidad de esos
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
505 scripts varía ampliamente. He encontrado muchas situaciones en las
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
506 cuales los scripts no tuvieron en cuenta la presencia de errores que
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
507 podrían haber sido fatales.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
508
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
509 Mercurial puede importar el historial de revisiones de un repositorio
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
510 de Git.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
511
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
512 \subsection{CVS}
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
513
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
514 CVS es probablemente la herramienta de control de revisiones más
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
515 ampliamente usada en el planeta. Debido a su edad y su poca pulcritud
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
516 nterna, ha sido ligeramente mantenido en muchos años.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
517
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
518 Tiene una arquitectura centralizada cliente/servidor. No agrupa
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
519 cambios relacionadso en consignaciones atómicas, pemitiendo que con
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
520 facilidad la gente ``rompa la construcción'': una persona puede
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
521 consignar exitósamente parte del cambio y estar bloqueada por la
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
522 necesidad de una mezcla, forzando a otras personas a ver solamente una
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
523 porción del trabajo que estaban buscando hacer. Esto afecta también
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
524 la forma como usted trabaja con la historia del proyecto. Si quiere
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
525 ver todas las modificaciones que alguien hizo como parte de una tarea,
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
526 necesitará inspeccionar manualmente las descripciones y las marcas de
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
527 tiempo de cambio de cada fichero involucrado(esto, si usted saber
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
528 cuáles eran tales ficheros).
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
529
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
530 CVS tiene una noción confusa de etiquetas y ramas que yo no trataría
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
531 incluso de describir. No soporta renombramiento de ficheros o
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
532 directorios de buena forma, facilitando el corromper un
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
533 repositorio. Casi no tiene chequeo de consistencia interna, por lo
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
534 tanto es casi imposible identificar por que o cómo se corrompió un
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
535 repositorio. Yo no recomendaría un repositorio de CVS para proyecto
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
536 alguno, ni existente ni nuevo.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
537
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
538 Mercurial puede importar la historia de revisiones de CVS. De todas
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
539 maneras hay ciertos trucos para aplicar; los cuales también son
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
540 necesarios para cualquier herramienta importadora de historial de
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
541 CVS. Debido a la falta de atomicidad de cambios y el no versionamiento
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
542 de la jerarquía del sistema de archivos, es imposible reconstruir la
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
543 completamente la historia de CVS acertadamente; hay cierto trabajo de
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
544 conjetura involucrado y los renombramientos tampoco se
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
545 mostrarán. Debido a que gran parte de la administración avanzada de
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
546 CVS tiene que hacerse manualmente y por lo tanto es proclive al error,
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
547 es común que los importadores de CVS encuentren muchos problemas con
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
548 repositorios corruptos( marcas de tiempo totalmente desubicadas y
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
549 archivos que han permanecido con candados por más de una década son
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
550 dos de los problemas más interesantes de los que puedo retomar de mi
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
551 experiencia personal).
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
552
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
553 Mercurial puede importar la historia de revisiones de un repositorio
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
554 CVS.
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
555
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
556 \subsection{Herramientas comerciales}
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
557
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
558 Perforce tiene una arquitectura centralizada cliente/servidor sin
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
559 almacenamiento de dato alguno en el lado del cliente. A diferencia de
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
560 las herramientas modernas de control de revisiones, Perforce requiere
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
561 que un usuario ejecute una orden para informar al servidor acerca de
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
562 todo fichero que se vaya a editar.
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
563
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
564 El rendimiento de Perforce es muy bueno para equipos pequeños, pero se
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
565 degrada rápidamente cuando el número de usuarios va más allá de pocas
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
566 docenas. Instalaciones modestamente grandes de Perforce requiere la
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
567 organización de proxies para soportar la carga que sus usuarios generan.
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
568
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
569 \subsection{Elegir una herramienta de control de revisiones}
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
570
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
571 Con la excepción de CVS, toda las herramientas que se han listado
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
572 anteriormente tienen fortalezas que los hacen valiosos de acuerdo al
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
573 tipo de trabajo. No hay una única herramienta de control de revisiones
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
574 que sea la mejor en todas las situaciones.
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
575
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
576 Por ejemplo, Subversion es una buena elección para trabajar con
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
577 edición frecuente de ficheros binarios, debido a su naturaleza
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
578 centralizada y soporte para poner candados a ficheros.
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
579
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
580 Personalmente encuentro las propiedades de simplicidad, desempeño, y
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
581 buen soporte de fusiones de Mercurial una combinación llamativa que ha
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
582 dado buenos frutos por varios años.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
583
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
584
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
585 \section{Migrar de otra herramienta hacia Mercurial}
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
586
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
587 Mercurial viene con una extensión llamada \hgext{convert}, que puede
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
588 importar historiales de revisiones de forma incremental desde varias
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
589 herramientas de control de revisiones. Por ``incremental'', quiero
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
590 decir que puede migrar toda la historia de un proyecto en una primera
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
591 instancia y después volver a ejecutar la migración posteriormente para
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
592 obtener los nuevos cambios que han sucedido después de la migración
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
593 inicial.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
594
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
595 A continuación presentamos las herramientas de revisiones que la
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
596 orden\hgext{convert} soporta:
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
597 \begin{itemize}
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
598 \item Subversion
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
599 \item CVS
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
600 \item Git
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
601 \item Darcs
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
602 \end{itemize}
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
603
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
604 Adicionalmente, \hgext{convert} puede exportar cambios de Mercurial
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
605 hacia Subversion. Lo que hace posible probar Subversion y Mercurial
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
606 en paralelo antes de lanzarse a un migración total, sin arriesgarse a
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
607 perder trabajo alguno.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
608
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
609 La orden \hgxcmd{conver}{convert} es sencilla de usar. Basta con
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
610 apuntarla hacia la ruta o el URL del repositorio fuente, opcionalmente
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
611 darle el nombre del nombre del repositorio destino y comenzará a hacer
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
612 su trabajo. Después de la conversión inicial, basta con invocar de
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
613 nuevo la orden para importar nuevos cambios.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
614
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
615
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
616 %%% Local Variables:
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
617 %%% mode: latex
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
618 %%% TeX-master: "00book"
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
619 %%% End: