Jak zaimportować repozytorium CVS do Gita

Instalujemy konsolę Babun, uruchamiamy ją i instalujemy potrzebne narzędzia:

Logujemy się, aby uniknąć konieczności podawania za każdym razem hasła (zamień anonymous na swój login):

Importujemy repozytorium:

Importowanie dużego repozytorium, może potrwać nawet kilka lub kilkanaście godzin.

Kiedy import się zakończy możemy w pełni korzystać z możliwości Gita. Na początek proponuję przejrzeć istniejące gałęzie:

Powinniśmy otrzymać wynik zbliżony do:

Załóżmy, że chcemy pracować na gałęzi „new_window_feature”. Każda zmiana musi zostać zachowana w lokalnej gałęzi, zanim wyślemy ją na serwer CVS, więc tworzymy ją:

Teraz możemy pracować, przeglądać historię zmian itd. Po zakończonej pracy, ale przed wysłaniem zmian na serwer, należy upewnić się, że mamy najnowszą kopię kodu, a jeżeli ktoś w między czasie wysłał swoje zmiany na serwer, pobrać je. Służy do tego polecenie „git cvsimport”. Zanim ponownie go użyjemy, zapiszemy w konfiguracji kilka parametrów, aby ułatwić sobie przyszłą pracę:

Powyższe parametry są dokładnie takie same jak te, które podawaliśmy przy imporcie repozytorium. Przed importem zmian, musimy przejść na gałąź „master” (może istnieje inny sposób, ale na chwilę obecną go nie znam):

Po pobraniu zmian, korzystamy z polecenia „rebase”, aby uaktualnić naszą wersję:

Pobieranie repozytorium i synchronizacja zmian z serwera CVS do nas jest prosta i dość oczywista. Niestety, wysyłanie naszych zmian na serwer CVS już nie.

Aby wysłać własne zmiany na serwer CVS, musimy wcześniej pobrać kopię roboczą repozytorium przy pomocy klienta CVS, a następnie każdą rewizję przenosić do z kopii roboczej Gita do kopii roboczej CVS:

W czasie gdy CVS pobiera repozytorium, wyszukujemy w logu hashe rewizji, które chcemy wysłać na serwer CVS:

Zapisujemy hash:

Eksportujemy zmiany:

W wyniku powinniśmy otrzymać:

Ostatnia linia, to polecenie które musimy wykonać, aby wysłać zmiany na serwer CVS:

Linki

https://stackoverflow.com/questions/23109027/authreply-i-hate-you-response-while-using-git-cvsimport

https://stackoverflow.com/questions/11362676/how-to-import-a-cvs-repository-in-git-and-use-it-locally

https://stackoverflow.com/questions/584522/how-to-export-revision-history-from-mercurial-or-git-to-cvs/586225#586225

https://stackoverflow.com/questions/11478353/git-cvsexportcommit-pserver-fails

https://lists.gnu.org/archive/html/info-cvs/2004-08/msg00135.html

Dodaj komentarz

Twój adres email nie zostanie opublikowany.