Jakieś powody, by nie używać wielu systemów kontroli wersji?

9

Pracuję nad projektem, który wykorzystuje GIT jako główny system kontroli wersji dla pnia, oficjalnych oddziałów i większości podprojektów / nieoficjalnych gałęzi. Jako taki, chcę, aby mój własny oddział używał GIT, aby umożliwić pozostałej społeczności dostęp do mojego oddziału przy użyciu systemu, który znają.

Pracuję jednak nad częścią projektu, która nakłada się zarówno na oficjalne, jak i nieoficjalne gałęzie, a także na niektóre łaty, które nigdy nie trafią do bagażnika - jako takie muszę mieć możliwość oddzielenia swoich łatek, umożliwiając ich stosowanie w moją gałąź i selektywne łaty do zabrania do użytku w bagażniku. To naturalnie skłania do korzystania z kolejek rtęciowych.

Czy istnieje jakiś powód, dla którego nie mogę używać merkurialu do własnego lokalnego repozytorium, ale przesłać całość do repozytoriów hostowanych zarówno przez GIT, jak i Mercurial? A raczej, czy jest jakiś dobry powód, aby tego nie robić, jestem pewien, że jest to możliwe.

Jon Story
źródło
2
Jedyny sposób, w jaki widzę, że działa, jeśli jeden jest zawsze kopią autorytatywną, a drugi zawsze jest generowany od pierwszego. W ten sposób nie ma żadnych nieporozumień.
Joachim Sauer
Dzięki, tak myślałem - Git byłby po prostu niewolnikiem Mercuriala. Mercurial jest dla mnie używany normalnie, a następnie przesuń się od mercurial do Git, aby umożliwić użytkownikom Git dostęp do mojego oddziału (bez dzwonków i gwizdków)
Jon Story

Odpowiedzi:

8

Nie powinieneś tego robić z tego samego powodu, dla którego nie powinieneś mieć zmiennej, która próbuje śledzić stan innej - możesz stracić kontrolę nad wersją, która jest autorytatywna.

James McLeod
źródło
Zawsze byłaby to autorytatywna kopia - w tym przypadku Mercurial, ponieważ to ja używam siebie do śledzenia zmian, pracy z wieloma łatkami itp. Git byłby po prostu niewolnikiem, kopią repozytorium rtęci, aby umożliwić członkom społeczność, która zna Git, ale nie Mercurial, aby otrzymać kopię mojego oddziału. Ludzie zainteresowani poszczególnymi łatami musieliby oczywiście używać rtęci, ale staram się trzymać się konwencji projektu, jednocześnie ułatwiając sobie życie.
Jon Story
Dzięki za opinie. Nie było to całkowicie z tego powodu (właśnie zdecydowałem, że wolę GIT i mogę żyć bez kolejek rtęciowych), ale twoja odpowiedź uświadomiła mi, że redundancja jest bezcelowa, jeśli można jej uniknąć, co w tym przypadku może.
Jon Story
2

Obecnie robię to za pomocą git i svn. Chociaż istnieją powody nie to zrobić, nie istnieje ogólna zasada. Git może robić rzeczy, których svn nie może, jestem przyzwyczajony do tych funkcji, więc mój przepływ pracy zwiększa wydajność, kiedy mogę używać git. Patrząc na zalety i wady w mojej sytuacji, głupio byłoby nie korzystać z obu. Powinieneś spojrzeć na swoją sytuację w ten sam sposób. (przy okazji jedyne minusy dla mnie to uruchomienie jednego małego skryptu, aby zsynchronizować git z svn)

stijn
źródło
1

Możesz trzymać swoje łatki osobno w Git: zrób każdą z nich we własnym oddziale, a następnie scalaj je według uznania.

Marnen Laibow-Koser
źródło