2009-01-05 18 views
7

Przez ostatnie 6 miesięcy używałem dwukierunkowego lustra Git z naszego głównego repozytorium Perforce w pracy, aby ocenić je pod kątem naszego przepływu pracy. Muszę powiedzieć, że zakochałem się w jego używaniu, ale jak na razie ma ona jedną fatalną wadę: to wsparcie Windowsa jest okropne.Jak mogę zapewnić dwukierunkowe lustro repozytorium Git z innym SCM? (bzr, hg itp.)

Generalnie nie stanowi to dla mnie problemu, ale teraz jest. Muszę trochę popracować nad lokalnie zaangażowaną pracą w moim repozytorium Git i nie mogę się do niej dostać z maszyny, nad którą muszę popracować, ponieważ w tym polu są pewne nierozwiązywalne problemy z dystrybucją Git.

W każdym razie, jeśli chcę, mogę uruchomić drugie zwierciadło: tym razem z mojego repozytorium Git, ale służąc przez Mercurial lub Bazar. Znalazłem kilka narzędzi, które wyglądają obiecująco, a niektóre w komentarzach na blogu mówią, że ludzie to zrobili, ale nic kompletnego.

Czy ktoś może mi powiedzieć, czy istnieje prosty sposób na utrzymanie dwukierunkowego zwierciadła do repozytorium Git za pomocą innego DVCS, który będzie pracować w systemie Windows bez żadnych problemów?

Dzięki z góry za fatygę ...

Jamie

Odpowiedz

6

Nowa opcja pojawiła się na scenie od ludzi na GitHub: git-hg. Teraz jest sposób na dwukierunkową synchronizację między Git i Mercurial.

0

Mercurial ma prawdopodobnie najlepsze wsparcie dla Windows (obecnie git & BZR). Ma nawet rozszerzenie TortoiseHg here.

+0

Mercurial to moje ulubione lustro, ale pytanie brzmi: jak utworzyć dwukierunkowe lustro Git/Mercurial ... jeśli wiesz, proszę powiedz! Txs. – jkp

3

Wiem, że Mercurial ma rozszerzenie, które pozwoli ci zamienić się z git na mercurial. Więcej o https://www.mercurial-scm.org/wiki/ConvertExtension

Sam jednak tego nie użyłem.

+1

Miałem iść z tą ostatnią nocą: nie konwertuje historii z Git w użyteczny sposób, scala wszystkie gałęzie do domyślnej gałęzi ze względu na sposób, w jaki Git traktuje gałęzie wewnętrznie. Potrzebuję czegoś, z czym mogę zrobić rozsądne dwukierunkowe lustro. – jkp

+0

Punkty idące tutaj, ponieważ jest to jedyna odpowiedź, która w rzeczywistości dotyczy pytania, które zadałem! Inni mogą również chcieć sprawdzić "Taylor", który może pomóc ... – jkp

+0

Konwersja jest ściśle jednokierunkowa. To nie jest narzędzie synchronizacji, na które patrzy. –

3

[wikified ponieważ nie jest to odpowiedź]

Używam MSYS git bez problemów na Vista. Obsługuję jednak moje repozytorium git w systemie Debian GNU/Linux.

+0

Problem, który mam z Gitem na Windowsie, ma związek z okienkiem systemu Windows, którego używam: Jest to 64-bitowa instalacja systemu Windows 2008 działająca na hoście KVM jako maszyna wirtualna. Próbowałem zarówno Msys Git i cygwin: • Msys nie działa na Windows 2008 64bit (knownbug) • Cygwin ujawnia błąd w KVM. Gdybym mógł, zrobiłbym! – jkp

+0

Dla każdego zainteresowanego * znalazłem * naprawę problemu, który miałem z msys Git: Zobacz [tutaj, aby poznać szczegóły] [1] [1]: http://code.google.com/p/msysgit/issues/detail? id = 122 & colspec = ID% 20Type% 20Status% 20Priority% 20Component% 20Owner% 20Podsumowanie – jkp

+0

Wow! Co za ból. Gratulacje za znalezienie rozwiązania! –

0

Myślę, że prawdopodobnie nie znajdziesz satysfakcjonującego rozwiązania z aktualnie dostępnym gitem do innych narzędzi synchronizacji DVCS. Prawdopodobnie mógłbyś zestawić działający system za pomocą git-svn, aby przejść od przejścia do subversion i hgsubversion, aby zsynchronizować między rtęcią a subwersją, ale to wydaje się szalonym kludem, aby obejść słabe wsparcie git w oknach.

Być może lepiej byłoby wysłać pocztą elektroniczną różnice z okna Windowsa - git ma doskonałą obsługę obsługi łatek e-mailowych (podobnie jak mercurial).

1

Jest też tailor który pozwala mirroring pomiędzy kilkoma repozytoriach. Miałem to działające na Cygwin z pewnym powodzeniem - dopóki ktoś nie dodał plików, które spowodowały, że linia poleceń się dusiła; choć może to być raczej rzadki problem do trafienia.