¿Qué elementos deben estar bajo un control de versiones?

11:28 0 Comments

Después de conversaciones con algunos clientes, y varios usuarios del sistemas SCM, me he dado cuenta de que en algunos casos no está claro qué elementos deben incluirse en un control de código fuente y qué elementos no. Intentaré explicarlo en las siguientes líneas.

Por regla general siempre se deberían incluir en el control de código fuente, todos recursos de un proyecto excepto los que sean resultado de sistema de compilación o de generación.

Por ejemplo, el código fuente es evidente que será un recurso a incluir en el control de versiones. ¿Pero qué ocurre con el resto de recursos de un proyecto? Imágenes, scripts de bases de datos, ficheros compilación (make, Ant ...), binarios, documentación, ...

Quizá sea más interesante centrarse en que recursos NO deberían incluirse en un control de versiones.

Todo fichero binario resultado de una compilación o de una generación (reports, etc ...) nunca debería incluirse en un control de código fuente. El entorno debería estar lo suficientemente preparado para compilar y generar todo lo necesario automáticamente (Ant, NAnt, MSBuild, make, ...)

Muchas veces, son los entornos de desarrollo los que hacen este trabajo por nosotros. Por ejemplo, Visual Studio, mediante la integración con el control de código fuente, es capaz de determinar qué elementos incluye en el control de código fuente y cuáles no.

En este proyecto de Visual Studio, las carpetas bin y obj no están incluidas en el control de código fuente.

En otros entornos de desarrollo como Eclipse, NetBeans, etc ..., se pueden definir las llamados patrones de exclude o de ignore. El entorno permite definir elementos que no serán tenidos en cuenta a la hora de añadir al control de código fuente:

Finalmente, cuando no trabajamos con nigún entorno de desarrollo, no queda más remedio que realizar esta tarea "a mano" (podemos crear un script que utilice los metacaracteres del sistema operativo *,?, para hacer los añadidos al control de versiones de forma "automatizada").

0 comentarios: