Mercurial > hgbook
comparison es/intro.tex @ 615:9da096de3c52
changed "historia" to "historial".
changed "archivo" to "fichero"
corrected some typos
author | Javier Rojas <jerojasro@devnull.li> |
---|---|
date | Sun, 18 Jan 2009 21:37:11 -0500 |
parents | 98fb436b58c1 |
children | 3f32047a3f25 |
comparison
equal
deleted
inserted
replaced
614:aa01d35ac59f | 615:9da096de3c52 |
---|---|
24 \subsection{¿Por qué usar control de revisiones?} | 24 \subsection{¿Por qué usar control de revisiones?} |
25 | 25 |
26 Hay muchas razones por las cuales usted o su equipo desearía usar una | 26 Hay muchas razones por las cuales usted o su equipo desearía usar una |
27 herramienta automática de control de revisiones para un proyecto. | 27 herramienta automática de control de revisiones para un proyecto. |
28 \begin{itemize} | 28 \begin{itemize} |
29 %TODO historia | 29 \item Llevar registro de el historial y la evolución de su proyecto, para |
30 \item Llevar registro de la historia y la evolución de su proyecto, para | |
31 evitar hacer la tarea manualmente. Por cada cambio, tendrá una | 30 evitar hacer la tarea manualmente. Por cada cambio, tendrá una |
32 bitácora de \emph{quién} lo hizo; \emph{por qué} se hizo; | 31 bitácora de \emph{quién} lo hizo; \emph{por qué} se hizo; |
33 \emph{cuándo} se hizo; y de \emph{qué} se trataba el cambio. | 32 \emph{cuándo} se hizo; y de \emph{qué} se trataba el cambio. |
34 \item Cuando trabaja con más personas, los programas de control de | 33 \item Cuando trabaja con más personas, los programas de control de |
35 revisiones facilitan la colaboración. Por ejemplo, cuando varias | 34 revisiones facilitan la colaboración. Por ejemplo, cuando varias |
134 Brian Berliner tomó los scripts originales de Grune y los reescribió | 133 Brian Berliner tomó los scripts originales de Grune y los reescribió |
135 en~C, publicando en 1989 el código sobre el cual se ha | 134 en~C, publicando en 1989 el código sobre el cual se ha |
136 desarrollado la versión moderna de CVS. CVS adquirió posteriormente | 135 desarrollado la versión moderna de CVS. CVS adquirió posteriormente |
137 la habilidad de operar sobre una conexión de red, dotándolo de una | 136 la habilidad de operar sobre una conexión de red, dotándolo de una |
138 arquitectura, cliente/servidor. La arquitectura de CVS es | 137 arquitectura, cliente/servidor. La arquitectura de CVS es |
139 %TODO historia/historial | 138 centralizada; el historial del proyecto está únicamente en el |
140 centralizada; La historia del proyecto está únicamente en el | |
141 repositorio central. Los espacios de trabajo de los clientes | 139 repositorio central. Los espacios de trabajo de los clientes |
142 contienen únicamente copias recientes de las versiones de los | 140 contienen únicamente copias recientes de las versiones de los |
143 ficheros, y pocos metadatos para indicar dónde está el servidor. CVS | 141 ficheros, y pocos metadatos para indicar dónde está el servidor. CVS |
144 ha tenido un éxito enorme; Es probablemente el sistema de control de | 142 ha tenido un éxito enorme; Es probablemente el sistema de control de |
145 revisiones más extendido del planeta. | 143 revisiones más extendido del planeta. |
146 | 144 |
147 A comienzos de los noventa~(1990s), Sun MicroSystems desarrollo un | 145 A comienzos de los noventa~(1990s), Sun MicroSystems desarrollo un |
148 temprano sistema distribuido de control de revisiones llamado | 146 temprano sistema distribuido de control de revisiones llamado |
149 TeamWare. | 147 TeamWare. |
150 Un espacio de trabajo TeamWare contiene una copia completa de la | 148 Un espacio de trabajo TeamWare contiene una copia completa de el |
151 historia del proyecto. TeamWare no tiene la noción de repositorio | 149 historial del proyecto. TeamWare no tiene la noción de repositorio |
152 central. (CVS se basaba en RCS para el almacenamiento de su historia; | 150 central. (CVS se basaba en RCS para el almacenamiento de su historial; |
153 TeamWare usaba SCCS.) | 151 TeamWare usaba SCCS.) |
154 | 152 |
155 A medida que avanzaba la decada de los noventa, se empezó a | 153 A medida que avanzaba la decada de los noventa, se empezó a |
156 evidenciar los problemas de CVS. Almacena cambios simultáneos a muchos | 154 evidenciar los problemas de CVS. Almacena cambios simultáneos a muchos |
157 ficheros de forma individual, en lugar de agruparlos como una | 155 ficheros de forma individual, en lugar de agruparlos como una |
263 | 261 |
264 Si descubre un proyecto de código abierto y decide que desea comenzar | 262 Si descubre un proyecto de código abierto y decide que desea comenzar |
265 a trabajar en él, y ese proyecto usa una herramienta de control | 263 a trabajar en él, y ese proyecto usa una herramienta de control |
266 distribuido de revisiones, usted es de inmediato un par con la gente que se | 264 distribuido de revisiones, usted es de inmediato un par con la gente que se |
267 considera el ``alma'' del proyecto. Si ellos publican sus | 265 considera el ``alma'' del proyecto. Si ellos publican sus |
268 %TODO historia/historial | 266 repositorios, usted puede copiar inmediatamente el historial del proyecto, |
269 repositorios, usted puede copiar inmediatamente la historia del proyecto, | |
270 hacer cambios y guardar su trabajo, usando las mismas herramientas de | 267 hacer cambios y guardar su trabajo, usando las mismas herramientas de |
271 la misma forma que ellos. En contraste, con una herramienta | 268 la misma forma que ellos. En contraste, con una herramienta |
272 centralizada, usted debe usar el programa en un modo ``sólo lectura'' a | 269 centralizada, usted debe usar el programa en un modo ``sólo lectura'' a |
273 menos que alguien le otorgue permisos para consignar cambios en el | 270 menos que alguien le otorgue permisos para consignar cambios en el |
274 repositorio central. Hasta entonces, no podrá almacenar sus cambios y | 271 repositorio central. Hasta entonces, no podrá almacenar sus cambios y |
287 proyecto y toma su propio rumbo. | 284 proyecto y toma su propio rumbo. |
288 | 285 |
289 En algunas ocasiones los líderes de las bifurcaciones reconcilian sus | 286 En algunas ocasiones los líderes de las bifurcaciones reconcilian sus |
290 diferencias. Con un sistema centralizado de control de revisiones, el | 287 diferencias. Con un sistema centralizado de control de revisiones, el |
291 proceso \emph{técnico} de reconciliarse es doloroso, y se hace de | 288 proceso \emph{técnico} de reconciliarse es doloroso, y se hace de |
292 %TODO historia/historial | 289 forma muy manual. Usted tiene que decidir qué historial de revisiones va a |
293 forma muy manual. Usted tiene que decidir qué historia de revisiones va a | |
294 ``ganar'', e injertar los cambios del otro equipo en el árbol de alguna | 290 ``ganar'', e injertar los cambios del otro equipo en el árbol de alguna |
295 %TODO historia/historial | |
296 manera. Con esto usualmente se pierde algo o todo del historial de la | 291 manera. Con esto usualmente se pierde algo o todo del historial de la |
297 revisión de alguna de las partes. | 292 revisión de alguna de las partes. |
298 | 293 |
299 Lo que las herramientas distribuidas hacen con respecto a las | 294 Lo que las herramientas distribuidas hacen con respecto a las |
300 bifurcaciones, es que las bifurcaciones son la \emph{única} forma de | 295 bifurcaciones, es que las bifurcaciones son la \emph{única} forma de |
321 | 316 |
322 Algunas personas se resisten a las herramientas distribuidas porque | 317 Algunas personas se resisten a las herramientas distribuidas porque |
323 desean mantener control completo sobre sus proyectos, y creen que las | 318 desean mantener control completo sobre sus proyectos, y creen que las |
324 herramientas centralizadas les dan tal control. En todo caso, si este | 319 herramientas centralizadas les dan tal control. En todo caso, si este |
325 es su parecer, y usted publica sus repositorios de CVS o Subversion, hay | 320 es su parecer, y usted publica sus repositorios de CVS o Subversion, hay |
326 muchas herramientas disponibles que pueden obtener la historia | 321 muchas herramientas disponibles que pueden obtener el historial |
327 completa (aunque sea lentamente) y recrearla en otro sitio que usted no | 322 completo (aunque sea lentamente) y recrearlo en otro sitio que usted no |
328 controla. Siendo así un control ilusorio, puesto que está impidiendo | 323 controla. Siendo así un control ilusorio, puesto que está impidiendo |
329 la fluidez de colaboración en lugar de prevenir que alguien se sienta | 324 la fluidez de colaboración en lugar de prevenir que alguien se sienta |
330 impulsado a obtener una copia y hacer una bifurcación con su historia. | 325 impulsado a obtener una copia y hacer una bifurcación con su historial. |
331 | 326 |
332 \subsection{Ventajas para proyectos comerciales} | 327 \subsection{Ventajas para proyectos comerciales} |
333 | 328 |
334 Muchos proyectos comerciales tienen grupos de trabajo distribuidos | 329 Muchos proyectos comerciales tienen grupos de trabajo distribuidos |
335 alrededor del globo. Quienes contribuyen y están lejos de un | 330 alrededor del globo. Quienes contribuyen y están lejos de un |
355 | 350 |
356 Si tiene un empleado en el campo, se beneficiará grandemente de un | 351 Si tiene un empleado en el campo, se beneficiará grandemente de un |
357 sistema distribuido de control de versiones al resolver problemas en | 352 sistema distribuido de control de versiones al resolver problemas en |
358 el sitio del cliente. La herramienta le permitirá generar | 353 el sitio del cliente. La herramienta le permitirá generar |
359 construcciones a la medida, probar diferentes arreglos de forma | 354 construcciones a la medida, probar diferentes arreglos de forma |
360 independiente y buscar de forma eficiente las fuentes de fallos en la | 355 independiente y buscar de forma eficiente las fuentes de fallos en el |
361 historia y regresiones en los ambientes de los clientes, todo sin | 356 historial y regresiones en los ambientes de los clientes, todo sin |
362 necesidad de conectarse al servidor de su compañía. | 357 necesidad de conectarse al servidor de su compañía. |
363 | 358 |
364 \section{¿Por qué elegir Mercurial?} | 359 \section{¿Por qué elegir Mercurial?} |
365 | 360 |
366 Mercurial cuenta con un conjunto único de propiedades que lo hacen | 361 Mercurial cuenta con un conjunto único de propiedades que lo hacen |
380 con que siga unas pocas reglas generales en lugar de un montón de | 375 con que siga unas pocas reglas generales en lugar de un montón de |
381 excepciones. | 376 excepciones. |
382 | 377 |
383 En un proyecto pequeño, usted puede comenzar a trabajar con Mercurial en | 378 En un proyecto pequeño, usted puede comenzar a trabajar con Mercurial en |
384 pocos momentos. Crear nuevos cambios y ramas, transferir cambios (localmente | 379 pocos momentos. Crear nuevos cambios y ramas, transferir cambios (localmente |
385 o por la red); y las operaciones relacionadas con el estado y la | 380 o por la red); y las operaciones relacionadas con el estado y el |
386 historia son rápidas. Mercurial buscar ser ligero y no incomodar en su | 381 historial son rápidas. Mercurial buscar ser ligero y no incomodar en su |
387 camino combinando poca sobrecarga cognitiva con operaciones | 382 camino combinando poca sobrecarga cognitiva con operaciones |
388 asombrosamente rápidas. | 383 asombrosamente rápidas. |
389 | 384 |
390 La utilidad de Mercurial no se limita a proyectos pequeños: está | 385 La utilidad de Mercurial no se limita a proyectos pequeños: está |
391 siendo usado por proyectos con centenas de miles de contribuyentes, | 386 siendo usado por proyectos con centenas de miles de contribuyentes, |
442 operaciones, | 437 operaciones, |
443 tales como encontrar ficheros modificados (\texttt{status}) y desplegar | 438 tales como encontrar ficheros modificados (\texttt{status}) y desplegar |
444 información frente a la revisión actual (\texttt{diff}). Como | 439 información frente a la revisión actual (\texttt{diff}). Como |
445 resultado, la copia de trabajo de Subversion termina siendo del mismo | 440 resultado, la copia de trabajo de Subversion termina siendo del mismo |
446 tamaño o más grande que un repositorio de Mercurial y el directorio de | 441 tamaño o más grande que un repositorio de Mercurial y el directorio de |
447 trabajo, a pesar de que el repositorio de Mercurial contiene la | 442 trabajo, a pesar de que el repositorio de Mercurial contiene el |
448 historia completa del proyecto. | 443 historial completo del proyecto. |
449 | 444 |
450 Subversion tiene soporte amplio de otras herramientas. Mercurial por | 445 Subversion tiene soporte amplio de otras herramientas. Mercurial por |
451 ahora está bastante atrás en este aspecto. Esta diferencia está | 446 ahora está bastante atrás en este aspecto. Esta diferencia está |
452 disminuyendo, y algunas de las herramientas GUI\ndt{Interfaz de | 447 disminuyendo, y algunas de las herramientas GUI\ndt{Interfaz de |
453 Usuario Gráfica}, eclipsan sus equivalentes de Subversion. Al igual | 448 Usuario Gráfica}, eclipsan sus equivalentes de Subversion. Al igual |
454 que Mercurial, Subversion tiene un excelente manual de usuario. | 449 que Mercurial, Subversion tiene un excelente manual de usuario. |
455 | 450 |
456 Dado que Subversion no almacena la historia de revisiones en el | 451 Dado que Subversion no almacena el historial de revisiones en el |
457 cliente, es muy bueno para administrar proyectos que tienen muchos | 452 cliente, es muy bueno para administrar proyectos que tienen muchos |
458 ficheros binarios grandes y opacos. Si consigna cincuenta revisiones | 453 ficheros binarios grandes y opacos. Si consigna cincuenta revisiones |
459 de un fichero de 10MB que no es comprimible, el esapacio en el cliente | 454 de un fichero de 10MB que no es comprimible, el esapacio en el cliente |
460 de Subversion se mantendrá constante mientras que el espacio usado por | 455 de Subversion se mantendrá constante mientras que el espacio usado por |
461 cualquier Sistema Distribuido de Control de Revisiones crecerá | 456 cualquier Sistema Distribuido de Control de Revisiones crecerá |
467 para permitirle al usuario poner una cerradura a un fichero, de modo | 462 para permitirle al usuario poner una cerradura a un fichero, de modo |
468 que tenga un permiso exclusivo para consignar cambios, puede ser una | 463 que tenga un permiso exclusivo para consignar cambios, puede ser una |
469 ventaja significativa en un proyecto donde los ficheros binarios sean | 464 ventaja significativa en un proyecto donde los ficheros binarios sean |
470 usados ampliamente. | 465 usados ampliamente. |
471 | 466 |
472 Mercurial puede importar la historia de revisiones de un repositorio | 467 Mercurial puede importar el historial de revisiones de un repositorio |
473 de Subversion. También puede exportar historia de revisiones a un | 468 de Subversion. También puede exportar el historial de revisiones a un |
474 repositorio de Subversion. De esta forma es sencillo ``dar un | 469 repositorio de Subversion. De esta forma es sencillo ``dar un |
475 vistazo'' y usar Mercurial y Subversion en paralelo antes de decidirse | 470 vistazo'' y usar Mercurial y Subversion en paralelo antes de decidirse |
476 a dar el paso. La conversión de la historia es incremental, de modo | 471 a dar el paso. La conversión de el historial es incremental, de modo |
477 que puede aplicar una conversión inicial, y después conversiones | 472 que puede aplicar una conversión inicial, y después conversiones |
478 pequeñas y adicionales posteriormente para traer nuevos cambios. | 473 pequeñas y adicionales posteriormente para traer nuevos cambios. |
479 | 474 |
480 \subsection{Git} | 475 \subsection{Git} |
481 | 476 |
526 cambios relacionados en consignaciones atómicas, pemitiendo que con | 521 cambios relacionados en consignaciones atómicas, pemitiendo que con |
527 facilidad la gente ``rompa la construcción'': una persona puede | 522 facilidad la gente ``rompa la construcción'': una persona puede |
528 consignar exitósamente parte del cambio y estar bloqueada por la | 523 consignar exitósamente parte del cambio y estar bloqueada por la |
529 necesidad de una mezcla, forzando a otras personas a ver solamente una | 524 necesidad de una mezcla, forzando a otras personas a ver solamente una |
530 porción del trabajo que estaban buscando hacer. Esto afecta también | 525 porción del trabajo que estaban buscando hacer. Esto afecta también |
531 %TODO historia/historial | 526 la forma como usted trabaja con el historial del proyecto. Si quiere |
532 la forma como usted trabaja con la historia del proyecto. Si quiere | |
533 ver todas las modificaciones que alguien hizo como parte de una tarea, | 527 ver todas las modificaciones que alguien hizo como parte de una tarea, |
534 necesitará inspeccionar manualmente las descripciones y las marcas de | 528 necesitará inspeccionar manualmente las descripciones y las marcas de |
535 tiempo de cambio de cada fichero involucrado (esto, si usted saber | 529 tiempo de cambio de cada fichero involucrado (esto, si usted saber |
536 cuáles eran tales ficheros). | 530 cuáles eran tales ficheros). |
537 | 531 |
541 repositorio. Casi no tiene chequeo de consistencia interna, por lo | 535 repositorio. Casi no tiene chequeo de consistencia interna, por lo |
542 tanto es casi imposible identificar por que o cómo se corrompió un | 536 tanto es casi imposible identificar por que o cómo se corrompió un |
543 repositorio. Yo no recomendaría un repositorio de CVS para proyecto | 537 repositorio. Yo no recomendaría un repositorio de CVS para proyecto |
544 alguno, ni existente ni nuevo. | 538 alguno, ni existente ni nuevo. |
545 | 539 |
546 Mercurial puede importar la historia de revisiones de CVS. De todas | 540 Mercurial puede importar el historial de revisiones de CVS. De todas |
547 maneras hay ciertas precauciones que aplican; las cuales también son | 541 maneras hay ciertas precauciones que aplican; las cuales también son |
548 necesarias para cualquier herramienta importadora de historial de | 542 necesarias para cualquier herramienta importadora de historial de |
549 CVS. Debido a la falta de atomicidad de cambios y el no versionamiento | 543 CVS. Debido a la falta de atomicidad de cambios y el no versionamiento |
550 de la jerarquía del sistema de ficheros, es imposible reconstruir | 544 de la jerarquía del sistema de ficheros, es imposible reconstruir |
551 completamente la historia de CVS con precisión; hay cierto trabajo de | 545 completamente el historial de CVS con precisión; hay cierto trabajo de |
552 conjetura involucrado y los renombramientos tampoco se | 546 conjetura involucrado y los renombramientos tampoco se |
553 mostrarán. Debido a que gran parte de la administración avanzada de | 547 mostrarán. Debido a que gran parte de la administración avanzada de |
554 CVS tiene que hacerse manualmente y por lo tanto es proclive al error, | 548 CVS tiene que hacerse manualmente y por lo tanto es proclive al error, |
555 es común que los importadores de CVS encuentren muchos problemas con | 549 es común que los importadores de CVS encuentren muchos problemas con |
556 repositorios corruptos (marcas de tiempo totalmente desubicadas y | 550 repositorios corruptos (marcas de tiempo totalmente desubicadas y |
557 ficheros que han permanecido con candados por más de una década son | 551 ficheros que han permanecido con candados por más de una década son |
558 dos de los problemas menos interesantes de los que puedo retomar de mi | 552 dos de los problemas menos interesantes de los que puedo retomar de mi |
559 experiencia personal). | 553 experiencia personal). |
560 | 554 |
561 %TODO historia/historial | 555 Mercurial puede importar el historial de revisiones de un repositorio |
562 Mercurial puede importar la historia de revisiones de un repositorio | |
563 CVS. | 556 CVS. |
564 | 557 |
565 \subsection{Herramientas comerciales} | 558 \subsection{Herramientas comerciales} |
566 | 559 |
567 Perforce tiene una arquitectura centralizada cliente/servidor sin | 560 Perforce tiene una arquitectura centralizada cliente/servidor sin |
594 \section{Migrar de otra herramienta hacia Mercurial} | 587 \section{Migrar de otra herramienta hacia Mercurial} |
595 | 588 |
596 Mercurial viene con una extensión llamada \hgext{convert}, que puede | 589 Mercurial viene con una extensión llamada \hgext{convert}, que puede |
597 importar historiales de revisiones de forma incremental desde varias | 590 importar historiales de revisiones de forma incremental desde varias |
598 herramientas de control de revisiones. Por ``incremental'', quiero | 591 herramientas de control de revisiones. Por ``incremental'', quiero |
599 decir que puede migrar toda la historia de un proyecto en una primera | 592 decir que puede migrar toda el historial de un proyecto en una primera |
600 instancia y después volver a ejecutar la migración posteriormente para | 593 instancia y después volver a ejecutar la migración posteriormente para |
601 obtener los nuevos cambios que han sucedido después de la migración | 594 obtener los nuevos cambios que han sucedido después de la migración |
602 inicial. | 595 inicial. |
603 | 596 |
604 A continuación presentamos las herramientas de revisiones que soporta | 597 A continuación presentamos las herramientas de revisiones que soporta |