Git migration

Jacek Konieczny jajcus at jajcus.net
Sun Jun 24 10:25:38 CEST 2012


On Sat, Jun 23, 2012 at 11:14:35PM +0200, Kacper Kornet wrote:
> > To może wybór nazwy nie był najlepszy? Ta rozwojowa wersja pewnie ma
> > swój numerek lub nazwę upstream.
> 
> Może tak, może nie. Zobacz jak to teraz działa w CVS.

Generalna zasada przy migracji z CVS czy SVN do git, opisana chyba w
każdym HOWTO na ten temat: zapomnij co było w CVS/SVN i naucz się od
razu po gitowemu.

> Jak coś zostało
> zmergowane do master, to branch jest usuwany. A Twoim podejściu jego
> nazwa zostaje na zawsze w repo

Razem z dokładną informacją co i gdzie było zmergowane. Właściwie, jak
zostało zmergowane, to branch w historii zostaje na zawsze, nawet jak
się jego nazwę usunie…

> i każdy kto będzie robił git-clone nawet
> długi czas po tym nadal go dostanie - zupełnie niepotrzebnie. Według
> mnie będzie już wtedy zupełnie niepotrzebnie zaśmiecał tylko przestrzeń
> nazw.

Trochę racji w tym jest. Ale jak nazwy to będą np. 'gdb-2.31' a nie
'DEVEL', to trudno będzie o pomyłkowe ściągnięcie czegoś nieaktualnego.

> Ja bym zostawił tą wolność developerom. Bo np. niektórzy mą chcieć
> zrobić git-rebase dla bocznej gałęzi. A tak im tego zabronisz.

Nie jestem pewien, czy 'git-rebase' w 'publicznym repo' jest rozsądne.
Jeśli tylko chodzi o rebase przed nałożeniem na główny branch, to
przecież można zrobić to w tymczasowym branchu w lokalnym repo.

> I to wyjdzie w praniu. Jakoś nie ma z tym obecnie jakoś dużo problemów.
> Dla przykładu zobacz zresztą jak jest prowadzone repozytorium git. Tam
> gałąź pu (takie totalne devel) jest często przewijana i resetowana i
> jakoś nikt nie ma z tym problemu. A jak będzie taka potrzeba do dodanie
> odpowiednich acl jest szybkie.

Dobra… może to być przydatne, użyteczne i akceptowalne, ale jak zasady
będą jasne. Pewnie można w niektórych przypadkach dopuścić, ale na pewno
nie na 'master' i raczej zasadą powinno być, żeby tego unikać.

> > A jaki jest teraz sposób prowadzenia tej gałęzi?
> 
> Mogę być w błędzie. Ale chyba są przypadki gdzie stary branch AC-branch
> jest likwidowany i tworzony nowy oparty o inne rewizje plików. W innych
> przypadkach to jest tak naprawdę tag, a nie branch. No ale to już
> ułomność CVS i możliwe, że po przejściu na git się to zmieni. Ale to już
> sprawa RM Ac.

Zwyczaje z CVS trzeba sobie i tak pozmieniać. A RM z zasady będzie miał
większe prawa… ale myślę, że bez resetów też sobie poradzi.

> > Zamiast w git://carme.pld-linux.org/packages/screen.git twój prywatny
> > branch leżał by w
> > git://carme.pld-linux.org/developers/draenog/screen.git i tam sam byś
> > odpowiadał za spójność historii.
> 
> 1) W tedy nikt inny tam pewnie nie zajrzy. Chyba, że commitlogi stamtąd
> też będą leciały na listę. 

Zajrzy, gdy rzucisz linkiem do konkretnego brancha. Nie zawsze o czymś
ciekawym musi informować automat.

> 2) Mogę chcieć go mieć w oficjalnym repo, żeby sprawdzić, czy buduje się
> na builderach

To jest jakiś argument.

> 3) Mniej ważny argument: marnotrawienie miejsca na dysku.

To byłby problem dopiero gdyby każdy developer robił swoje repo dla
każdego pakietu. W praktyce takie prywatne repo zajmowałyby
nieporównywalnie mniej miejsca niż wszystkie oficjalne.

> > Bo co zrobisz jak ktoś ci zrobi 'git reset' i wrzuci swoje commity na
> > 'twoim' branchu w oficjalnym repo?
> 
> A był kiedykolwiek problem, że ktoś komuś zlikwidował brancha?

W PLD? Tak. Kiedyś ktoś jakiegoś ważnego taga czy brancha nam z całego
repo przez pomyłkę usunął i trzeba było całość z backupu przywracać ;)
Ale w GIT nie dało by się tego spieprzyć aż tak jak wtedy w CVS :)

> Wydaje mi się, że trochę się martwimy na zapas.

Pewnie tak ;)

> Jak się pojawią konflikty to wtedy bym się martwił.

Jak się pojawi potrzeba resetu brancha w oficjalnym repo, to wtedy bym
się martwił ;)

> A tak to bym zostawił deweloperom wolność, czy
> np. na danej gałęzi wolą włączać niezbędne zmiany z master przez
> git-merge czy przez git-rebase.

Ale fajnie by było, jakby było wiadomo czego z której gałęzi można
oczekiwać.

Pozdrowienia,
        Jacek


More information about the pld-devel-pl mailing list