En pocas palabras, para el desarrollo de software, una línea de base es una instantánea estática (es decir, sin cambios) de su árbol de código fuente en cualquier momento. El propósito de la línea de base es tener un punto de referencia estático para los cambios que se producen una vez que se crea la línea de base.
En el desarrollo de software, las líneas de base se crean en varios puntos planificados en el proceso de desarrollo de software. Una línea base también es útil cuando se necesita crear una «rama» para proporcionar una corrección de emergencia basada en alguna línea base de código que se entregó a un cliente. La corrección de emergencia se desarrolla de forma segura en una rama separada del desarrollo «principal». Independientemente de lo que haga en la rama, la línea de base nunca será destruida (es decir, siempre se puede volver a un punto de partida conocido).
Ejemplo:
Si estuviera trabajando para Microsoft y estuviera en el equipo de desarrollo de software «Office», se me podría asignar trabajo en el producto de software «Word». Cuando me piden que proporcione una solución a Word, mi primera pregunta sería «¿Qué línea de base (‘release’) de Word debo utilizar?». En otras palabras, tengo que configurar mi entorno de desarrollo de software para empezar con una versión concreta de nuestro producto que el cliente esté utilizando (por ejemplo, Word 2007) y añadir mi corrección a ese entorno. Para ello, utilizamos la herramienta SCM (por ejemplo, Git, ClearCase, Plastic SCM, PVCS, etc.) para crear una jerarquía de código fuente utilizando una «línea base» como punto de referencia.
Sin líneas de base, los desarrolladores de software no tendrían puntos de «referencia» estables en los que basar sus cambios y hacer un seguimiento de los distintos hitos de la entrega, lo que dificultaría saber qué versiones de código fuente deberían utilizarse en cualquier entorno de desarrollo específico.
El concepto de líneas de base también puede utilizarse en muchos otros lugares; por ejemplo, si el equipo de desarrollo de software se encuentra en la fase de «requisitos»; es decir.es decir, decidiendo lo que contendrá el producto de software, utilizamos el concepto de «línea de base de requisitos» cuando nos referimos a una instantánea de nuestra documentación de requisitos en un momento determinado.
La mayoría de las herramientas SCM pueden crear un número ilimitado de líneas de base y ramas a partir de cualquier línea de base; la limitación suele ser autoimpuesta por el proceso de desarrollo de software que el equipo de desarrollo de software elige seguir 🙂
El tema es un (poco) más complejo que esto, pero espero que esto te dé la idea correcta…