Přeskočit na obsah
_CORE
AI & Agentic Systems Core Informační Systémy Cloud & Platform Engineering Data Platforma & Integrace Security & Compliance QA, Testing & Observability IoT, Automatizace & Robotika Mobile & Digital Banky & Finance Pojišťovnictví Veřejná správa Obrana & Bezpečnost Zdravotnictví Energetika & Utility Telco & Média Průmysl & Výroba Logistika & E-commerce Retail & Loyalty
Reference Technologie Blog Knowledge Base O nás Spolupráce Kariéra
Pojďme to probrat

SVN branching strategie pro enterprise projekty

12. 04. 2011 1 min čtení CORE SYSTEMSdevelopment

Kdyz jsme pred dvema lety zacinali, meli jsme jednoduche pravidlo: vsichni commituji do trunku. Fungovalo to, dokud nas bylo pet. Ted mame sest vyvojaru, tri paralelni projekty a klienta, ktery potrebuje hotfix na verzi v produkci.

Nase branching strategie

Po nekolika mesicich experimentovani jsme se ustalili na modelu: trunk/ pro hlavni vyvoj, branches/release-X.Y/ pri feature freeze, branches/hotfix-X.Y.Z/ pro urgentni opravy a tags/release-X.Y.Z/ jako immutable snapshoty. Feature branches nepouzivame — v SVN je mergovani bolestive.

Release proces

Dva mesice vyvoje v trunku, pak feature freeze a vytvoreni release vetve. V release vetvi se opravuji pouze bugy. Trunk se otevre pro dalsi vyvoj.

Hotfix workflow

Klient vola v patek v 16:00. Verze v produkci je 2.0.3, trunk je na 2.1-SNAPSHOT. Hotfix vetev z posledniho release tagu, oprava, test, nasazeni, merge zpet. Nikdy neopravovat primo v tagu.

SVN hooks a pristupova prava

Pre-commit hook vynucuje JIRA cislo v commit message a zakazuje commit do tags/. Post-commit notifikuje Hudson. Authz soubor omezuje write pristup k release vetvim na seniory.

Zaverem

SVN branching neni nocni mura s jasnymi pravidly. Az prejdeme na Git, bude to kvuli lepsimu mergovani, ne proto, ze by SVN nefungoval.

svnbranchingreleasevcs