2010-03-19 10 views
12

Obecnie pracuję nad ClearCase i teraz migruję do GIT. Ale potrzebujemy tej migracji w taki sposób, aby wszystkie prace zostały wykonane w GIT, a dane zostaną zsynchronizowane z kopią do strumienia ClearCase. Będziemy mieli te same nazwy gałęzi i nazwy strumieni w GIT i CC, więc tworzenie skryptów nie powinno stanowić problemu. Problem polega na tym,Synchronizacja GIT i ClearCase

Może ktoś sugerują, co jest najlepszym modelem do synchronizacji CC i GIT

  1. mają wszystkie Vobs w CC jako pojedynczego repo w GIT i mają znaczny strumień w CC jak różne oddziały w GIT. - Pojedyncze repozytorium GIT (VOBS) i wiele oddziałów (strumienie CC). - Zajmuje to mniej miejsca, ponieważ VOB są przechowywane jako pojedyncze repozytorium z wieloma oddziałami.

  2. Posiadaj ważne gałęzie CC jako niezależne repozytoria GIT i każde repozytorium z wszystkimi CC VOB. - Wiele repozytoriów GIT dla wielu oddziałów CC - zajmie to dużo miejsca, ponieważ VOB będą replikowane w poprzek.

Co myślisz jest najlepszym sposobem, aby utrzymać ją w synchronizacji z ClearCase

Odpowiedz

4

mieć wszystkie Vobs w CC jako pojedynczego repo w GIT i mają znaczny strumień w CC jako różnych branż w GIT

No i tak

mają ważne gałęzie CC jak niezależnych repozytoriów Git i każdy repozytorium posiadające wszystkie obiekty VOB CC

NO i NO

Ponowne czytanie my answer about Git limits, nie powinieneś próbować wtrącać "wszystkiego" w repozytorium Git.
Zobacz także "What are the basic clearcase concepts every developer should know?", aby porównać ClearCase i Git.

Strumień można bezpiecznie importować jako gałąź.
Ale VOB niekoniecznie są Reputacją Git.

Jeśli korzystasz z UCM, polecam jeden repozytorium Git na każdy składnik UCM.

W każdym razie, musisz zarejestrować w swoim Git Repo sposób, aby wiedzieć, jakiego widoku ClearCase użyć do zsynchronizowania (poprzez simple clearfsimport) twoich danych.
Widok używany do ponownego importu danych ClearCase będzie widokiem UCM automatycznie skojarzonym z prawym strumieniem dla właściwego VOB.


Uwaga: Wspominam w „How to bridge git to ClearCase?” prostsze rozwiązanie, które jednak nie importować wszystkie historię w repo Git.

+1

Dzięki temu wydaje mi się, że bardzo mi pomogło. Zgadzam się, że posiadanie wszystkich VOBów lub wszystkich komponentów UCM w jedno repozytorium spowoduje, że GIT będzie potrzebował dużo czasu, aby wykonać operację, zwłaszcza jeśli jest to 20 GB. możesz wyjaśnić mi coś więcej. Załóżmy, że mam jedno repo dla jednego komponentu ucm/jeden VOB, ale jak w dyskusji mam cały ważny strumień CC/UCM jako rozgałęzienia w repozytorium, czy jest możliwe, aby różni programiści pchali jednocześnie do różnych gałęzi tego samego repo czekać, czy wszystkie gałęzie są w tym samym nagim repo? –

+0

@Senthil: tak: możesz nacisnąć dowolną gałąź w zdalnym, nagim repo. Uwaga: jeśli potrzebujesz kilku komponentów UCM (tj. Kilku repozytoriów Git) do pracy (albo je czytasz, albo modyfikujesz), będziesz potrzebował jednego lub kilku głównych projektów z submodułami (zobacz http://stackoverflow.com/questions/1979167/ git-submodule-update/1979194 # 1979194) – VonC

1

Odnośnie gałęzie i repo, pójdę z jednej VOB == reguły jeden repo git, ponieważ git repo ma naprawdę do wykorzystania przez pojedynczy projekt, tak samo jak w przypadku vobów.

Jeśli chodzi o gałęzie, nazwy oddziałów w obszarach vobs/repos powinny być zgodne. Rzuć okiem na submoduły w git, aby sprawdzić, czy można go użyć w twoim przypadku.

To, co osobiście chciałbym zobaczyć, to dojrzały backend git-cc, który pozwoli mi używać git na moim dev-boxie, podczas gdy jestem w stanie zsynchronizować się z korporacyjnym repozytorium CC, do którego jestem zmuszony.

4

Podczas gdy niekoniecznie sugerowałbym to jako "najlepszy" sposób synchronizowania dwóch, można importować historię i przesyłać zmiany z powrotem do Clearcase za pomocą mojego narzędzia git-cc, jak wspomniano here.