[Scummvm-devel] branching and tagging

Willem Jan Palenstijn wjp at usecode.org
Sat Jun 25 23:08:35 CEST 2011


Hi all,

_sev, fuzzie and I discussed tagging/branching on IRC earlier. The resulting
proposal is below.


Important note: if we all agree to implement this, there will be one immediate
change:

* I'll create a new branch-1-3 at the current branch-1-3-0
* I'll move branch-1-3-0 to the current tag v1.3.0
  (This will involve a force-push!)



The base situation is a version 1.4.0git on master.


When it's time to branch for release 1.4.0:
* create branch-1-4 from master
* increase version on branch-1-4 to 1.4.0pre
* create annotated tag desc/1.4.0pre on that version increase commit
* increase version on master to 1.5.0git
* create annotated tag desc/1.5.0git on that version increase commit

When we have some bugfix that should be in 1.4.0:
  * commit it on master
  * cherry-pick it to branch-1-4 (possibly after some testing/discussion of the
    commit on master). Use "cherry-pick -x" to add a note such as
    (cherry picked from commit ece449298d5c34db763ae78b370842de17af17ef)
    to the commit message
OR
  * commit a modified/safer/restricted version on branch-1-4


When it's time to start building 1.4.0:
* create branch-1-4-0 from branch-1-4
* increase version on branch-1-4-0 to 1.4.0

When there are changes that require rebuilding 1.4.0 ("retagging" in old terms):
* make sure the necessary commits are on branch-1-4
* merge branch-1-4 into branch-1-4-0

When 1.4.0 is done and ready to be announced
* create annotated tag v1.4.0 on branch-1-4-0
* increase version on branch-1-4 to 1.4.1pre
* create annotated tag desc/1.4.1pre on that version increase commit


Miscellaneous thoughts on this topic:

Merging branch-1-3-0 back into master had the side effect of breaking
git-describe which we only just noticed, so we should avoid that if we want to
keep using git-describe the current way.

When release tarballs are first made, there is no tag for them, so the request
for builds will just be for builds from branch-1-4-0 (possibly with an explicit
commit specified). The reason is that moving tags is undesirable since clients
with tags already checked out won't get any notification the tag has moved.




Let us know what you think!

-Willem Jan




More information about the Scummvm-devel mailing list