Diagrams for the hg branching strategy * Base workflow #+begin_src ditaa :file hgbranchingoverview.png | | programmers | maintainers maintainers | users | | +----+----+ +---+----+ /--------------\ | | | | |regular commit+----=---+ default | | stable | \--------------/ | | | | | | | | /--------------\ | | | | |regular commit+----=---+ | | | \--------------/ | | | | | +-------release merge--->| | ... | | | | | | | | | | /-----------\ | | | |<-merge-+release tag+-=-+ | | | \-----------/ | cBLU | | | | | +----------------+ | | | | | |<--+ | | | | feature branch | | cGRE | | | | {d} | | {d} | | {d} | +----+------+----+ | | /-----------\ | | : | | |<-merge-+hotfix cRED+-=-+ | | | | | \-----------/ | | | | | | | | | +-merge->| | | | | | | | | | +---------+ +--------+ | /-------+------\ |regular commit| +--------------------+ \--------------/ | Glossary | | | ... | --- branch change | | -=- stay on branch | +--------------------+ #+end_src #+RESULTS: [[file:hgbranchingoverview.png]] * Maintain several releases side-by-side #+begin_src ditaa :file hgbranchingmaintain.png | | programmers | maintainers maintainers | users | | +----+----+ +---+----+ /--------------\ | | | | |regular commit+----=----+ default | | stable | \--------------/ | | | | | | | | /--------------\ | | | | |regular commit+----=----+ | | | \--------------/ | | | | | +------------release merge------>| | ... | | | | | | | | | | /-----------\ | | | |<-merge------+release tag+-=----| | | | \-----------/ | | | | | | | | | | | | /----------------------\ | | | | |maintained release 1.x+-=--| | | | \-----------+----------/ | cBLU | +----------------+ | | | | | | |<---+ | : | | | feature branch | | cGRE | v | | | {d} | | {d} | /-----------\ | {d} | +----+------+----+ | | |hotfix cRED| | | : | | | \-------+---/ | | | | | | | | | | | | | : | | | | | | v | | | | | | /-------------------\ | | | | | | |release tag 1.(x+1)| | | | | | | \----------+--------/ | | | | | | | | | | | | | merge | | | | | | : | | | | | | v | | | | | | /----------------------\ | | | | | | |maintained release 2.y| | | | | | | \-----------+----------/ | cBLU | | | | | | | | | | | | : | | | | | | v | | | | | | /-------------------\ | | | | | | |release tag 2.(y+1)+-=-merge->| | | | | | \-------------------/ | | | | | | ... | | | | | | | | | +-merge-->| |<--------merge hotfix-----------+ | | | | | | | +---------+ +--------+ | /-------+------\ |regular commit| +--------------------+ \--------------/ | Glossary | | | ... | --- branch change | | -=- stay on branch | +--------------------+ #+end_src #+RESULTS: [[file:hgbranchingmaintain.png]] * Graft releases #+begin_src ditaa :file hgbranchinggraft.png | | programmers | maintainers maintainers | users | | +----+----+ +---+----+ /--------------\ | | | | |regular commit+----=---+ default | +----------------+ | stable | \--------------/ | | | | | | | +-->+ nextrelease | | | /--------------\ | | | c1AB {d} | | | |regular commit+----=---+ | +---+------+-----+ | | \--------------/ | | | | | | ... | | : | | | | | | | | | | | /---+---\ | | | | +-->+ graft | | | | | | \-------/ | | | | | ... | | | | | v | | | | | | | | release merge-->| | | | | | | | | | | | /-----------\ | | | |<-merge-+release tag+-=-+ | | | \-----------/ | cBLU | | | | | +----------------+ | | | | | |<--+ | | | | feature branch | | cGRE | | | | {d} | | {d} | | {d} | +----+------+----+ | | /-----------\ | | : | | |<-merge-+hotfix cRED+-=-+ | | | | | \-----------/ | | | | | | | | | +-merge->| | | | | | | | | | +---------+ +--------+ | /-------+------\ |regular commit| +--------------------+ \--------------/ | Glossary | | | ... | --- branch change | | -=- stay on branch | +--------------------+ #+end_src #+RESULTS: [[file:hgbranchinggraft.png]]