Control de Versiones: Abandona ya CVS y Sourcesafe!

Ineludible…. hay que tener repositorios de control de código. Eso de tener una carpeta compartida sin control, o avisarnos a viva voz de “espera, espera!! que estoy yo editando eso”… me temo que para los días que corren es una solemnte chapuza :_)

El otro día tuvimos un evento de lanzamiento de Visual Studio y a una pregunta de mano alzada, la respuesta fue que la mayor parte de la audiencia utilizaba sistemas de control de versiones antiguos (sourcesafe).

Supongo que será por comodidad, porque más o menos les funciona y están acostumbrados a lidiar con los errores que aparecen,pero personalmente a esa situación la considero…vagancia 🙂 Y no dudo que alguno tendrá sus motivos, pero me jugaría algo a que la mayoría ha sido por no andar mirando cómo se migra y que opciones hay 😉

De todos modos… empecemos con una pregunta… ¿Sólo quieres control de código?  A día de hoy hay un montón de herramientas alrededor del código fuente generado. Gestión de tareas alrededor del código, trazabilidad de los cambios, plantillas metodológicas, reportes sobre estas tareas y archivos, cobertura de código por las pruebas….  herramientas ALM (application lifecycle management) en definitiva. Todos estamos de acuerdo en que estas herramientas son deseables para un equipo de desarrollo. Ayudan a medir el impacto de una decisión, a prevenir situaciones incómodas en un proyecto, a justificar una u otra decisión, a estimar tiempos, etcétera… Al ser un apoyo tan importante, en mayor o menor medida todas estas herramientas van entrando en los equipos, así que, además del hecho de contar con ellas, también se vuelve de vital importancia cómo están estas herramientas conectadas entre sí. No te vale de nada tener 4 herramientas magníficas si el pegamento entre ellas es tu esfuerzo personal en hacer control+c y control+v  😉

Volviendo al control de código puro y duro, ahí va un resumen de cada una de las opciones más utilizadas en el mercado.

El cretácico: CVS y Sourcesafe.

No nos engañemos, son dos opciones totalmente desactualizadas, estas out. Fueron buenas alternativas en su momento pq no había otra cosa, pero actualmente han sido sobrepasadas de largo por otras opciones. Normalmente el cambio natural es que si estás en CVS pases a GIT y si estás en sourcesafe pases a TFS ( la migración está tirada y tienes un herramientas y docs para ayudar… http://msdn.microsoft.com/en-us/library/ms253060.aspx ).

Opciones reales de control de código: Subversion, Git y TFS

Desarrolles en lo que desarrolles TIENES que tener una de estas 3 opciones, no hay más vuelta de hoja. Si no estás entre estos 3 es porque ya las has evaluado y eres el 1% que no puede migrar por alguna razón ineludible.

SVN / Subversion. Empezó en el 2000 y fue diseñado para reemplazar al CVS, añadiendo algunas funcionalidades y corrigiendo algunos de los fallos más garrafales de éste ( renombrado, manejo de archivos binarios ). Ha sido ampliamente utilizado por la comnidad open source (apache, mono, ruby, php…). Tiene multitud de clientes disponibles para acceder al servicio. Es independiente del sistema operativo.

Tiene algún problema reconocido con el renombrado de elementos, porque los mantiene como copias así como falta de sistemas de gestión y administración.

No tener el apoyo de la comunidad de desarrollo del kernel y el hecho de que se implementasen su propio sistema (Git) le hizo mucho daño a SVN.

Git. Tiene un padrino de excepción, Linus Torvalds. EL diseño de Git esta influenciado por la experiencia de Linus en la gestión del gódigo fuente de Linux. Surgió por necesidad, cuando los desarrolladores del kernel se vieron forzados a dejar su control de código habitual, CVS y su sucesor SVN no les parecieron opciónes válidas, de modo que diseñaron y construyeron Git. Ese apoyo ha hizo que que git cobrase muchos adeptos rápidamente.

Team Foundation Server. Parte de una base diferente al resto, si bien ofrece servicios de control de código, tiene las herramientas adicionales incluidas. Parte de su funcionalidad sustituye lo que ofrecía Visual Source Safe.

OJO!! Es importante destacar que el hecho de que vengan incluidas las herramientas de ALM no significa necesariamente que haya que utilizarlas 😉  Puede instalarse TFS únicamente para realizar tareas de gestión del código fuente, de hecho creo que es el primer paso pare perderle el respeto miedo.

Tener toda la solución ALM incluida y ser un producto de pago ha hecho que en el mundo Microsoft mucha gente siga con SourceSafe por respeto a adoptar toda la solución de golpe. Es un error por desconocimiento, a ver si ahora con la versión 2010 empujando y teniendo el TFS gratis con el entorno de desarrollo cambia el panorama.

Personalmente creo que la lucha estaría entre Git y TFS. Pero… si bien Git es un producto muy bueno para el control de código, y una de las funciones de TFS es control de código, creo que no son comparables, dado que TFS tiene la ventaja de tener la solución ALM integrada (plantillas metodológicas, workitems, reportes, portal de proyecto…) y conectada con diferentes herramientas (excel, project, visual studio,… ). 

 

De modo que en 9.5/10 casos para desarrollos en .NET … instálate el TFS ya hombre!!!  😀

Más opiniones

http://consultingblogs.emc.com/jamesdawson/archive/2009/07/28/tfs-vs-svn-vs-git.aspx

http://ayende.com/Blog/archive/2007/04/29/TFS-Vs.-Open-Source-tools.aspx

http://stackoverflow.com/questions/661389/tfs-vs-svn

https://git.wiki.kernel.org/index.php/GitSvnComparsion 

 

Happy hacking!

~ds

Publicado por

16 comentarios sobre “Control de Versiones: Abandona ya CVS y Sourcesafe!”

  1. Muy buen articulo fiera! 😉
    Jejejeeee… estaba detrás de todo en las filas de arriba cuando vi la «enorme» cantidad de manos alzadas cuando se preguntó por TFS 🙂

    Para mi TFS es la solución ideal… excepto para proyectos «personales» en grupo: he sido incapaz de encontrar hosting de TFS a precios asequibles, cosa que si que he encontrado en SVN y GIT (y sencillamente por eso los uso).

    No sé si la aparición de TFS basic dará lugar a la posibilidad de que haya empresas que ofrezcan hosting de TFS a precios baratos (estoooo… en mis proyectos personales «precios baratos» significa realmente «muy baratos o gratis» :P).

    Un saludote!

  2. @eduard que al final no nos tomamos un café :_)
    Hasta la aparición del TFS basic yo miraba con ojitos a GIT para cosas personales… ahora tengo el TFS basic. Cosas como los test impactados hacen q merezca la pena para mi 😀

  3. VSS corazón, varios proyectos liberados con él, y no he tenido problemas de control de código (depende mucho del uso correcto de la herramienta).

    Por otro lado, ¿Cómo es eso de que ahora el TFS es gratis? Podrías dar mas detalles para tenerlo claro? Esto sólo para TFS Basic?
    Saludos,

  4. No he usado Git o Subversion, sino Mercurial en base a que es mucho más fácil de usar en el día a día que Git y tiene casi la misma funcionalidad (con detalles que ahora mismo no recuerdo).

    La pena de mercurial es la falta de integración que ofrece con Visual Studio. Hay 2 plug-ins y punto pelota. No ofrecen mucha documentación, pero la verdad que el uso es más que intuitivo.

    TFS lo estuve probando y la verdad que menudo pollo había que montar, comenzando con la instalación de un SQL Server. Con Git o Mercurial no tienes que montar nada de eso, son directorios, ficheros y herramientas que comparan esos ficheros. No hay más detrás y esa livianez se agradece.

  5. @Jose, tu lo has dicho «son directorios, ficheros y herramientas que comparan esos ficheros.»; TFS es bastante más ya que además brinda un Build Server, gestion de WIs (Bugs, Tareas, Reqs, etc), y todo integrado. La gran ventaja de 2010, es la facilidad de instalación, donde el instalador solo te monta el IIS o el SQL Server si no lo tienes. Vamos que a nivel Source Control, es similar, pero con varias features más ^^

    Salu2

  6. @sergio con VS2010 se ha renovado la suscripción MSDN y cualquiera de ellas incluye TFS. Cuando me refiero a «gratis» quiero decir que el producto como tal no hace falta pagarlo por otro lado. Pero hace falta la suscripción, que normalmente ya está en las empresas que trabajan con VS 🙂

    @Bruno es uno de los jedis de TFS… por mi parte.. amen a lo que diga 😀

    @Jose gracias por el apunte 🙂

  7. Fijense que personalmente tambien uso Mercurial, el cual la unica diferencia que tiene contra Git es que no tiene la funcionalidad de Commit al Index. Pero fuera de eso es muy sencillo usuarlo y tiene muchisimos plug-ins (Cosa que no existe en Git).

    Si les interesa les dejo estas ligas, en especial la del articulo de Mercurial que habla de la resistencia al cambio.

    Articulo sobre mercurial
    http://www.joelonsoftware.com/items/2010/03/17.html

    Tutorial sobre mercurial. Como no usaste subversion te brincas la seccion «Suversion re-education»
    http://hginit.com/

    TortoiseHg (o sea para Mercurial)
    http://tortoisehg.bitbucket.org/

  8. Releyendo mi comentario se podría pensar que TFS es parecido a Mercurial y ni mucho menos. TFS es el Rolls-Royce de los sistemas de colaboración de Desarrollo y Mercurial (y Git, y Subversion, y …) son simplemente CVSs (es decir, control de versiones y poco más).

    Si sólo quieres control de versiones, un repositorio de información y que muchos programadores puedan desarrollar sin pisarse el uno al otro la verdad que con un Mercurial (o Git o Subversion) te basta y sobra. Si buscas algo más (control de productividad, control de bugs, …) entonces debes montar un TFS.

    Pero eso no quiere decir, que no haya buenas herramientas en código libre para bugs, tareas, etc.. Por ejemplo tienes a Bugzilla (que ha sido desarrollada por la fundación Mozilla) donde tienes eso que buscas (aunque repito, no llega al nivel de TFS). Aquí si necesitas un Apache y un MySQL.

  9. Pues yo usé Sourcesafe y uso TFS.

    TFS es como la noche y el día en su comparación con Sourcesafe porque es mucho más.

    Muchas veces pensamos en tener simplemente un gestor de código y que TFS es demasiado grande, pero finalmente terminas utilizando muchas de sus características, quizás no todas, depende del proyecto, del equipo de trabajo, etc., pero te das cuenta de que lo que te ofrece es mucho más interesante y aporta ventajas que antes no tenías, sobre todo porque al estar integrado facilita muchísimo las cosas.

    Sobre la instalación del TFS efectivamente da un poco de guerra, pero hay una documentación muy concreta de como llevar a cabo las tareas de instalación y sus requerimientos. Si se siguen a un 99% se instala sin mayores complicaciones.

    ¡Buen artículo David!

  10. Deberías añadir Mercurial en el post, es totalmente diferente a Subversion y a TFS y es una opción muy real de control de código… tanto que se usa en CodePlex.
    Se integra desde el vs.net (2005-2010) con tortoisehg y http://visualhg.codeplex.com/ y funciona bastante bien.
    He usado SourceSafe (ouch!), SVN, TFS, y Mercurial, y de TFS me quedo con muchas cosas buenas, pero para equipos muy distribuidos y con versiones paralelas prefiero Mercurial.

  11. ODIO GIT, Y SI SOY UN VAGO, Y POR ILUMINADOS QUE LE LAMENRIAN EL TRASERO AL TAL LINUS TORVAL, HE PASADO DE LA FELICIDAD Y FACILIDAD AL INFIERNO DE LAS VERSIONES DE GIT, DEDICO MAS TIEMPO A ARREGLAR CONFLICTOS QUE HA DESARROLLAR, ODIO GIT, PELOTASSSSSS!!!!!!!

Responder a anonymous Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *