Rodrigo Fuentealba escribió:

> >Que se puede hacer, se puede. Que la realidad sea distinta, es
> >otro cuento.
> 
> Mi pregunta iba más enfocada a entender otros software y
> distribuciones de Linux, si es que ofrece algún beneficio tener varios
> branches, cuando por la forma de manejarlas se crean
> incompatibilidades entre ellas. (ejemplo PHP4 v/s PHP5, Ruby 1.8.4 v/s
> 1.8.5, etc.).

Por supuesto.  En las ramas antiguas, arreglas bugs.  En las ramas de
desarrollo, creas funcionalidad nueva o reescribes grandes trozos de
codigo que pueden generar incompatibilidades con los usuarios anteriores
pero que a la larga constituyen mejor diseño o mejor rendimiento, o
ambas cosas (u otras).

Las incompatibilidades no son un bug en si mismas.  Solo son una
manifestacion de una decision que el grupo de desarrollo toma para el
futuro.  Que el SCM te permita hacerlo no es un bug, sino un "feature"
del mismo.  (Un SCM que no permita crear ramas, no sirve para nada).

-- 
Alvaro Herrera       Valdivia, Chile   ICBM: S 39º 49' 18.1", W 73º 13' 56.4"
"Estoy de acuerdo contigo en que la verdad absoluta no existe...
El problema es que la mentira sí existe y tu estás mintiendo" (G. Lama)
From [EMAIL PROTECTED]  Wed Oct 11 18:22:18 2006
From: [EMAIL PROTECTED] (Franco Catrin)
Date: Wed Oct 11 18:59:35 2006
Subject: Control de versiones (era Re: PHP - domxml_open_file())
In-Reply-To: <[EMAIL PROTECTED]>
References: <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
        <[EMAIL PROTECTED]>
Message-ID: <[EMAIL PROTECTED]>

El mié, 11-10-2006 a las 14:59 -0400, Rodrigo Fuentealba escribió:

> No necesito implementarlo, necesito entenderlo. Para mí es más lógico
> usar la última versión de un software, que ha corregido errores. Eso
> de "stable, unstable, devel" o "historical, current, next" o como se
> llame, me significa un quebradero de cabeza.

Es un poco off-topic pero el tema es interesante.

El software no tiene una linea unidimensional de desarrollo, al menos no
el software con cierto grado de complejidad.

Si fuera unidimensional, simplemente tomas la ultima version y listo.
Pero la realidad no es asi.  A medida que los requerimientos cambian hay
partes del software que necesitan cambiar radicalmente, perdiendo la
compatibilidad hacia atras, ademas que debes separar entre lo que estas
"desarrollando" y lo que estas "estabilizando".

Por ejemplo, si tienes una aplicación que se construyó con un
determinado conjunto de requerimientos (o feature set), la entregas, se
acepta y se comienza a utilizar.

Esa aplicación se va estabilizando a medida que se corrigen bugs
(version stable).  En el intertanto te piden implementar nuevas
caracteristicas y comienzas a desarrollarlas.  Mientras estas en eso te
piden un fix de un bug de la version que esta en uso... que haces??
segun tu, le mandarias la ultima version! pero esa version tiene cosas
que aun no has terminado y que ni siquiera estan probadas, ademas tiene
cambios que han eliminado cosas que se estan utilizando

Entonces no puedes tener una sola linea de desarrollo!!!!  No existe "la
ultima version" porque la ultima version no esta terminada.  Tu ultima
version que sirve tiene otro camino paralelo a esa (stable+bugfixes)

Lo que haces en esos casos es mantener una rama estable (stable) en
donde vas aplicando bugfixes, y tienes otra rama en donde estas
desarrollando (unstable/devel).  Hasta que terminas los cambios y tu
version unstable/devel se transforma en stable y estas listo para un
nuevo ciclo de bugfix en esa version y probablemente desarrollo en otra
version.


-- 
Franco Catrin L.       TUXPAN
http://www.tuxpan.com/fcatrin

Responder a