|MINI-HOWTO:
|1) Cheching in stuff on the main trunk: new features, bugs on new code, etc
| a) checkout jboss module (cvs co jboss), no tags
| b) do your changes
| c) commit them
| d) [optional] tag them
| Beware that cvs update -A (resetting sticky tags) is somehow less safe
|than a fresh checkout: CVS will not delete files you have in your local
|directory if they have been deleted from CVS (in a previous commit), so you
|end up with a mixed set of files.
|
|2) Checking in a patch on the "stable" branch
| a) checkout jboss module specifying the branch tag (cvs co -r 2.1_Stable
|jboss): this will checkout the *top* of the branch (ie the most recent
|changes to that branch). This is normally reason of confusion: you're not
This is a bit obscure to me.
Say the version is 2.1.5 (it is in one of the files) and the tag in cvs
2.1.5
To get the branch out on my disk I say
cvs co -r 2.1_Stable jboss? or
cvs co -r 2.1.5 jboss?
In other word the "Stable" is an alias for the latest one?
If not then you need to know the latest version before checking out, which
is workable but a source of much confusion I am sure.
|checking out the code at the moment of the branching, but the most updated
|one.
| b) do your changes
| c) commit them
| d) [mandatory] tag the branch, incrementing the patch number (cvs tag
|2.1.16 for example); this is vital to have easy merges to the main trunk
Ok so we "tag" the cvs with 2.1.16 AND the file with version=2.1.16???
Is cvs tag AND version overkill??
Do you use this yourself?
marc
| e) [mandatory] merge the changes to the main trunk if they're
|missing. Of
|course if other developer already fixed this on the main trunk as part of
|other changes the merge is not needed (but checking if it is needed is
|mandatory)
| f) [mandatory if e) was done] checkout the latest main trunk
|code (cvs co
|jboss), no tags
| g) [mandatory if e) was done] tag the main trunk (cvs tag 2.3.28 for
|example); this is also useful to track which files and when have
|been merged
|and if something went wrong we have tags to figure it out.
|
|3) Creating a binary (IMHO this is best done from branches)
| a) checkout the latest branch code, as 2a above (cvs co -r 2.1_Stable)
| b) run all the test
| c) tag the branch with an even minor release (cvs tag 2.2.0)
| d) if the even minor release is less than the current minor release on
|the main trunk, do nothing; else
| I) checkout the latest main trunk code (cvs co jboss), no tags
| II) tag the main trunk with the successive odd minor release (cvs tag
|2.5.0)
| For example we have 2.1_Stable on branch and 2.3.x on main trunk; we
|add lots of bug fixes on the branch; we create binary 2.2.0; we add more
|patches on the branch, until 2.2.85; then another binary is needed, so we
|create 2.4.0 *on the branch* *AND* we tag the main trunk with 2.5.0.
|
|Any comment ?
|
|Simon
|