Des raisons de ne pas utiliser plusieurs systèmes de contrôle de version?

9

Je travaille sur un projet qui utilise GIT comme système de contrôle de version principal pour le tronc, les branches officielles et la plupart des sous-projets / branches non officielles. En tant que tel, je veux que ma propre succursale utilise GIT pour permettre au reste de la communauté d'accéder à ma succursale en utilisant le système qu'ils connaissent.

Cependant, je travaille sur une partie du projet qui chevauche les branches officielles et non officielles, ainsi que certains correctifs qui n'entreront jamais dans le tronc - en tant que tel, je dois pouvoir garder mes correctifs séparés, permettant à tous d'être utilisés dans ma branche et les patchs sélectifs à prendre pour une utilisation dans le coffre. Cela tend naturellement à utiliser des files d'attente mercuriales.

Y a-t-il une raison pour laquelle je ne peux pas utiliser mercurial pour mon propre référentiel local, mais pousser l'intégralité vers les référentiels hébergés par GIT et Mercurial? Ou plutôt, y a-t-il une bonne raison de ne pas le faire, je suis sûr que c'est possible.

Jon Story
la source
2
La seule façon dont je peux voir que le travail est si l'un est toujours la copie autorisée et l'autre est toujours généré à partir de la première. De cette façon, il n'y a pas de confusion possible.
Joachim Sauer
Merci, c'est ce que je pensais - Git serait juste un esclave de Mercurial. Mercurial est utilisé comme normal pour moi, puis passe de mercurial à Git pour permettre aux utilisateurs de Git d'accéder à ma branche (sans cloches et sifflets)
Jon Story

Réponses:

8

Vous ne devriez pas faire cela pour la même raison que vous ne devriez pas avoir une variable qui essaie de suivre l'état d'une autre - vous pourriez perdre la trace de la version faisant autorité.

James McLeod
la source
L'une serait toujours une copie faisant autorité - Mercurial, dans ce cas, puisque c'est celle que j'utilise moi-même pour suivre les modifications, travailler avec plusieurs correctifs, etc. Git serait juste un esclave, une copie du référentiel mercurial pour permettre aux membres de la communauté qui connaît Git mais pas Mercurial pour obtenir une copie de ma branche. Les gens qui sont intéressés par les correctifs individuels devraient utiliser mercurial, bien sûr, mais j'essaie de respecter les conventions du projet tout en me facilitant la vie.
Jon Story
Merci pour les commentaires. Ce n'était pas entièrement pour cette raison (j'ai également décidé de préférer GIT et de pouvoir vivre sans files d'attente mercuriales), mais votre réponse m'a fait réaliser que la redondance est inutile si elle peut être évitée, ce qui est le cas dans ce cas.
Jon Story
2

Je fais actuellement cela en utilisant git et svn. S'il y a des raisons de ne pas le faire, il n'y a pas de règle générale. Git peut faire des choses que svn ne peut pas, je suis habitué à ces fonctionnalités, donc mon flux de travail augmente donc la productivité lorsque je peux utiliser git. En regardant les avantages et les inconvénients de ma situation, je serais stupide de ne pas utiliser les deux. Vous devez considérer votre situation de la même manière. (btw le seul inconvénient pour moi est d'exécuter un seul petit script pour synchroniser git avec svn)

stijn
la source
1

Vous pouvez garder vos correctifs séparés dans Git: faites chacun sur sa propre branche, puis fusionnez-les de manière sélective comme vous le souhaitez.

Marnen Laibow-Koser
la source