Antonio, te tomo la palabra, y me parece un debate interesante, te nombraré las mejoras de uno sobre el otro.
Estoy preparando una conferencia para hablar con GIT a otros desarrolladores , que seguramente usan SVN, y
no había caído en la cuenta que podría decir para hacerles ver el porque es más cómodo el usar uno u otro.
Prometo dejar el material libremente cuando lo tenga terminado, pero a bote pronto:
+ Puedo hacer commits, sin comprometer el repositorio central. Al ser distribuido, mi commits locales no afectan al resto de compañeros y puedo
ir viendo mis cambios sobre mi código.
+ En mi caso, me pueden entrar más de una tarea para el software en producción. Necesito solo 1 segundo de mi tiempo en partir eso en ramas separadas,
para posteriormente fusionarlo todo en la rama de producción. En este caso, puedo ir liberando partes sin tener que comprometer todo el código en el central.
* No me convence Subversion, es que no puedo dejar un cambio por la mitad, para hacer por ejemplo un arreglo en la última versión estable.
En Git, aunque tenga cambios pendientes, puedo moverlos a un nuevo branch, arreglar lo que sea que estuviera roto, y volver a poner arriba de eso los cambios que moví temporalmente.
En Subversion, sería hacer un checkout en otro directorio para hacer el arreglo ahí.
+ Otro motivo es que permite, por ejemplo, que , aparte del repositorio central, podemos hacer el programador Antonio, puede directamente trabajar con una rama que solo existe
en mi repositorio. De esta manera, podemos estar trabajando sobre algo, que el resto no tiene ni idea, pero es el mismo repositorio!
Esto es fantástico, porque puedes realizar equipos diferentes sobre el mismo proyecto.
+ Otra característica es usar el stash, no sé si existe esto en SVN, es decir, tienes el código tocando por todos lados, no lo has terminado, es incompleto, por lo tanto, no voy a hacer
un commit sobre algo que esta mal. Ahora, hay que dejarlo todo, porque se ha encontrado un bug, cambiar a una revisión y arreglarlo , y quiero volver a continuar como lo tenia.
Esto, me supone perder 1 segundo de mi tiempo , y créeme, lo he usado muchas veces, y es una gozada. Tan simple como poner git stash, esto lo mete en una especie de almacén,
cambias a la versión que necesites del código, y después vuelves donde estabas, y git stash pop.
Pero lo más me gusta, es que todo es super rápido, nada de crear directorios por cada rama/tags, porque para GIT el manejo de rama es su razón de ser
No pretendo convencer a nadie, solo comento que después de probar CVS, Subversion y GIT, es como comparar un SEAT 600, RENAULT LAGUNA y un Bugatti Veyron
Seguiré investigando motivos para convencerte , a al menos, que veas que posibilidades te brinda GIT sobre SVN