2010-03-19 12 views
12

Ich arbeite derzeit an ClearCase und jetzt auf GIT migrieren. Aber wir brauchen diese Migration so, dass alle Arbeiten in GIT erledigt werden und die Daten auf ClearCase Stream gesichert werden. Wir werden die gleichen Verzweigungsnamen und Stream-Namen sowohl in GIT als auch in CC haben, so dass Scripting kein Problem sein sollte. Das Problem hier ist,Sync GIT und ClearCase

Kann jemand vorschlagen, was das beste Modell ist CC und GIT zu synchronisieren

  1. Haben alle Vobs in CC als Einzel Repo in GIT und haben den großen Strom in CC verschiedene Filialen in GIT. - Single GIT Repo (VOBS) und viele Zweige (CC Streams). - Dies nimmt weniger Platz in Anspruch, da VOBs als einzelner Repo mit vielen Zweigen gehalten werden.

  2. Wichtige CC-Zweige als unabhängige GIT-Repositories und jedes Repository mit allen CC-VOBs haben. - Viele GIT-Repos für viele CC-Zweigstellen - Dies wird viel Platz einnehmen, da VOBs repliziert werden.

Was halten Sie für die beste Weg, um es synchron zu halten mit Clearcase

Antwort

4

Haben alle Vobs in CC als Einzel Repo in GIT und haben den großen Strom in CC als verschiedene Zweige in GIT

Nein und ja

haben wichtige CC Zweige als unabhängig GIT-Repositories und jedes Repository alle den CC VOBs

Nein und keine

Re-reading my answer about Git limits, sollten Sie nicht versuchen, "alles" in einem Git Repo zu stopfen.
Siehe auch "What are the basic clearcase concepts every developer should know?" für einen Vergleich zwischen ClearCase und Git.

Stream kann sicher als Zweig importiert werden.
Aber VOBs sind nicht unbedingt ein Git Repo.

Wenn Sie UCM verwenden, würde ich ein Git Repo pro UCM-Komponente empfehlen.

Wie auch immer, Sie müssen in Ihrem Git Repo eine Möglichkeit aufzeichnen, welche ClearCase-Ansicht Sie verwenden können, um Ihre Daten (über eine simple clearfsimport) zu synchronisieren.
Die Ansicht, die für das erneute Importieren von ClearCase-Daten verwendet wird, ist eine UCM-Ansicht, die automatisch mit dem richtigen Stream für das richtige VOB verknüpft ist.


Hinweis: Ich erwähne in "How to bridge git to ClearCase?" eine einfachere Lösung, die aber nicht importiert die alle Geschichte in einem Repo-Git.

+1

Danke, das scheint mir sehr zu helfen. Ich stimme zu, dass die Verwendung aller VOBs oder aller UCM-Komponenten in einem einzigen Repo dazu führen wird, dass GIT eine lange Zeit benötigt, um eine Operation durchzuführen, insbesondere wenn es 20 GB ist. Kannst du mir noch etwas erklären? Nehmen wir an, es gibt einen Repo für eine ucm-Komponente/ein VOB, aber da laut Diskussion alle wichtigen CC/UCM-Ströme als Verzweigungen im Repo vorhanden sind, ist es für verschiedene Entwickler möglich, gleichzeitig zu verschiedenen Zweigen des gleichen Repos zu wechseln zu warten, wenn alle Zweige in demselben bloßen Repo sind? –

+0

@Senthil: Ja: Sie können jeden Zweig in einem Remote-Repo-Push-Vorgang drücken. Hinweis: Wenn Sie mehrere UCM-Komponenten (dh mehrere Git-Repos) benötigen, um damit zu arbeiten (lesen oder ändern), benötigen Sie ein oder mehrere Hauptprojekte mit Submodulen (siehe http://stackoverflow.com/questions/1979167/ git-submodule-update/1979194 # 1979194) – VonC

1

In Bezug auf Zweigen und repos, würde ich mit einem vob == ein Git-Repo-Regel gehen, da git Repo wirklich gemeint ist, um für ein einzelnes Projekt verwendet zu werden, genauso wie für VOBs.

Wie bei Zweigen sollten Zweignamen über VOBs/Repos übereinstimmen. Sehen Sie sich Submodule in git an, um zu sehen, ob dies in Ihrem Fall verwendet werden kann.

Was ich persönlich sehen möchte, ist ein ausgereiftes git-cc-Backend, mit dem ich git auf meiner dev-Box verwenden kann, während ich mit dem CC-Repository des Unternehmens synchronisieren kann.

4

Obwohl ich es nicht unbedingt als den "besten" Weg zur Synchronisierung der beiden vorschlagen würde, können Sie den Verlauf importieren und Änderungen an Clearcase über mein git-cc-Tool zurückgeben, wie erwähnt here.