Hola!
Este post es un poco para hacer un balance y sacar algunas conclusiones de todo lo que hemos hecho.
Bueno, como les había comentado, estuve con bastante trabajo, y aún sigo, aunque el ritmo ya es menor.
Desde abril estoy gestionando y ayudando con la migración de repositorios CVS, SVN (Subversion) y VSS (SourceSafe) a Plastic en mi sitio de trabajo, ya que las ventajas de trabajar con esta herramienta de SCM son evidentes, como habrán podido comprobar durante las prácticas en el grupo, en general hemos bajado los tiempos de integración, en el caso de SourceSafe, de más de 2 hs a 10 minutos. También ayudé a implementar y normalizar la forma de trabajo en ramas.
De cara a lo que estuvimos haciendo aquí, la idea principal era por un lado permitir que aquellos que nunca han trabajado con una herramienta SCM puedan tomar contacto con la misma, de forma que la puedan utilizar en su trabajo diario para trabajar tanto en solitario como en grupo, y por el otro lado era que quienes ya trabajan con herramientas SCM tengan la oportunidad de conocer Plastic y así poder comparar la forma de trabajar de otros SCM con este, ya que desde que tuve la ocasión de conocerlo y probarlo, vi un potencial enorme de lo que se podía hacer y por eso, junto a que permite ser usado de forma gratuita hasta 15 personas, no quería dejar pasar la oportunidad de mostrarlo al grupo.
Durante las prácticas hemos visto todos los temas importantes de trabajar con control de código fuente: checkin, checkout, merge, merge sustractivo, ramas, resolución de conflictos manuales y automáticos, etc. Creo que con esto ya tienen las bases para seguir por vuestra cuenta. Si bien hay varias cosas más por conocer de este SCM, como la potente línea de comandos "CM" que permite automatizar scripts, dejo eso para que cada uno lo vea e investigue por su cuenta, que no es complejo.
Espero que esto haya ayudado, al menos, a algunos de ustedes a poder comenzar a trabajar con un SCM como parte de la rutina diaria de la programación.
Creo que ya no hay excusa para no hacerlo y que quienes han probado, habrán podido comprobar el tiempo que se puede ganar (o dejar de perder) respecto del antiguo sistema de copiar en zip o en distintos directorios (...no hay comparación:) y que con un SCM tienen estas ventajas:
- Tener Control de las versiones de la aplicación
- Tener Control de los parches
- Tener Versiones en paralelo y poder trabajarlas por separado usando ramas
- Tener ramas por tarea (o por funcionalidad)
- Poder trabajar de forma individual o en grupo de forma similar
- Poder comparar versiones de una aplicación o incluso poder comparar versiones de un archivo (Diff)
- Poder mezclar los cambios propios de la rama de trabajo en la principal o en la rama de release
- Poder resolver los conflictos manuales o automáticos, teniendo el control de qué se sube
- Poder deshacer cambios, tanto borrando changesets como usando el merge sustractivo
- Tener un backup del código fuente
- Poder sincronizar un repositorio con otros, tanto internos (otros Plastic) como externos (GitHub, BitBucket, etc)
- Poder exportar el repositorio en el formato abierto de Git (fast export / fast import)
- No estar atado a una tecnología propietaria
- Poder usarlo con cualquier lenguaje de programación (Incluyendo FoxPro :-)
En fin, creo que tienen la idea de todo lo que se gana.
Si tienen alguna duda o alguna inquietud, no duden en preguntar por aquí, que seguramente habrá más de una respuesta.
Si tienen alguna anécdota o han implementado un SCM en su dia a dia, me gustaría que comenten sus experiencias.
Saludos!