Označenie súborov na sledovanie v GIT rubrika: Programování: PHP

1 kurecko.milan
položil/-a 10.7.2014

Máme vlastné CMS, ktoré prispôsobujeme potrebám zákazníkov. Čiže má nejaké základné knižnice, ktoré sa menia s verziami CMS a potom čast, ktorá je vždy iná per projekt (šablóny, modely). Často však upravujeme pre konkrétny projekt knižnice na mieru a potom pri upgrade sa stáva to, že si tie úpravy prepisujeme síce novými verziami, ale bez vlastných úprav.

Preto by som pri každom komite chcel vidieť takto upravené súbory osobitne, aby som im venoval špeciálnu pozornosť. V SVN som na to doteraz používal changelisty. Fungovalo to dobre, ale nevýhoda changelistov je v tom, že sú lokálne, teda nezdieľajú sa pri checkoute.

Premigrovali sme na GIT a tam som zatiaľ nenašiel k changelistom alternativu ani nejaký workaround ako toto riešiť

Ako by ste to s pomocou GITu riešili?

PS: Na vývoj, prácu s GITom ,deployment používame PHPStorm. Ten umožňuje vyrábať vlastné changelisty, ale keď som to správne testoval, tak po komite sú preč...

Komentáře

  • Anonym : Cez VCS chceš vyriešiť to, čo je chyba dizajnu CMS. 11.7.2014
odkaz
2 Retal
odpověděl/-a 10.7.2014

Pokud vám rozumím dobře, tohle v Gitu normálně řeší větve. Branch 'master' je hlavní větev, ze které vychází větve jednotlivých klientů. Když chcete klienta upgradovat na novou verzi CMS, použijete rebase v odvozené větvi.

git checkout old_client_branch
git rebase master

Když chcete novinky z klientské větve stáhnout do masteru pro všechny, použijete merge v hlavní větvi.

git checkout master
git merge client_with_new_code

Ještě robustnější by bylo, kdybyste v CMS vydělili základ, který nikdy klientům neupravujete na míru (tedy samotný framework), od toho, co upravujete. Framework pak můžete do projektů zakomponovat přes Composer jako závislost na soukromém repozitáři.

https://getcomposer.org/doc/05-repositories.md#hosting-your-own

Klientské repozitáře/větve v Gitu by pak obsahovaly jen to, co se opravdu liší.

Komentáře

  • Taco : Souhlasím. CMS jako závislost, a máš po problémech. 10.7.2014
  • Retal : @Taco: Aby to ale mělo smysl, musí nejdřív vydělit to, co mají všichni klienti společné. Jinak to rovnou může zůstat ve větvích pro každého klienta zvlášť. 10.7.2014
  • Taco : Ne nutně. Co je pro jednoho klienta specifické, to zůstane v src. Co je obecnější, z toho udělá knihovnu jako závislost, i kdyby ta knihovna měla být jen pro dvě instalace. A aplikace se skládá ze src a množství závislostí. Teda, samozřejmě je to popis hlavně idey, v praxi jistě budou různé komplikace. Ale šel bych určitě touto cestou. 11.7.2014

Pro zobrazení všech 5 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.