V práci používáme sice TFS, ale SVN/Git na tom bude v tomto ohledu podobně - rozdíly jsou jinde.
Řekněme, že máš větev 27.Release.1, která je u zákazníků / uživatelů. Máš 27.HotFixes.1 pro opravy a 27.QA.1 pro testery. Pro vývoj pak 28.Devel, kde probíhá nový vývoj, 28.QA pro testery.
Objevíš chybu ve verzi 27. Chce to se rozhodnout, zda-li opraviš chybu v nové verzi (28.Devel) a starou necháš tak (jsi-li Microsoft, tak si to můžeš dovolit, neb je to nejlevnější varianta), nebo opravu uděláš v 28.Devel a backportuješ ji do 27.HotFixes.1 a pak opravu vydáš s aktualizací (toto se až tak často nepoužívá pro opravy, spíš pro nové funkcionality, které moc nezávisí na jiných částech kódu) a nebo jestli chybu opravíš v 27.HotFixes.1, což je nejčastější.
Až bude oprava zanesena v 27.HotFixes.1 větvi, mergneš ji do QA větve, opravíš chyby (pokud Ti je tester nahlásí; obecně platí, že pokud 1 tester hlásí "vše OK", dej to jinýmu). Až bude čas na vydání aktualizace, větev 27.QA.1 zkopíruješ, kopie nazveš 27.Release.2 a 27.HotFixes.2 a 27.QA.2. Z 27.Release.2 vydáš aktualizaci. Celý kolečko začíná znovu.
Potom si zkopíruješ 28.Devel, např. na 28.BugFixes. Do ní provedeš merge bugfixů z 27.Release.2 a nechát to testery projít. Po opravách ji mergneš zpět do 28.Devel, rozchodíš, merge do 28.QA a znova testování.