svn - usar - ¿Qué es una buena alternativa no distribuida a la subversión que tiene una excelente ramificación y soporte de fusión?
tortoise svn (21)
¡Estoy harto y cansado de rastrear manualmente mis sucursales y combinarlas en mi repositorio! Es demasiado propenso a errores. En un mundo en el que todos parecen tener la idea de reducir la duplicación y automatizar todo, la ramificación / fusión de subversión parece sobrada de los años 80. ¿Cuál es una buena alternativa a la subversión que tiene una excelente ramificación y soporte de fusión sin agregar la complejidad de un paradigma SCM distribuido? Idealmente sería gratis, pero si tengo que desembolsar algo de dinero, me inclinaría si fuera lo suficientemente bueno.
¿Alguna vez se preguntó por qué tiene tantas operaciones de sucursal / fusión? ¿Hay alguna forma de simplificar su proceso de desarrollo?
Subversion, en mi humilde opinión, es una buena aplicación del principio KISS (Keep it simple, stupid). Traducción: Según mi experiencia, obtendrás un impulso de productividad mucho mayor al agilizar tu proceso de desarrollo que al obtener una herramienta más compleja.
¿Has actualizado a Subversion 1.5? Incluye seguimiento de fusión automatizado. Esto puede abordar su problema. Parece que ya está familiarizado con la herramienta en sí y es gratis. Por lo tanto, si actualiza su solución actual a 1.5, casi no tendrá curva de aprendizaje ni costo cero, además de que no tendrá que soportar el dolor de trasladar su código existente a un nuevo sistema de control de código fuente.
¿Has analizado el control de versiones distribuidas, como Git? Cada "salida" es esencialmente una rama ... es una manera bastante diferente de pensar sobre el control de la fuente.
Git es gratuito, creado por Linus Torvalds y utilizado para Linux (entre muchos otros proyectos, por supuesto).
Bazar, por los creadores de Ubuntu.
¿Por qué elegir Bazar?
Cualquiera de las soluciones distribuidas. Git, mercurial etc. Mi preferencia sería git.
Esto se enmarca en términos de alternativas al CVS, en lugar de a SVN, pero no importa: enumera varias alternativas, incluidas otras no distribuidas. http://better-scm.berlios.de/alternatives/
He usado Clearcase mucho. Siempre que realice sus fusiones con frecuencia, puede ser bastante sencillo y también es posible tener trabajos de fusión ejecutándose en segundo plano. Debes intervenir si hay un conflicto de fusión.
Sin embargo, es costoso y puede ser difícil encontrar administradores expertos de Clearcase.
Perforce es gratis para hasta 2 usuarios.
No estoy 100% seguro de lo que espera que pueda / deba automatizar, pero forzosamente es de muy alta calidad. Puede crear y mantener sucursales fácilmente y puede fusionarse fácilmente. Es bastante fácil elegir cambios específicos que haya realizado en una rama y fusionarlos en otra rama con un alto grado de automatización.
Probablemente me llame la atención por esto, pero si no buscas un producto gratuito, vale la pena echarle un vistazo al Servidor MS Team Foundation. A diferencia de otros productos de MS que seguirán sin nombre, el control de origen es sólido y completamente funcional. Combine eso con la integración IDE, el motor automatizado de compilación / prueba y la funcionalidad de administración del trabajo, y es bastante asombroso. Por supuesto, está dirigido a empresas y tiene un precio acorde.
Nota: No me molestaría con esto si no se desarrolla principalmente en Visual Studio.
Si bien las alternativas a la subversión pueden ser agradables, la subversión con lápiz de labios puede funcionar bien. Aquí hay una reseña de interfaces para subversión que se ejecutan en Mac: http://www.geocities.com/~karlvonl/blog/2006/03/daddy-needs-new-subversion-gui.html
También estaba harto de estas limitaciones en versiones anteriores de Subversion. Sin embargo, nadie más en mi empresa utiliza la bifurcación y la fusión. Cada uno de ellos, cuando probaba una nueva característica, obtenía otro pago, hack-hack-hack y se deshacía de él si era malo: se comprometía cuando era bueno. A veces cometieron algo malo;)
Así que comencé a usar git + svn. Significado: Tengo svn checkout y en este directorio he comenzado git. Ahora tengo una rápida fusión y ramificación, y no interrumpo a ninguna otra. Si necesito probar la nueva característica X, simplemente ramifique / revise / piratee-piratee. Si ahora necesito tomar alguna actualización crucial de nuestro repositorio SVN: git stash, git checkout master, svn update, git commit -a, git checkout feature-X, git rebase, git stash apply (todo esto porque git-svn no trabajar en Windows).
Parece una gran cantidad de operaciones, pero son rápidas. Quiero decir realmente rápido. Y dame la flexibilidad que necesito (mira mi artículo en git + visual studio ).
Creo que Bazaar puede hacer cosas similares y podría ser mejor en una cosa: puede soportar fácilmente el desarrollo no distribuido y basado en repositorios centrales .
Una cosa que no se ha mencionado aún es que es perfectamente posible usar git de la misma manera centralizada a la que estás acostumbrado con Subversion . Realmente es una excelente pieza de software.
git - http://git.or.cz/ (soy bastante aficionado a git, great @ branching y desarrollo distribuido) - http://github.com/ es un gran ejemplo de trabajo.
Git , Mercurial, Bazar, Darcs
Me he enamorado de eso.
¿Qué crees que es complejo sobre DVCS como GIT? Es más simple en algunos aspectos: sin cliente / servidor, sin repositorio en un lugar con el directorio de trabajo en otro lugar, la administración del usuario no está incorporada (use ssh si lo necesita). Como dijo Jim Puls, puede usar DVCS como no distribuido si lo desea. Utilizo GIT para proyectos individuales, incluso aquellos que duran solo unas pocas semanas. No hay nada exactamente igual a Tortoise, pero gitk, qgit y git-gui son mejores para esas funciones que las que he visto con SVN. Solía preferir la interfaz gráfica de usuario, pero ahora soy bastante aficionado a la línea de comandos de git, pero echa un vistazo a easygit para algunas mejoras.
Simplemente agregando a DarenW: para Windows hay un producto de servidor Subversion realmente agradable que es gratis y hace que la vida sea un sueño: Servidor VisualSVN . Esto empaqueta la última versión de Subversion en un único instalador de MSI y agrega una consola de administración muy útil.
Vine de una tienda de Perforce a una tienda de Subversion y me perdí el gran apoyo de bifurcaciones y fusiones que tiene Perforce. Entonces, Perforce sería mi primera recomendación, pero luego cuesta dinero :).
Subversion 1.5 parece prometedor para su soporte de seguimiento de fusión, pero está marcado como fundamental y no parece que tendrá un mínimo de compatibilidad de fusión que estoy dispuesto a aceptar (es decir, similar a Perforce) en el corto plazo.
Por lo tanto, me estoy inclinando hacia un VCS distribuido, específicamente Bazar:
- La ramificación y la fusión funcionan muy bien y de la manera en que espero
- Se puede usar con un flujo de trabajo centralizado
- Admite ramas de Subversion, copias de trabajo y repositorios . Esto significa que mi equipo puede usar Bazar dentro de una organización más grande que usa Subversion y todavía compartir código con ellos.
Deberías echarle un vistazo a Accurev. Apunta y hace clic en la creación de nuevas secuencias (como ramas, pero mejor IMO), y todo el concepto de código que fluye a través de las corrientes hace que la fusión sea una tarea mucho menos dolorosa y frecuente. Es muy simple de administrar, tiene una licencia gratuita para 3 usuarios y tiene excelentes herramientas de visualización integradas.
Plastic SCM tiene que ver con la ramificación y la fusión ... es más fácil. Verifique su GUI y compárela con las otras alternativas.
Perforce es una herramienta excelente, pero más allá de 2 usuarios te costará, ya que está dirigido a profesionales. Lo usamos con un esquema de ramificación bastante pesado (1 rama por característica durante el desarrollo principal) y funciona bien. Algo así como la ramificación de "Spider web" utilizada por Microsoft (que usaba una versión anterior modificada de Perforce), pero ahora no puedo encontrar la historia en línea.