¿Alguna razón para no usar sistemas de control de versiones múltiples?

9

Estoy trabajando en un proyecto que utiliza GIT como el principal sistema de control de versiones para troncal, las sucursales oficiales y la mayoría de los subproyectos / sucursales no oficiales. Como tal, quiero hacer que mi propia sucursal use GIT para permitir que el resto de la comunidad acceda a mi sucursal utilizando el sistema que conocen.

Sin embargo, estoy trabajando en una parte del proyecto que se superpone a las ramas oficiales y no oficiales, junto con algunos parches que nunca entrarán en el tronco; por lo tanto, necesito poder mantener mis parches separados, permitiendo que todos se usen en mi rama y parches selectivos para tomar en el tronco. Esto naturalmente se inclina hacia el uso de colas mercuriales.

¿Hay alguna razón por la que no pueda usar mercurial para mi propio repositorio local, pero empuje la totalidad a los repositorios alojados GIT y Mercurial? O más bien, ¿hay alguna buena razón para no hacerlo? Estoy seguro de que es posible.

Jon Story
fuente
2
La única forma en que puedo ver que funciona es si una es siempre la copia autorizada y la otra siempre se genera a partir de la primera. De esta manera no hay confusión posible.
Joachim Sauer
Gracias, eso era lo que estaba pensando: Git sería un esclavo de Mercurial. Mercurial se usa de manera normal para mí, y luego paso de mercurial a Git para permitir que los usuarios de Git accedan a mi sucursal (sin campanas ni silbatos)
Jon Story

Respuestas:

8

No debe hacer esto por la misma razón por la que no debería tener una variable que intente rastrear el estado de otra: puede perder la noción de qué versión es autorizada.

James McLeod
fuente
Uno siempre sería una copia autorizada: Mercurial, en este caso, ya que es la que estoy usando para rastrear cambios, trabajar con múltiples parches, etc. Git sería solo un esclavo, una copia del repositorio mercurial para permitir que los miembros de la comunidad que está familiarizada con Git pero no con Mercurial para obtener una copia de mi sucursal. Las personas que están interesadas en parches individuales tendrían que usar mercurial, obviamente, pero estoy tratando de mantenerme dentro de las convenciones del proyecto mientras me facilito la vida.
Jon Story
Gracias por la respuesta. No fue del todo por este motivo (también decidí que prefiero GIT y puedo vivir sin colas mercuriales), pero su respuesta me hizo darme cuenta de que la redundancia no tiene sentido si se puede evitar, lo que en este caso sí se puede.
Jon Story
2

Actualmente hago esto usando git y svn. Si bien hay razones no para hacerlo, no hay una regla general. Git puede hacer cosas svn no, estoy acostumbrado a esas funciones, por lo que mi flujo de trabajo aumenta la productividad cuando puedo usar git. Mirando los pros y los contras en mi situación, sería estúpido no usar ambos. Debes mirar tu situación de la misma manera. (por cierto, las únicas desventajas para mí son tener que ejecutar un solo script pequeño para sincronizar git con svn)

stijn
fuente
1

Puede mantener sus parches separados en Git: haga cada uno en su propia rama, luego combínelos selectivamente según lo desee.

Marnen Laibow-Koser
fuente