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]]