¿SVN puede hacer este model de ramificación?

Soy nuevo en los sistemas de control de versiones y trato de decidir cuál utilizar. Hay mucha información, pero tal vez alguien experto ya puede ayudarme respondiendo la siguiente pregunta. He encontrado un model de control de versiones / ramificación que se parece bastante a mis requisitos:

http://nvie.com/posts/a-successful-git-branching-model/

¿Podría en teoría darme count de esto tan fácilmente con SVN? ¿Como la twig Hotfix y Bugfix que se fusionan en múltiples twigs diferentes? ¿Y por qué se supone que la "fusión" es más fácil con Git de todos modos?

El flujo de trabajo al que se ha vinculado se recomienda en bastantes respuestas de StackOverflow. En términos generales, sin embargo, la idea principal es mantener separados el "código bueno" y el "código de desarrollo": twigs master y de development . Además, mantenga las características separadas hasta que estén lists para fusionarse en la twig de development : esas son las features y las twigs de las hotfix .

No tengo dudas de que ese flujo de trabajo, o uno muy similar, es completamente posible con SVN: usaría SVN Branches .

Hay un montón de sistemas de control de revisión, y el flujo de trabajo de Nvie Git es bastante genérico: el flujo de trabajo general probablemente podría utilizarse en la mayoría de los sistemas de control de revisiones.

¿Podría en teoría darme count de esto tan fácilmente con SVN? ¿Como la twig Hotfix y Bugfix que se fusionan en múltiples twigs diferentes?

Personalmente, no creo que la bifurcación en SVN sea tan fácil como lo es en Git. Linus Torvalds está de acuerdo , por lo que diseñó a Git sobre la idea de ramificarse.

¿Y por qué se supone que la "fusión" es más fácil con Git de todos modos?

Git está diseñado alnetworkingedor de la idea de ramificación. Hacer twigs, usar twigs, unir dos twigs, unir tres twigs, fusionar sucursales de repositorys locales y remotos: Git es bueno en las sucursales. SVN no está centrado en las sucursales, y en mi experiencia SVN (limitada), la fusión de dos twigs no siempre es divertida.

Si recién estás comenzando con un sistema de control de versiones, recomendaría Git. Para una comparación decente entre Git y SVN, consulte este enlace . Me gustaría señalar, sin embargo, que Git es un poco emocionante, especialmente si eres nuevo en esto. Conceptualmente, SVN es mucho más fácil de entender. Encontré el libro de Pro Git extremadamente útil.

Desde el enlace que has proporcionado:


Del clásico mundo de CVS / Subversión del que provengo, la fusión / ramificación siempre ha sido considerada un tanto aterradora ("¡cuidado con los conflictos de fusión, te muerden!") Y algo que solo haces de vez en cuando.

Pero con Git, estas acciones son extremadamente baratas y simples, y en realidad se consideran una de las partes centrales de tu flujo de trabajo diario.


Me suscribo a esa afirmación en lo que respecta a SVN (no tengo una experiencia real de GIT). En SVN, la fusión consume mucho time y, francamente, da miedo. No se ramifica a la ligera. Entonces, supongo, la respuesta es "no", no use SVN si sabe de antemano que tendría que hacer muchas ramificaciones y fusionarse.

Teóricamente, sí, SVN puede darse count. Pero SVN tiene poca o ninguna de las herramientas de fusión y ramificación. Así que fusionar / ramificar con SVN es un poco incómodo y aterrador (problema principal – tree complicado y otros conflictos).

GIT es un maestro en fusiones de twigs: puede resolver conflictos extremadamente difíciles. También te permite rastrear fácilmente todas las versiones de twigs.

La principal diferencia entre SVN y GIT:

  • SVN es control de versión centralizada (CVCS)
  • GIT es control de versión descentralizada (DVCS)

Para entender la comparación eche un vistazo a este artículo

Subversion tiene la ventaja de que siempre se sabe si una bifurcación / troncal particular en una revisión en particular se fusiona con su sucursal (por svn: mergeinfo), eso es importante en el caso de las confirmaciones de recolección de cerebros. Git proporciona herramientas de fusión que tienen la reputación de funcionar mejor.

Puede instalar SubGit ( subgit.com ) en su repository SVN y tener ventajas de ambos enfoques. Después de la installation, SubGit creó un repository Git que está vinculado a ese repository SVN, de modo que cualquier inserción en ese repository Git se traduce a SVN y viceversa. La conversión se realiza sobre la marcha.