sprava CMS projektu s verzovacim systemom GIT
- xrep
- Člen | 51
Ahoj,
dajme tomu ze vytvaram CMS system na ktorom pobezi niekolko klientov. Pre kazdeho klienta ma toto CMS kopec kodu ktory je „zdielany“ to riesim v Nette cez „AdminModule“ a zlozku „FrontModule“ ktora je v podstate unikatna lebo obsahuje sablony ktore ma kazdy klient ine.
Ako to riesit na Gite resp. co je vhodnejsie riesenie?
- mat vlastny repozitar pre kazdeho klienta a klonovat to apod, alebo ..
- mat to v jednom repo a kazdy klient ma svoju branch?
Nastavaju tam potom take otazky ako:
- Viem z Gitu pulnut iba urcitu branch?
- Ak bude mat kazdy klient vlastne repo, ako budem aktualizovat kod ak vyjde nova verzia CMS? (resp. ako to jednoducho dostanem do kazdeho repozitara)
- Filip Klimeš
- Nette Blogger | 156
Ahoj,
oba dva přístupy se mi jeví jako trade-offs, ze kterých si můžeš
vybrat.
Vlastní repozitář pro každého klienta je bezpečnější, protože klient se případně nedostane přes GIT ke kódu ostatních, nesmaže nějakou z větví atp. Určitě můžeš natahovat commity z jiného repozitáře (ke kterému nebude mít klient push práva), umí to např. GitHub (forky můžou tahat z originálního repozitáře).
Samozřejmě, pokud budeš mít k serveru přístup pouze Ty, můžeš zvolit jednodušší cestu a dělat vše v jednom repozitáři. Musíš si ale dát větší pozor. Zakázat přístup k ostatním větvím může být komplikovanější.
Nejideálnější by samozřejmě bylo mít vytvořenou závislost na CMS přes composer, ale nevím, jestli to v Tvém případě půjde.
Editoval Filip Klimeš (12. 4. 2015 14:44)
- xrep
- Člen | 51
Ahoj,
vdaka za odpoved, trochu o tom citam a zatial to vidim takto
Pristup kde je viacero vetvi:
- nizsie poplatky v pripade pouzitia GitHub (kde cena rastie s poctom repozitarov), Bitbucket (kde cena rastie s poctom uzivatelov)
- ovela vacsia praca pri sprave projektu, zakladani noveho (natiahnutie iba urcitej branche, nastavenie „untrack“ ostatnych branchi a podobne)
Pristup kde je viacero repozitarov:
- Nemoznost pouzit GitHub (max 50 repozitarov), u Bitbucket je repozitarov neobmedzene ale zbytocne poplatky ak je viacero userov
- da sa riesit vlastnym git serverom, prip pouzit GitLab
- jednoduchsia sprava projektu cez Git
cize vyhodnejsie mi pride mat viacej repozitarov..
Editoval xrep (12. 4. 2015 15:10)
- Tomáš Jablonický
- Člen | 115
Já osobně bych CMS rozdělil do několika modulů a tyto moduly by měli vlastní repo. Dále bych si vytvořil sandbox celého CMS.
Moduly bych pak udělal jako composer balíčky a zaregistroval je do composer.json v sandboxu a nainstaloval.
Pro každého klienta bych si pak vedl vlastní repo s klonem sandboxu.
Když bude požadavek něco změnit, uděláš to v příslušném modulu s ohledem na zpětnou kompatibilitu.