annotate es/intro.tex @ 609:98fb436b58c1

corrected some typos
author Javier Rojas <jerojasro@devnull.li>
date Mon, 12 Jan 2009 22:25:40 -0500
parents e98a8c3afcef
children 9da096de3c52
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
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
9 fichero, lo graba con un nuevo nombre que contiene un número, cada uno
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
10 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
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
12 Administrar manualmente muchas versiones de incluso sólo un fichero es una tarea
502
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
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
21 personas trabajando en proyectos que consisten de cientos de miles de
502
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}
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
29 %TODO historia
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
30 \item Llevar registro de la historia y la evolución de su proyecto, para
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
31 evitar hacer la tarea manualmente. Por cada cambio, tendrá una
502
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
32 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
33 \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
34 \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
35 revisiones facilitan la colaboración. Por ejemplo, cuando varias
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
36 personas hacen cambios potencialmente incompatibles de forma casi
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
37 simultánea, el programa le ayudará a identificar y resolver tales
502
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
38 conflictos.
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
39 \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
40 cambio que posteriormente se evidencia como un error, puede
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
41 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
42 una herramienta \emph{realmente} buena, incluso puede ayudarle
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
43 efectivamente a darse cuenta exactamente cuándo se introdujo el
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
44 error (para más detalles ver la sección~\ref{sec:undo:bisect}).
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
45 \item Le ayudará a trabajar simultáneamente, y a manejar las diferencias
502
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
46 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
47 \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
48 La mayoría de estas razones son igualmente válidas ---por lo menos en
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
49 teoría--- así esté trabajando en un proyecto solo usted, 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
50
502
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
51 Algo fundamental acerca de lo práctico de un sistema de control de
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
52 revisiones en estas dos escalas (``un hacker solitario'' y ``un equipo
502
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
53 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
54 \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
55 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
56
502
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
57 Un proyecto de quinientas personas es muy propenso a colapsar
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
58 solamente con su peso inmediatamente sin una herramienta y un proceso
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
59 de control de versiones. 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
60 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
61 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
62
502
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
63 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
64 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
65 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
66 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
67
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
68 Mercurial soporta \emph{ambas} escalas de de desarrollo de manera
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
69 única. Puede aprender lo básico en pocos minutos, y dado su bajo
502
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
70 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
71 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
72 preocuparse por conceptos obtusos o secuencias de órdenes compitiendo
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
73 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
74 de hacer. Al mismo tiempo, Mercurial tiene alto desempeño y su
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
75 %TODO distribuida? en vez de p2p
502
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
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
81 hacer una gran diferencia en la fluidez con la cual usted puede
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
82 trabajar en un 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
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
86 El control de revisiones es un campo amplio, tan amplio que no hay un
502
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)
609
98fb436b58c1 corrected some typos
Javier Rojas <jerojasro@devnull.li>
parents: 608
diff changeset
91 \item Manejo de Configuraciones de Programas (SCM), o administracón de
502
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
609
98fb436b58c1 corrected some typos
Javier Rojas <jerojasro@devnull.li>
parents: 608
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
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
98 diversos, pero en la práctica se sobrelapan tanto que no hay una
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
99 forma acordada o incluso 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
609
98fb436b58c1 corrected some typos
Javier Rojas <jerojasro@devnull.li>
parents: 608
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
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
115 Walter Tichy desarrolló una alternativa gratuita a SCCS a comienzos
609
98fb436b58c1 corrected some typos
Javier Rojas <jerojasro@devnull.li>
parents: 608
diff changeset
116 de los ochentas (1980s); llamó a su programa RCS (Sistema de Control de
502
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
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
119 ficheros para evitar que varias personas los modificaran
502
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
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
124 inicialmente llamó cmt, pero que renombró a CVS (Sistema Concurrente de
502
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
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
128 trabajo personales impedían que los desarrolladores se pisaran las
502
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
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
130 desarrollador tenía una copia de todos los ficheros del proyecto y podía
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
131 modificar sus copias independientemente, Tenían que fusionar sus
502
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ó
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
135 en~C, publicando en 1989 el código sobre el cual se ha
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
136 desarrollado la versión moderna de CVS. CVS adquirió posteriormente
502
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
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
139 %TODO historia/historial
502
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
140 centralizada; La historia del proyecto está únicamente en el
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
141 repositorio central. Los espacios de trabajo de los clientes
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
142 contienen únicamente copias recientes de las versiones de los
4cdeb830118b Starting translating intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 501
diff changeset
143 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
144 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
145 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
146
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
147 A comienzos de los noventa~(1990s), Sun MicroSystems desarrollo un
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
148 temprano sistema distribuido de control de revisiones llamado
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
149 TeamWare.
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
150 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
151 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
152 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
153 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
154
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
155 A medida que avanzaba la decada de los noventa, se empezó a
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
156 evidenciar los problemas de CVS. Almacena cambios simultáneos a muchos
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
157 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
158 operación única y atómica lógicamente. No maneja bien su jerarquía de
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
159 ficheros; es fácil desordenar un repositorio al renombrar ficheros
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
160 y directorios. Peor aún, su código fuente es difícil de leer y
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
161 mantener, lo que hizo que su ``umbral de dolor'' para arreglar sus
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
162 problemas arquitecturales fuera algo prohibitivo.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
163
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
164 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
165 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
166 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
167 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
168 CVS, pero añadió consignaciones atómicas de varios ficheros, mejor
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
169 manejo de espacios de nombres , y otras características que lo hacen
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
170 mejor que CVS. Desde su versión inicial, ha ido creciendo en
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
171 popularidad rápidamente.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
172
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
173 Más o menos en forma simultánea Graydon Hoare comenzó a trabajar en un
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
174 ambicioso sistema distribuido de control de versiones que llamó
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
175 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
176 diseño de CVS con una arquitectura peer-to-peer, fue mucho más
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
177 allá de las herramientas anteriores (y posteriores) de
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
178 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
179 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
180 ``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
181
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
182 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
183 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
184 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
185 grandes.
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 \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
188
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
189 Ha habido una tendencia inconfundible en el desarrollo y uso de las herramientas
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
190 de control de revisiones en las cuatro décadas pasadas, mientras la
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
191 gente se ha hecho familiar con las capacidades de sus herramientas y
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
192 se ha visto restringida por sus limitaciones.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
193
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
194 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
195 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
196 representaron un avance importante frente al control de revisiones
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
197 manual, su modelo de candados y la dependencia a un sólo computador
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
198 los limitó a 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
199
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
200 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
201 arquitecturas centradas en redes, y administrando proyectos completos
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
202 a la vez. A medida que los proyectos crecían, nacieron nuevos
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
203 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
204 servidores, escalar estas máquinas se convirtió en un problema en
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
205 proyectos realmente grandes. Las redes con poca estabilidad podrían
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
206 impedir que usuarios remotos se conectaran al servidor. A medida que
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
207 los
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
208 proyectos de código abierto comenzaron a ofrecer acceso de sólo lectura
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
209 de forma anónima a cualquiera, la gente sin permiso para consignar
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
210 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
211 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
212
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
213 La generación actual de herramientas de control de revisiones es
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
214 peer-to-peer por naturaleza. Todos estos sistemas han eliminado la
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
215 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
216 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
217 necesita. La colaboración a través de Internet ha cambiado las
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
218 limitantes tecnológicas por la cuestión de elección y consenso. Las
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
219 herramientas modernas pueden operar sin conexión indefinidamente y
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
220 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
221 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
222
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
223 \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
224
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
225 A pesar de que las herramientas para el control distribuido de
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
226 revisiones lleva varios años siendo tan robustas y usables como la
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
227 generación previa de sus contrapartes, algunas personas que usan las
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
228 herramientas más antiguas no se han percatado de sus ventajas. Hay
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
229 gran cantidad
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
230 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
231 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
232
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
233 Para un desarrollador individual, las herramientas distribuidas casi
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
234 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
235 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
236 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
237 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
238 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
239 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
240 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
241 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
242 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
243
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
244 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
245 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
246 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
247 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
248 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
249 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
250 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
251
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
252 La confiabilidad de su red afectará las herramientas distribuidas de
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
253 una forma mucho menor que a las herramientas centralizadas. Usted no puede
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
254 siquiera usar una herramienta centralizada sin conexión de red,
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
255 excepto por algunas órdenes muy limitadas. Con herramientas
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
256 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
257 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
258 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
259 relativamente raro comparado con las operaciones locales. Si tiene
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
260 colaboradores remotos en su equipo, puede ser importante.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
261
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
262 \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
263
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
264 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
265 a trabajar en él, y ese proyecto usa una herramienta de control
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
266 distribuido de revisiones, usted es de inmediato un par con la gente que se
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
267 considera el ``alma'' del proyecto. Si ellos publican sus
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
268 %TODO historia/historial
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
269 repositorios, usted puede copiar inmediatamente la historia del proyecto,
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
270 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
271 la misma forma que ellos. En contraste, con una herramienta
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
272 centralizada, usted debe usar el programa en un modo ``sólo lectura'' a
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
273 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
274 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
275 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
276 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
277
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
278 \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
279
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
280 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
281 versiones albergan un riesgo a los proyectos de código abierto, puesto
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
282 que se vuelve muy sencillo hacer una ``bifurcación''\ndt{fork.} del
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
283 desarrollo del proyecto. Una bifurcación sucede cuando hay diferencias
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
284 de opinión o actitud entre grupos de desarrolladores que desemboca en
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
285 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
286 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
287 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
288
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
289 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
290 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
291 proceso \emph{técnico} de reconciliarse es doloroso, y se hace de
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
292 %TODO historia/historial
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
293 forma muy manual. Usted tiene que decidir qué historia de revisiones va a
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
294 ``ganar'', e injertar los cambios del otro equipo en el árbol de alguna
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
295 %TODO historia/historial
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
296 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
297 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
298
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
299 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
300 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
301 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
302 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
303 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
304 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
305 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
306
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
307 Si todas las porciones de trabajo que todos hacen, todo el tiempo, se
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
308 enmarcan en términos de bifurcaciones y fusiones, entonces a aquello a
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
309 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
310 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
311 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
312 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
313 \begin{itemize}
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
314 \item Eliminan la distinción social que imponen las herramientas
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
315 centralizadas: aquélla entre miembros (personas con permiso de
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
316 consignar) y forasteros (los que no tienen el permiso).
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
317 \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
318 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
319 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
320 \end{itemize}
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
321
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
322 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
323 desean mantener control completo sobre sus proyectos, y creen que las
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
324 herramientas centralizadas les dan tal control. En todo caso, si este
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
325 es su parecer, y usted publica sus repositorios de CVS o Subversion, hay
503
1839fd383e50 translated a few subsections of intro
Igor TAmara <igor@tamarapatino.org>
parents: 502
diff changeset
326 muchas herramientas disponibles que pueden obtener la historia
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
327 completa (aunque sea lentamente) y recrearla en otro sitio que usted no
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
328 controla. Siendo así un control ilusorio, puesto que está impidiendo
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
329 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
330 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
331
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
332 \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
333
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
334 Muchos proyectos comerciales tienen grupos de trabajo distribuidos
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
335 alrededor del globo. Quienes contribuyen y están lejos de un
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
336 repositorio central verán una ejecución más lenta de los comandos y tal
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
337 vez menos confiabilidad. Los sistemas de control de revisión
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
338 comerciales intentan amortiguar estos problemas con adiciones de
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
339 replicación remota que usualmente son muy costosos y complicados de
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
340 administrar. Un sistema distribuido no padece estos problemas. Mejor
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
341 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
342 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
343 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
344
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
345 Los sistemas de control de revisiones distribuidos tienden a ser poco
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
346 escalables. No es inusual que costosos sistemas centralizados caigan
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
347 ante la carga combinada de unas cuantas docenas de usuarios
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
348 concurrentes. De nuevo, las respuestas típicas de replicación tienden
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
349 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
350 carga en un servidor central---si es que tiene uno---es muchas veces
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
351 menor con una herramienta distribuida (debido a que los datos están
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
352 replicados en todas partes), un solo servidor económico puede tratar
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
353 las necesidades de equipos mucho más grandes, y la replicación para
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
354 balancear la carga se vuelve cosa de guiones.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
355
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
356 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
357 sistema distribuido de control de versiones al resolver problemas en
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
358 el sitio del cliente. La herramienta le permitirá generar
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
359 construcciones a la medida, probar diferentes arreglos de forma
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
360 independiente y buscar de forma eficiente las fuentes de fallos en la
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
361 historia y regresiones en los ambientes de los clientes, todo sin
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
362 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
363
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
364 \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
365
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
366 Mercurial cuenta con un conjunto único de propiedades que lo hacen
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
367 una elección particularmente buena como sistema de control de
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
368 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
369 \begin{itemize}
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
370 \item Es fácil de aprender y usar.
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
371 \item Es liviano.
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
372 \item Escala de forma excelente.
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
373 \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
374 \end{itemize}
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 Si los sistemas de control de revisiones le son familiares, debería
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
377 estar listo para usar Mercurial en menos de cinco minutos. Si no, sólo va a
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
378 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
379 de características son uniformes y consistentes generalmente, y basta
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
380 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
381 excepciones.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
382
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
383 En un proyecto pequeño, usted puede comenzar a trabajar con Mercurial en
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
384 pocos momentos. Crear nuevos cambios y ramas, transferir cambios (localmente
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
385 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
386 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
387 camino combinando poca sobrecarga cognitiva con operaciones
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
388 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
389
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
390 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
391 siendo usado por proyectos con centenas de miles de contribuyentes,
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
392 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
393 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
394
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
395 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
396 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
397 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
398 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
399 Hay un buen número de extensiones útiles y populares en este momento,
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
400 desde ayudar a identificar fallos hasta mejorar su desempeño.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
401
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
402 \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
403
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
404 Antes de leer, por favor tenga en cuenta que esta sección
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
405 necesariamente refleja mis propias experiencias, intereses y (tengo que
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
406 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
407 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
408 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
409
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
410
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
411 \subsection{Subversion}
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
412
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
413 Subversion es una herramienta de control de revisiones muy popular,
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
414 desarrollada para reemplazar a CVS. Tiene una arquitectura
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
415 centralizada tipo cliente/servidor.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
416
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
417 Subversion y Mercurial tienen comandos con nombres similares para hacer
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
418 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
419 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
420 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
421
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
422 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
423 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
424 funciones son nuevas,
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
425 \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
426 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
427
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
428 Mercurial tiene una ventaja considerable en desempeño sobre
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
429 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
430 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
431 comparando con almacenamiento de ficheros \emph{ra\_local}
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
432 Subversion~1.4.3, el cual es el método de acceso más rápido. En los
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
433 escenarios más realistas incluyendo almacenamiento con la red de por
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
434 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
435 todas las órdenes de Subversion deben tratar con el servidor y
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
436 Subversion no tiene utilidades de replicación adecuadas, la capacidad
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
437 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
438 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
439
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
440 Adicionalmente, Subversion tiene un sobrecosto considerable en
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
441 almacenamiento para evitar transacciones por red en algunas
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
442 operaciones,
609
98fb436b58c1 corrected some typos
Javier Rojas <jerojasro@devnull.li>
parents: 608
diff changeset
443 tales como encontrar ficheros modificados (\texttt{status}) y desplegar
98fb436b58c1 corrected some typos
Javier Rojas <jerojasro@devnull.li>
parents: 608
diff changeset
444 información frente a la revisión actual (\texttt{diff}). Como
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
445 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
446 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
447 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
448 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
449
506
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
450 Subversion tiene soporte amplio de otras herramientas. Mercurial por
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
451 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
452 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
453 Usuario Gráfica}, eclipsan sus equivalentes de Subversion. Al igual
8b564f6f57f2 Translating Subversion Vs. Mercurial
Igor TAmara <igor@tamarapatino.org>
parents: 504
diff changeset
454 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
455
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
456 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
457 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
458 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
459 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
460 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
461 cualquier Sistema Distribuido de Control de Revisiones crecerá
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
462 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
463 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
464
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
465 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
466 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
467 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
468 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
469 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
470 usados ampliamente.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
471
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
472 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
473 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
474 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
475 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
476 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
477 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
478 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
479
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
480 \subsection{Git}
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
481
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
482 Git es una herramienta distribuida de control de revisiones
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
483 desarrollada para administrar el arbol del kernel de Linux. Al igual
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
484 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
485 Monotone.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
486
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
487 Git tiene un conjunto de órdenes muy grande; en la versión~1.5.0
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
488 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
489 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
490 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
491
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
492 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
493 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
494 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
495 maneras en Windows, el desempeño y el nivel general de soporte que
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
496 ofrece Git, al momento de la escritura, está bastante atrás de
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
497 Mercurial.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
498
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
499 Mientras que el repositorio de Mercurial no requiere mantenimiento, el
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
500 repositorio de Git requiere frecuentes ``reempaquetados'' de sus metadatos.
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
501 Sin estos, el desempeño se degrada y el uso de espacio crece rápidamente. Un
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
502 servidor que contenga repositorios de Git que no sean reempacados
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
503 rigurosa y frecuentemente requerirá trabajo intenso de disco durante
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
504 las copias de seguridad, y ha habido situaciones en copias de
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
505 seguridad diaria que toman más de~24 horas como resultado. Un
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
506 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
507 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
508 ó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
509
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
510 El corazón de Git está escrito en C. Muchas órdenes de Git están
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
511 implementadas como guiones de línea de comandos o de Perl y la calidad de esos
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
512 guiones varía ampliamente. He encontrado muchas situaciones en las
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
513 cuales los guiones no tuvieron en cuenta la presencia de errores que
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
514 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
515
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
516 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
517 de Git.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
518
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
519 \subsection{CVS}
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
520
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
521 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
522 ampliamente usada en el planeta. Debido a su edad y su poca pulcritud
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
523 interna, ha sido ligeramente mantenida 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
524
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
525 Tiene una arquitectura centralizada cliente/servidor. No agrupa
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
526 cambios relacionados en consignaciones atómicas, pemitiendo que con
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
527 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
528 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
529 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
530 porción del trabajo que estaban buscando hacer. Esto afecta también
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
531 %TODO historia/historial
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
532 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
533 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
534 necesitará inspeccionar manualmente las descripciones y las marcas de
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
535 tiempo de cambio de cada fichero involucrado (esto, si usted saber
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
536 cuáles eran tales ficheros).
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
537
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
538 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
539 incluso de describir. No soporta renombramiento de ficheros o
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
540 directorios adecuadamente, facilitando el corromper un
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
541 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
542 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
543 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
544 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
545
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
546 Mercurial puede importar la historia de revisiones de CVS. De todas
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
547 maneras hay ciertas precauciones que aplican; las cuales también son
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
548 necesarias para cualquier herramienta importadora de historial de
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
549 CVS. Debido a la falta de atomicidad de cambios y el no versionamiento
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
550 de la jerarquía del sistema de ficheros, es imposible reconstruir
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
551 completamente la historia de CVS con precisión; hay cierto trabajo de
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
552 conjetura involucrado y los renombramientos tampoco se
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
553 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
554 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
555 es común que los importadores de CVS encuentren muchos problemas con
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
556 repositorios corruptos (marcas de tiempo totalmente desubicadas y
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
557 ficheros que han permanecido con candados por más de una década son
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
558 dos de los problemas menos interesantes de los que puedo retomar de mi
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
559 experiencia personal).
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
560
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
561 %TODO historia/historial
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
562 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
563 CVS.
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
564
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
565 \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
566
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
567 Perforce tiene una arquitectura centralizada cliente/servidor sin
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
568 almacenamiento de dato alguno de caché en el lado del cliente. A diferencia de
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
569 las herramientas modernas de control de revisiones, Perforce requiere
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
570 que un usuario ejecute un comando para informar al servidor acerca de
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
571 todo fichero que se vaya a editar.
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
572
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
573 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
574 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
575 docenas. Instalaciones modestamente grandes de Perforce requiere la
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
576 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
577
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
578 \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
579
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
580 Con la excepción de CVS, toda las herramientas que se han listado
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
581 anteriormente tienen fortalezas únicas que las hacen valiosas de acuerdo al
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
582 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
583 que sea la mejor en todas las situaciones.
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
584
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
585 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
586 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
587 centralizada y soporte para poner candados a ficheros.
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
588
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
589 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
590 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
591 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
592
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
593
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
594 \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
595
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
596 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
597 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
598 herramientas de control de revisiones. Por ``incremental'', quiero
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
599 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
600 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
601 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
602 inicial.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
603
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
604 A continuación presentamos las herramientas de revisiones que soporta
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
605 el comando \hgext{convert}:
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
606 \begin{itemize}
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
607 \item Subversion
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
608 \item CVS
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
609 \item Git
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
610 \item Darcs
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
611 \end{itemize}
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
612
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
613 Adicionalmente, \hgext{convert} puede exportar cambios de Mercurial
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
614 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
615 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
616 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
617
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
618 El comando \hgxcmd{conver}{convert} es sencillo de usar. Basta con
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
619 apuntarlo hacia la ruta o el URL del repositorio fuente, opcionalmente
507
56914d368af4 Finished translation of intro to spanish
Igor TAmara <igor@tamarapatino.org>
parents: 506
diff changeset
620 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
621 su trabajo. Después de la conversión inicial, basta con invocar de
608
e98a8c3afcef finished revision of intro.tex. there are some standing issues yet, though
Javier Rojas <jerojasro@devnull.li>
parents: 575
diff changeset
622 nuevo el comando para importar cambios nuevos.
501
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
623
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
624
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
625 %%% Local Variables:
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
626 %%% mode: latex
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
627 %%% TeX-master: "00book"
b05e35d641e4 Copying the files from en to es and taking intro chapter
Igor TAmara <igor@tamarapatino.org>
parents: 432
diff changeset
628 %%% End: