Posiadanie repozytorium Git i mercurial w tym samym katalogu

11

Wyjaśnię mój problem,

Obecnie używam wewnętrznej instalacji gitorious using git. Chciałbym zacząć testować FogBugza i Kiln z Fog Creek, który używa rtęci. Chciałbym przynajmniej przez chwilę kontynuować rozwój przy użyciu obu rozwiązań.

Czy ktoś wie o jakichkolwiek długoterminowych poważnych skutkach posiadania git i repozytorium rtęci w tym samym katalogu. Czy jest lepszy sposób na synchronizację serwera git i mercurial.

Próbowałem z repozytorium testowym i nie widziałem żadnych problemów.

Dziękuję za wszelką pomoc.

D. Mathis
źródło
1
Nie sądzę, żeby problem był duży, ponieważ oba są izolowane w przeciwieństwie do .svnplików SVN .
Josh K

Odpowiedzi:

8

Odkryłem, że most hg-git jest całkiem użyteczny, idąc w innym kierunku (ujawniając pewne rzeczy na Github, który został pierwotnie zbudowany przy użyciu Mercurial do kontroli źródła). Zasadniczo „po prostu” używasz mercurial, tworzysz zakładkę łączącą „master” z „default”, gdy jesteś gotowy do wypchnięcia do repozytorium git i push. Pull from git działa podobnie do tego, jak działa podczas ściągania ze zdalnego repozytorium. W tym scenariuszu nie kończysz się na plikach .git + .hg, po prostu masz na swoim lokalnym urządzeniu merkurialne, chyba że zakończysz migrację do git całkowicie, w takim przypadku prawdopodobnie wykonasz klonowanie git w nowym informator.

Istnieje podobny projekt dla użytkowników git, którzy chcą wypychać / pobierać z repozytoriów Mercurial, ale nie mam z tym bezpośredniego doświadczenia. Zobacz https://github.com/offbytwo/git-hg

Poza możliwością przypadkowego sprawdzenia w kilku ukrytych folderach z twojego „innego” systemu kontroli źródła, nie widzę żadnego prawdziwego problemu z uruchomieniem hg init w repozytorium git; po prostu wydaje mi się mniej niezręczne korzystanie z mostu i wyraźne wybranie, kiedy przełączyć się na inny system dvcs.

JasonTrue
źródło
Znalazłem hg-git trochę hit & miss z SSH i konfiguracja nie jest przyjemna. Możesz uruchomić obu klientów DVCS na tym samym komputerze, bez prób. W rzeczywistości, jeśli używasz jednego do kontroli źródła, a drugiego do wypchnięcia do produkcji (Azure, Appharbor itp.), To może działać dobrze.
CAD bloke
zajrzyj do folderu .hg. hg-git tworzy tam folder .git, chyba że określisz [git] intree = true w pliku .hgrc / ini dla mercurial.
CAD bloke
9

Użyłem zarówno mercurial, jak i git w tym samym projekcie, w tym samym katalogu roboczym. Wspaniałą rzeczą w korzystaniu z tych dwóch DVCS jest to, że oba mają tylko jeden folder (.git / .hg) dla swoich confów i obiektów blob oraz drzew i innych rzeczy.

Po prostu wstaw .hg w .gitignore (i .git w .hgignore), a będziesz gotowy.

Oczywiście musisz podwoić nakład pracy, ale nie wydawało mi się to trudne.

Moim zdaniem ta konfiguracja jest znacznie bardziej niezawodna niż używanie jakichkolwiek rozwiązań mostkowych (nie lubię ich od horroru, jaki miałem z git-svn).

Vladaimir Cetkovic
źródło
Czy możesz podać więcej informacji o tym, jak to osiągnąłeś? Mam tutaj pytanie stackoverflow.com/questions/14486600/…, które wydaje się być osiągnięte przez ciebie. Każda pomoc jest mile
widziana