versiones tortoise subversion definicion control svn git version-control

tortoise - ¿Por qué debería usar git en lugar de svn?



svn windows (9)

Utilizo para trabajar con Visual Studio + C #, y he estado usando svn antes, pero no actualmente, así que quiero poner mi código nuevamente en el control de la fuente.

Recientemente escuché sobre git, y he estado leyendo la wiki de git y this y this , y he leído que no hay clientes de interfaz gráfica para GIT como TortoiseSvn, o al menos, no los he encontrado.

Mis preguntas son:

  • ¿Cuáles son las ventajas de git over svn?
  • ¿Dónde puedo encontrar interfaces fáciles de usar para git?
  • ¿Hay algún complemento (ANKH) para que git trabaje con Visual Studio?
  • ¿Dónde más puedo encontrar recursos para comenzar con git?

¿Cuáles son las ventajas de git over svn?

Antes de decidir si usar Git o SVN, asegúrese de comprender completamente sus requisitos y comprender qué es lo que Git y SVN ofrecen y admiten. Desafortunadamente, hay muchos sesgos injustos en el tema de Git y SVN, según descubrí recientemente en svnvsgit.com .

Permítanme citar uno de los contestadores aquí (@ Konstantinos):

Las ventajas de GIT sobre SVN se discuten una y otra vez, por lo que no es algo que alguien deba elaborar aquí.

Esta pregunta fue hecha hace casi 7 años. Pero el tema sigue siendo un poco caliente o cálido al menos. Recientemente me encontré con la página svnvsgit.com y me sentí un poco frustrado al descubrir que, de hecho, la mayoría de las comparaciones y pruebas de Git y SVN en Internet se basan en una inteligencia extraña como la del repositorio de Mozilla. muy grande en SVN. Esto simplemente no es cierto y la mayoría de los puntos descritos en this son injustos o incorrectos.

O aquí está una cita de @DavidSchmitt (uno de los contestadores):

Git vs. SVN: git rastrea el estado, la historia y la integridad del árbol fuente. SVN solo rastrea el estado.

SVN y Git aseguran la integridad de los datos (SVN lo hace mucho mejor IMO). Tanto el historial de seguimiento como el estado.

La única diferencia real entre SVN y Git es que Subversion está centralizada y Git está descentralizada. Subversion admite algunos conceptos, flujos de trabajo y casos que Git no puede admitir por diseño. Al mismo tiempo, la naturaleza desconectada de Git puede ser un gran beneficio para alguien.

¡Elegir sabiamente!


Aquí mis experiencias personales con git vs. svn:

  • Git vs. SVN: git rastrea el estado, la historia y la integridad del árbol fuente. SVN solo rastrea el estado.

Especialmente cuando se fusiona, el uso extensivo de git de la historia almacenada (a través de renombrados y fusiones) resulta útil para tomar decisiones mucho mejor informadas que conducen a menos conflictos.

Tener una cadena de integridad completa y criptográficamente verificable a través del repositorio ayuda a generar confianza en los sistemas subyacentes o detectar cuándo fallan. En el lado negativo, puede ser complicado crear parches "limpios". Tener un flujo de trabajo adecuado ayuda.

Finalmente, git funciona localmente de manera predeterminada, lo que le da un impulso increíblemente grande en contraste con SVN, que debe ir al repositorio central para casi cualquier operación.

  • Software: vea esta pregunta , hay varias GUI independientes para trabajar con el repositorio, navegadores de historial y extensiones de shell.

  • Studio Plugin: GitExtensions tiene un plugin de Visual Studio 2005 y 2008.

  • Documentación: comience con el Manual de usuario de GIT . Hay más enlaces a tutoriales y libros en git-scm.com .


Como otros habían señalado, git es más rápido y más estable. Se distribuye vs centralizado, en svn si juegas con el repositorio central lo pierdes todo. En mi experiencia, hay menos problemas cuando fusionas código con git.

Solo hay una cosa que no me gusta. Es que no puedes descargar una parte de un repositorio con git. Si solo necesita una carpeta, deberá descargar todo el repositorio. Puedes hacer esto con svn.


Git parece ser ahora el estándar de la industria para el control de versiones, reemplazando a SVN y CVS, etc. Git desde la perspectiva del usuario da lugar a más funciones y ayuda a administrar los cambios de código mejor que SVN. También es más fácil configurar repositorios gracias a sitios como GitHub y BitBucket lugar de necesitar tu propio servidor.

Git es fácil de ejecutar en la línea de comandos (muchos más comandos helfpul que SVN). También hay una gama de buenos programas de GUI que ayudan a proporcionar una buena interfaz para su repositorio Git, GitHub Desktop y SourceTree para nombrar un par.


Hay una pregunta relevante sobre herramientas para GIT similar a la tortuga.

Las ventajas de GIT sobre SVN se discuten over y this vez, this lo que no es algo que alguien deba elaborar aquí.

Y en cuanto a un plugin de Visual Studio, no creo que exista, ni existirá, desde hace bastante tiempo. Sin embargo, tal vez me falta algo aquí.

Pruebe here una buena guía sobre cómo comenzar a usar git en Windows

En cuanto a mi gusto y visión completamente personales, continúo apegándome a svn en función de mis requisitos personales de lo que quiero de mi control de versión y considero que svn se encuentra en un nivel completamente diferente de herramienta y soporte de la comunidad. También considero a svn muy maduro y eso no necesariamente significa que git no hace el trabajo.


No estoy seguro de cuál es la estabilidad de TortoiseGIT en esta etapa, y cuando se trata de algo que se integra íntimamente con Explorer, esta es una consideración importante. ¿Alguien puede hablar de esto?

También tenga en cuenta que git no es la única opción si está buscando los beneficios de un VCS distribuido. Git tiene las virtudes gemelas de ser muy poderoso y también muy complicado. Es posible que encuentre otro DVCS, como Bazaar o Mercurial una transición más fácil para aprovechar los beneficios de un sistema distribuido. Ambos tienen interfaces tortoise en el desarrollo, pero una vez más, no estoy seguro de su estabilidad. (Bazar está incluido en su paquete de Windows, por lo que supondría que se encuentra en una etapa razonablemente buena).

Una búsqueda rápida también ha VisualHg y Bzr-VisualStudio aunque no tengo idea de su disposición a ser utilizado con ira. Caveat Emptor.


No he usado git, pero utilicé svn y bazaar (que es similar en filosofía a git), así que puedo responderte en términos generales.

La ventaja de los llamados sistemas de control de versiones distribuidas (DVCS) es que el repositorio y el código están juntos en su máquina, y usted no depende de un repositorio remoto para las operaciones. Cada desarrollador tiene una "sucursal", su propia copia del informe al que se compromete. Puedes comprometer, revertir, verificar revisiones previas, sin estar conectado a la red. La oficialidad del repositorio se otorga en virtud del acuerdo humano, no de la configuración técnica. En svn, solo tiene un repositorio, que es _el_repo_ al que usted y todas las demás personas se comprometen. En DVCS, usted se compromete con su propio repositorio y con otro desarrollador para su propio repositorio, y cada uno de ustedes puede enviar sus modificaciones al repositorio oficial cuando lo desee.

Otra clara ventaja es que las operaciones en un DVCS son rápidas, extremadamente rápidas. svn se vuelve increíblemente lento cuando comienzas a tener muchas cosas en tu repositorio. Esto puede volverse molesto muy pronto.

En el lado negativo, los DVCS son más difíciles de usar, pero puede usar un DVCS como un VCS centralizado si lo desea.


No quiero criticar los pros y los contras de git vs svn, pero aquí hay un conjunto simple de comparaciones: - Por qué Git es mejor que X.

Algunos buenos recursos de Git:

  1. Git Ready . Una especie de blog con pequeñas publicaciones sobre los usos para principiantes, intermedios y avanzados de git.
  2. Git Magic . Un buen repaso de lo que puedes hacer.
  3. Capturas de pantalla de GitCasts : nada como verlo en acción para ayudarte a comprender su poder. Incluyendo el útil screencast de Git en Windows .

¡Que te diviertas!


TortoiseGit está disponible, solo Google (no recuerdo la URL) Y:

  • Al ser distribuido, no necesita estar conectado a un servidor todo el tiempo, simplemente trabaje localmente y push cuando lo necesite.

  • Es muy rápido y no usa mucho ancho de banda

  • Y, el clásico, si es lo suficientemente bueno para Linus, es lo suficientemente bueno para ti :)

Actualización: Enlace a TortoiseGit