Avere un repository Git e mercurial nella stessa directory


11

Spiegherò il mio problema,

Attualmente sto usando un'installazione interna di gitorious usando git. Vorrei iniziare a testare FogBugz e Kiln da Fog Creek che utilizza mercurial. Vorrei almeno per un po 'continuare lo sviluppo usando entrambe le soluzioni.

Qualcuno sa di eventuali effetti a lungo termine di avere un git e un repository mercuriale nella stessa directory. Oppure c'è un modo migliore per mantenere sincronizzati git e mercurial server.

Ho provato con un repository di prova e non ho riscontrato alcun problema.

Grazie per qualsiasi aiuto.


1
Non penso che ci sarebbe un grosso problema, poiché sono entrambi isolati a differenza dei .svnfile svn .
Josh K,

Risposte:


8

Ho trovato il ponte hg-git abbastanza utilizzabile andando nella direzione opposta (esponendo alcune cose su Github che è stato originariamente costruito usando Mercurial per il controllo del codice sorgente). Fondamentalmente, "solo" usi mercurial, crei un segnalibro che collega "master" al "default" quando sei pronto per passare a un repository git e spingere. Il pull da git funziona in modo simile al pull da un repository remoto. Non finisci con i file .git + .hg in questo scenario, ne hai solo di mercuriali nella tua casella locale, a meno che non finisca per migrare su git interamente, nel qual caso probabilmente faresti clonare git in un nuovo directory.

C'è un progetto simile per gli utenti git che vogliono spingere / estrarre dai repository Mercurial, ma non ho esperienza diretta con esso. Vedi https://github.com/offbytwo/git-hg

A parte il potenziale di archiviare accidentalmente un mucchio di cartelle nascoste dal tuo "altro" sistema di controllo del codice sorgente, non vedo alcun vero problema con fare hg init in un repository git; mi sembra meno ingombrante usare un bridge e scegliere esplicitamente quando spingere verso l'altro sistema dvcs.


Ho trovato hg-git un po 'incostante con SSH ed è meno divertente da configurare. È possibile eseguire entrambi i client DVCS sullo stesso computer, senza problemi. In effetti, se ne usi uno per il controllo del codice sorgente e l'altro per passare alla produzione (Azure, Appharbor ecc.), Questo può funzionare bene.
Bloke CAD

dai un'occhiata alla cartella .hg. hg-git crea lì una cartella .git a meno che non specifichi [git] intree = true nel tuo file .hgrc / ini per mercurial.
Bloke CAD

9

Ho usato sia mercurial che git nello stesso progetto, nella stessa directory di lavoro. La cosa grandiosa di usare questi due DVCS è che entrambi hanno solo una cartella (.git / .hg) per i loro conf e BLOB, alberi e cose.

Basta inserire .hg in .gitignore (e .git in .hgignore) e sei più che bravo ad andare.

Ovviamente devi raddoppiare il lavoro quando ti impegni, ma non ho trovato difficile gestirlo.

Questa configurazione secondo me è molto più affidabile rispetto all'utilizzo di qualsiasi soluzione bridge (non mi piacciono dall'orrore che ho avuto con git-svn).


Puoi fornire maggiori informazioni su come hai raggiunto questo obiettivo? Ho una domanda qui stackoverflow.com/questions/14486600/… che sembra essere stata raggiunta da te. Qualsiasi aiuto è apprezzato :)
akdsouza il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.