Mercurial > hgbook
comparison es/mq-collab.tex @ 580:6cf30b3ed48f
translated some paragraphs
author | Javier Rojas <jerojasro@devnull.li> |
---|---|
date | Mon, 05 Jan 2009 00:18:31 -0500 |
parents | 7e52f0cc4516 |
children | 039ed6f5935b |
comparison
equal
deleted
inserted
replaced
579:4e2ebef2c9a4 | 580:6cf30b3ed48f |
---|---|
1 \chapter{Advanced uses of Mercurial Queues} | 1 \chapter{Usos avanzados de las Colas de Mercurial} |
2 \label{chap:mq-collab} | 2 \label{chap:mq-collab} |
3 | 3 |
4 While it's easy to pick up straightforward uses of Mercurial Queues, | 4 Auunque es fácil aprender los usos más directos de las Colas de |
5 use of a little discipline and some of MQ's less frequently used | 5 Mercurial, tener algo de disciplina junto con algunas de las |
6 capabilities makes it possible to work in complicated development | 6 capacidadees menos usadas de MQ hace posible trabajar en entornos de |
7 environments. | 7 desarrollo complejos. |
8 | 8 |
9 In this chapter, I will use as an example a technique I have used to | 9 En este capítulo, usaré como ejemplo una técnica que he usado para |
10 manage the development of an Infiniband device driver for the Linux | 10 administrar el desarrollo de un controlador de dispositivo Infiniband |
11 kernel. The driver in question is large (at least as drivers go), | 11 para el kernel de Linux. El controlador en cuestión es grande |
12 with 25,000 lines of code spread across 35 source files. It is | 12 (al menos en lo que se refiere a controladores), con 25,000 líneas de |
13 maintained by a small team of developers. | 13 código esparcidas en 35 ficheros fuente. Es mantenido por un equipo |
14 | 14 pequeño de desarrolladores. |
15 While much of the material in this chapter is specific to Linux, the | 15 |
16 same principles apply to any code base for which you're not the | 16 Aunque mucho del material en este capítulo es específico de Linux, los |
17 primary owner, and upon which you need to do a lot of development. | 17 mismos principios aplican a cualquier base de código de la que usted |
18 | 18 no sea el propietario principal, y sobre la que usted necesita hacer |
19 \section{The problem of many targets} | 19 un montón de desarrollo. |
20 | 20 |
21 The Linux kernel changes rapidly, and has never been internally | 21 \section{El problema de múltiples objetivos} |
22 stable; developers frequently make drastic changes between releases. | 22 |
23 This means that a version of the driver that works well with a | 23 El kernel de Linux cambia con rapidez, y nunca ha sido estable |
24 particular released version of the kernel will not even \emph{compile} | 24 internamente; los desarrolladores hacen cambios drásticos entre |
25 correctly against, typically, any other version. | 25 %TODO no encontré una traducción adecuada para "release". Por eso el |
26 | 26 %cambio |
27 To maintain a driver, we have to keep a number of distinct versions of | 27 versiones frecuentemente. Esto significa que una versión del |
28 Linux in mind. | 28 controlador que funciona bien con una versión particular del kernel ni |
29 siquiera \emph{compilará} correctamente contra, típicamente, cualquier | |
30 otra versión. | |
31 | |
32 Para mantener un controlador, debemos tener en cuenta una buena | |
33 cantidad de versiones de Linux en mente. | |
29 \begin{itemize} | 34 \begin{itemize} |
30 \item One target is the main Linux kernel development tree. | 35 \item Un objetivo es el árbol de desarrollo principal del kernel de |
31 Maintenance of the code is in this case partly shared by other | 36 Linux. En este caso el mantenimiento del código es compartido |
32 developers in the kernel community, who make ``drive-by'' | 37 parcialmente por otros desarrolladores en la comunidad del kernel, |
33 modifications to the driver as they develop and refine kernel | 38 %TODO drive-by. |
34 subsystems. | 39 quienes hacen modificaciones ``de-afán'' al controlador a medida que |
35 \item We also maintain a number of ``backports'' to older versions of | 40 desarrollan y refinan subsistemas en el kernel. |
36 the Linux kernel, to support the needs of customers who are running | 41 %TODO backport |
37 older Linux distributions that do not incorporate our drivers. (To | 42 \item También mantenemos algunos ``backports'' para versiones antiguas |
38 \emph{backport} a piece of code is to modify it to work in an older | 43 del kernel de Linux, para dar soporte a las necesidades de los |
39 version of its target environment than the version it was developed | 44 clientes que están corriendo versiones antiguas de Linux que no |
40 for.) | 45 incorporan nuestros controladores. (Hacer el \emph{backport} de un |
41 \item Finally, we make software releases on a schedule that is | 46 pedazo de código es modificarlo para que trabaje en una versión |
42 necessarily not aligned with those used by Linux distributors and | 47 de su entorno objetivo anterior a aquella para la cual fue escrito.) |
43 kernel developers, so that we can deliver new features to customers | 48 \item Finalmente, nosotros liberamos nuestro software de acuerdo a un |
44 without forcing them to upgrade their entire kernels or | 49 cronograma que no necesariamente está alineado con el que usan los |
45 distributions. | 50 distribuidores de Linux y los desarrolladores del kernel, así que |
51 podemos entregar nuevas características a los clientes sin forzarlos | |
52 a actualizar kernels completos o distribuciones. | |
46 \end{itemize} | 53 \end{itemize} |
47 | 54 |
48 \subsection{Tempting approaches that don't work well} | 55 \subsection{Aproximaciones tentadoras que no funcionan adecuadamente} |
49 | 56 |
50 There are two ``standard'' ways to maintain a piece of software that | 57 Hay dos maneras estándar de mantener una porción de software que debe |
51 has to target many different environments. | 58 funcionar en muchos entornos diferentes. |
52 | 59 |
53 The first is to maintain a number of branches, each intended for a | 60 The first is to maintain a number of branches, each intended for a |
54 single target. The trouble with this approach is that you must | 61 single target. The trouble with this approach is that you must |
55 maintain iron discipline in the flow of changes between repositories. | 62 maintain iron discipline in the flow of changes between repositories. |
56 A new feature or bug fix must start life in a ``pristine'' repository, | 63 A new feature or bug fix must start life in a ``pristine'' repository, |