Control de versiones

Es muy común que los grupos starter de creación de videojuegos, bien sea modding o de contenido original, no puedan poseer un espacio físico para trabajar, porque no es posible (diferentes ubicaciones geográficas), cuesta dinero mantener un lugar (alabados los garajes) o cualquier otro inconveniente. Aún si es posible contar con dicho espacio es necesario que el trabajo con archivos (especialmente código fuente) sea lo mas organizado y seguro posible, adicionalmente a poder compartirse entre todo el grupo o al menos los interesados.

El control de versiones es una manera por lo general centralizada de mantener un historial coherente de todos los cambios realizados a un conjunto de archivos, lo que permite compartir, comparar y restaurar a estados anteriores dichos archivos. Esta solución es usada en la industria para proyectos medianos-grandes y en los proyectos open source, porque se adapta a las necesidades de desarrollo.

Es posible tener los repositorios de versiones en linea (accesibles a través de Internet) o en un entorno cerrado como una red local, todo lo que se necesita es un equipo servidor y para los casos particulares de cada software de Control de Versiones un cierto sistema operativo o extensión. Existen paquetes de Control de versiones como casi cualquier otro tipo de software en este momento en versión Open Source y de software propietario. Entre los mas populares están:

CVS (Concurrent Versions System): Desarrollado por GNU y distribuido bajo licencia GPL, fue durante mucho tiempo el mejor sistema Open Source para el control de versiones, pero actualmente ha venido siendo desplazado por SVN. Tanto el sistema cliente como el servidor pueden ser instalados en varios sistemas operativos ( irix, sunOS, linux, windows).

SVN (Subversion) : Fue diseñado como el sucesor de CVS, es mas robusto, rápido y soporta algunas nuevas características que su antecesor no tenia como por ejemplo que es capaz de detectar diferencias entre archivos y enviar solo los cambios (no el archivo completo), es eficiente con archivos binarios, debido a que se integra con apache tiene características avanzadas para autenticar archivos, entre otros. Existen varias versiones para cliente/servidor como TortoiseSVN, Subclipse, ViewVC. Es distribuido mediante licencia Apache/BSD.

SourceSafe (Visual SouceSafe) : Es el producto de control de versiones de Microsoft orientado hacia su producto Visual Studio. El precio de este paquete ronda los $400 – $500 dolares. Alterno a este paquete Microsoft ofrece el Team Foundation Server que además de el Control de Versiones en código ofrece un conjunto herramientas de colaboración de grupos mas completo, pero a un costo mas elevado ($500 versión CAL y $2800 versión Server).

Plastic SCM Otro software comercial que es posible obtener desde $180 dolares la versión básica en adelante. Se integra con los IDE Visual Studio y Eclipse, basado en copias locales de parte del contenido del servidor. Funciona en sistemas operativos como Windows XP, Server 2000 y 2003, Linux, MacOs y Solaris. A diferencia de otros paquetes similares tiene muchas formas gráficas de mostrar los cambios en archivos individuales y en el proyecto, el branch se hace según el patrón de trabajo (ellos recomiendan una rama por tarea) y en el merge se hace seguimiento a todas las integraciones, también hace posible el merge automático.

A parte de los paquetes de control de versiones basados en arquitectura cliente-servidor, existen sistemas distribuidos como el Aegis orientado a desarrollos basados en metodologías Extreme Programming, GNU Arch que se considera el proyecto base para los distribuidos, aunque en estos momentos ya no se encuentra en desarrollo activo y Monotone que es similar al GNU Arch, pero que se encuentra en desarrollo. La mayoría de estos sistemas se basan en una fuerte encripción de datos para permitir enviar los paquetes a través de redes no-seguras y protocolos como netsync, rsyn y aún del tipo p2p para transmitir datos entre los diferentes usuario.

Existen empresas que ofrecen el servicio de alojar repositorios como por ejemplo freepository (gratis pero con acceso web únicamente) y Hosted Projects (pago), también algunos servicios de host regular como DreamHost dan SVN y CVS para algunos de sus planes.

Compartir esta entrada

DiggReddit
  • http://www.jadengine.com Vicente

    Hola,

    Source Safe y Team Foundation Server son dos productos diferentes. TFS tiene su propio control de versiones independiente de Source Safe.

    Un saludo!

    Vicente

  • http://black-byte.com/ jotatsu

    Ah gracias por la aclaración.