Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

Git: ontwikkelingen in verkeerde branch

Pagina: 1
Acties:

Verwijderd

Topicstarter
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.

  • HMS
  • Registratie: Januari 2004
  • Laatst online: 17-11 00:33

HMS

Als je dit leest snap je als het goed is wat er fout gaat: http://git-scm.com/book/en/Git-Branching-What-a-Branch-Is

Er zijn een paar oplossingen, je zou je feature branch kunnen rebasen naar de master en dan vervolgens mergen. Je feature branch squashen (alle commits in 1 commit pletten) en cherry-picken, of een feature branch beginnen vanaf de master branch en niet van de nightly branch.

Als je dus features maakt die naar stable moeten, dan moet je dus gaan branchen vanaf stable. Dat is de meest logische workflow.

[ Voor 14% gewijzigd door HMS op 03-10-2013 15:53 ]