Git o Subversion para un usuario de TFS

He estado en TFS desde 2005 Beta 2, lo instalé, lo administré y lo usé a diario en el trabajo. Me gustaría una solución de control de fuente para mis proyectos domésticos, escrita con Visual Studio 2008 Professional, y no puedo pagar TFS.

Después de la fusión, lo más importante para mí es la integración en Visual Studio, me acabo de acostumbrar a ejecutar el control de código fuente desde dentro de un IDE para cambiar en este momento.

He hecho algunos deberes y se ha networkingucido a Git y Subversion.

Git

  • tiene gitextensions
  • popular en SO (comunidad activa para soporte)

Subversión

  • tiene AnkhSVN
  • popular en SO (comunidad activa para soporte)
  • parece que tiene una gran documentation en el libro de O'Reilly

En algún momento, probablemente intentaré ambos para ampliar mis conocimientos sobre el tema, pero hasta entonces estoy buscando algo que simplemente funcione.

  1. ¿Será que Git o SVN se sentirán más naturales para mí como usuario de TFS?
  2. ¿Hay problemas con los que me voy a encontrar?
  3. ¿Uno de los complementos IDE es más destacado y robusto?
  4. ¿Tiene uno un equipo de desarrollo más activo / receptivo?

AnhkSVN tuvo un comienzo difícil, pero ahora es una herramienta bastante agradable y estable. Entonces no creo que tenga demasiados problemas allí.

Si solo estás desarrollando por ti mismo, ve con SVN, ya que el set de herramientas es un poco mejor y más maduro (al less la última vez que lo comprobé), y DVCS probablemente sea excesivo para un solo usuario :).

Ambos sistemas están en desarrollo activo, y ambos tienen comunidades activas que los aman y apoyan a cada uno.

¿Gotchas? Sí, el model de salida se ha ido con ambos. TFS está optimizado para un model de check in / check-out siempre activo, aunque los checkouts no son necesariamente bloqueados como en VSS. Personalmente, creo que una vez que te acostumbres, preferirás SVN sobre el control del código fuente de TFS. Especialmente en escenarios mobilees donde es posible que no esté conectado al server de control de código fuente de su hogar.

Soy un poco parcial porque soy un admirador SVN admitido, pero me gustaría ir con SVN para sus necesidades. Algo como Git es más apropiado para los momentos en los que desea iniciar un proyecto en el que desea que los contribuyentes fusionen los cambios en sus cosas de forma distribuida y desconectada. Si no necesitas eso, SVN es el lugar para ti.

Solo puedo hablar con gotchas. Aunque estoy bastante contento con git, confieso que puede haber muchas sorpresas desagradables, como intentar enviar un repo con un directory de trabajo desprotegido, o el hecho de que cuando clonas un repository no lo haces siempre get todas las twigs. Subversion es un layout más maduro, orgánico y unitario. Personalmente no puedo vivir sin las funciones distribuidas que proporciona git, pero definitivamente hay less problemas con svn.

Yo votaría por Subversion, ya que creo que este será el más cercano. Solo estoy comenzando a usar TFS, pero creo que el model distribuido de GIT puede parecer más extraño y tomar más time para acostumbrarse.

Subversion sigue más del código de modificación y lo comtesting en el model que usa TFS. Git requiere que revises el código y luego lo envíes a un repository principal.

Además, GIT no se admite correctamente en Windows, mientras que Subversion sí lo es. Si esto es para uso doméstico, también le sugiero que busque muchas de las soluciones alojadas gratuitas o de bajo costo disponibles, como:

  • Github
  • Beanstock
  • distender

Si su computadora alguna vez falla, esto mantendrá su código agradable y seguro.

He estado utilizando AnhkSVN para mis proyectos en solitario desde hace un par de años y soy un gran admirador de ello. Una vez integrado con putty para que svn + ssh acceda a mi repository alojado, es lo más transparente posible.