Ik zit een beetje met deze situatie:
Om thuis te raken met git heb ik een tijdje geleden alles van svn omgezet naar git.
Een hoop dingen geleerd, maar een paar dingen kennelijk niet helemaal juist begrepen.
Ik heb een master branch (stable) en een nightly branch die elke dag wordt uitgerold met de laatste snufjes en dingetjes erin.
Nieuwe features gingen in een eigen branch vanaf de nightly branch en wanneer ze klaar waren werden ze terug gemerged in nightly.
Die feature branches zijn blijven bestaan en had ik laatst de situatie dat iets goed getest was in nightly en moest in een nieuwe stable release komen.
Dus ik de feature branch mergen naar stable en HOPPA! alle features van voor die tijd dat de feature branch gemaakt is uit de nightly branch krijg je ook cadeau.
Dat was dus niet de bedoeling. Ik snap denk ik wel het principe erachter, maar heb dat verkeerd ingeschat.
Een beetje deze situatie (synchroon uitgebeeld)
master -> hotfix
featureA gestart vanaf nightly
featureB gestart vanaf nightly
featureA terug naar nightly
featureB terug naar nightly
featureC gestart vanaf nightly
featureC terug naar nightly
featureC wordt goedgekeurd en mag naar stable
ik merge featureC branch naar stable en in stable zitten dan ook ineens feature A en B terwijl die ontwikkelingen nooit in de feature branch hebben plaatsgevonden.
De enige optie die ik zelf kan bedenken is om door de log heen te gaan en de boel te gaan cherrypicken.
Dat wil ik alleen niet doen als het niet nodig is want dat veroorzaakt gaten in mijn history.
Is er nog iets slims wat ik kan doen?
Kan ik beter features starten vanaf een zo laag mogelijke versie (master in dit verhaal) en die feature branches dan laten bestaan en die mergen naar nightly en wanneer goedgekeurd mergen naar master?
PS. Ik ben trouwens bekend met gitflow en dat is geen optie voor mij omdat die release cycle anders verloopt.
Om thuis te raken met git heb ik een tijdje geleden alles van svn omgezet naar git.
Een hoop dingen geleerd, maar een paar dingen kennelijk niet helemaal juist begrepen.
Ik heb een master branch (stable) en een nightly branch die elke dag wordt uitgerold met de laatste snufjes en dingetjes erin.
Nieuwe features gingen in een eigen branch vanaf de nightly branch en wanneer ze klaar waren werden ze terug gemerged in nightly.
Die feature branches zijn blijven bestaan en had ik laatst de situatie dat iets goed getest was in nightly en moest in een nieuwe stable release komen.
Dus ik de feature branch mergen naar stable en HOPPA! alle features van voor die tijd dat de feature branch gemaakt is uit de nightly branch krijg je ook cadeau.
Dat was dus niet de bedoeling. Ik snap denk ik wel het principe erachter, maar heb dat verkeerd ingeschat.
Een beetje deze situatie (synchroon uitgebeeld)
master -> hotfix
featureA gestart vanaf nightly
featureB gestart vanaf nightly
featureA terug naar nightly
featureB terug naar nightly
featureC gestart vanaf nightly
featureC terug naar nightly
featureC wordt goedgekeurd en mag naar stable
ik merge featureC branch naar stable en in stable zitten dan ook ineens feature A en B terwijl die ontwikkelingen nooit in de feature branch hebben plaatsgevonden.
De enige optie die ik zelf kan bedenken is om door de log heen te gaan en de boel te gaan cherrypicken.
Dat wil ik alleen niet doen als het niet nodig is want dat veroorzaakt gaten in mijn history.
Is er nog iets slims wat ik kan doen?
Kan ik beter features starten vanaf een zo laag mogelijke versie (master in dit verhaal) en die feature branches dan laten bestaan en die mergen naar nightly en wanneer goedgekeurd mergen naar master?
PS. Ik ben trouwens bekend met gitflow en dat is geen optie voor mij omdat die release cycle anders verloopt.