Explorando nuevos sistemas de control de versiones. Mi mayor necesidad: fusión confiable

Soy un ingeniero de lanzamiento para un equipo de 35 progtwigdores. Estamos trabajando en PHP, Java, C # y SQL. Actualmente usamos Subversion, que funcionó bien durante aproximadamente un año. Estamos pasando por una fase en la que los conflictos se vuelven cada vez más comunes. Nuestras huellas de aplicaciones están creciendo, por lo que el performance se está convirtiendo en un problema para las compras y los compromisos.

Me pregunto qué sistemas comerciales o de control de versiones de FOSS y personal de software pueden recomendar que se ajusten a mi perfil: – Repo centralizado – Fusión simple – Exportaciones rápidas, fusiones, pagos – Resolución de conflictos

¡Gracias por tu ayuda!

; ) .randy

– Agregado 16/04/2009 a las 06:21 PST

Más información: nuestra huella de repo es ~ 6GB. Hemos visto a Git y Bazaar. Excelentes características y razones para usarlos. Queremos un repository centralizado.

Un malentendido común es que los sistemas de control de versiones distribuidas como git o mercurial no son buenos para repositorys centralizados. Dicho esto, te recomiendo que mires a Git si aún no lo has hecho.

Perforce es mi favorito.

Si bien es cierto que Git es una buena opción, no olvides que una "huella creciente de la aplicación" implica otros problemas con los que tendrás que lidiar, sin importar qué SCM utilices .

A saber:

  • Arquitectura de aplicaciones para dividir su aplicación en "modules" (o componentes) más manejables e independientes (unos de otros)
  • Flujo de trabajo de combinación : su SCM necesita lidiar con la fusión de 3 vías , mientras evita las fusiones laterales . Esto es especialmente cierto en la fase de mantenimiento, cuando tiene que mantener tanto un lanzamiento en producción como un nuevo desarrollo para la próxima versión.
  • Almacenamiento de entrega para consultar fácilmente sus entregas en un entorno de testing, entornos de homologación, entorno de producción …

Con respecto a la function de fusión, Perforce o Git son mejores que Subversion, porque te permiten fusionar cualquier subtree que desees, mientras memorizas la información de fusión, y con muchas estrategias de fusión (la nuestra, la suya, …).

Incluso en su última versión 1.6, Subversion solo admite fusiones de manera confiable desde el directory raíz de una twig (puede combinar subtreees, pero el log no será preciso para las fusiones con el subtree fuera de los que actualmente ha retirado)

No hay ninguna razón por la cual no puedas tener un repository centralizado con Git. Git es compatible con cualquier flujo de trabajo .

Bazaar se puede usar en muchos types diferentes de flujos de trabajo. Consulte este artículo sobre cómo usarlo en un flujo de trabajo centralizado .

Hemos sido felices con Starteam de Borland. La operación de check-in / checkout es rápida incluso desde sistemas remotos y proporciona diferentes vistas y estados de promoción también.

Cualquiera que sea el path que tome, asegúrese de agregarle FishEye . Ayuda a administrar su código a medida que crece la complejidad.

Actualmente es compatible con SVN, Perforce y CVS.

Comprobar:

  • Accurev
  • Plastic SCM . Mire su tree 3D y su explorador de twigs, y explore los enlaces de fusión allí