Algum motivo para não usar vários sistemas de controle de versão?

9

Estou trabalhando em um projeto que usa o GIT como o principal sistema de controle de versão para o tronco, as filiais oficiais e a maioria dos subprojetos / filiais não oficiais. Como tal, desejo que minha própria filial use o GIT para permitir que o restante da comunidade acesse minha filial usando o sistema que eles conhecem.

No entanto, estou trabalhando em uma parte do projeto que se sobrepõe a ramos oficiais e não oficiais, além de alguns patches que nunca entrarão no tronco - portanto, preciso manter meus patches separados, permitindo que todos sejam usados ​​em meu ramo e remendos seletivos para serem usados ​​no porta-malas. Isso naturalmente se inclina para o uso de filas mercuriais.

Existe alguma razão para eu não poder usar o mercurial para o meu próprio repositório local, mas enviar a totalidade para os repositórios hospedados no GIT e no Mercurial? Ou melhor, existe algum bom motivo para não fazê-lo, tenho certeza que é possível.

Jon Story
fonte
2
A única maneira de ver que o trabalho é se um é sempre a cópia autorizada e o outro é sempre gerado a partir do primeiro. Dessa forma, não há confusão possível.
Joachim Sauer
Obrigado, era o que eu estava pensando - Git seria apenas um escravo da Mercurial. Mercurial é usada como normal para mim, e depois empurre a partir mercurial para o Git para permitir que os usuários do Git para acessar meu ramo (sem sinos e assobios)
Jon História

Respostas:

8

Você não deve fazer isso pelo mesmo motivo que não deve ter uma variável que tente rastrear o estado de outra - poderá perder o controle de qual versão é autorizada.

James McLeod
fonte
Seria sempre uma cópia autorizada - Mercurial, nesse caso, já que estou me usando para rastrear alterações, trabalhar com vários patches etc. O Git seria apenas um escravo, uma cópia do repositório mercurial para permitir que membros de a comunidade familiarizada com o Git, mas não a Mercurial, para obter uma cópia do meu ramo. As pessoas que estão interessadas em patches individuais teriam que usar mercurial, obviamente, mas estou tentando permanecer dentro das convenções do projeto e facilitar a vida para mim.
31412 Jon Story
Obrigado pelo feedback. Não foi inteiramente por esse motivo (eu também decidi que prefiro o GIT e posso viver sem filas de mercurial), mas sua resposta me fez perceber que a redundância é inútil se puder ser evitada, o que, nesse caso, pode.
Jon História
2

Atualmente, faço isso usando git e svn. Embora haja razões para não fazer isso, não há regra geral. O Git pode fazer coisas que o svn não pode, estou acostumado a esses recursos, portanto meu fluxo de trabalho aumenta a produtividade quando posso usar o git. Olhando para os prós e os contras da minha situação, eu seria estúpido em não usar os dois. Você deve olhar para a sua situação da mesma maneira. (entre os únicos contras para mim estão tendo que executar um único script minúsculo para sincronizar o git com o svn)

stijn
fonte
1

Você pode manter seus patches separados no Git: faça cada um em sua própria ramificação e depois mesclá-los seletivamente, conforme desejado.

Marnen Laibow-Koser
fonte