Tags & production questions
Satish Balay
balay at fastmail.fm
Thu May 3 21:40:12 UTC 2007
On Thu, 3 May 2007, Guido Ostkamp wrote:
> Hello Georg,
>
> >> With ClearCase/CVS the solution is easy: The tag label 'Release1' for
> >> the file B is moved to version 5 and we can go on with a fixed
> >> production.
> >
> > Uhhhh, don't do that. If you keep any touch on continuity and
> > reliability moving labels runs you into big troubles if anybody wants to
> > rebuild exactly the previously released version. Perhaps, I'm too
> > strict, but within the projects I have joined moving real release labels
> > was always a desaster.
>
> well, as you said, of course we never move labels once the version has
> been produced, passed internal quality assurance and has been released to
> customers. However, if there are errors during production or in early test
> stages, I feel it's perfectly legal to adjust labels as this belongs to
> the process of 'setting up' the version.
>
> Yes, you could instead certainly add a lot of increasingly numbered
> 'Release-candidate xyz' labels, but if just one file is missing or has a
> wrong version out of possibly thousands of files, this used to be
> overkill; also nobody has any interest in those rejected versions which
> were never officially released.
>
> Hm, possibly this kind of labeling might be easier with Mercurial.
The process you've mentioned assumes you don't hit any corner cases
[with wrong dependencies among changes] when you skip certain
revisions in your dev tree [or when you grab the latest sourcefile and
copy it over to the old release tag. etc..]
If these assumptions work for you with clear case/svn, then the
following process will work for you with mercurial.
- have a dev, release clones [instead of tags & branches]
- if you have a commit in dev that you want to apply to release do:
* cd dev-repo
* hg export rev10 rev12 > patchfile
* cd release-repo
* hg import patchfile
- now test release-repo code & publish
If you follow the 'release' process recommended by multiple folks in
this thread, the above process is still valid. [usually these changes
to release will cleanly merge back into dev]
You might be able to do the above with branches in a single repo. But
personally I prefer using multiple clones. Is is easy to clobber over
yourself when working with multiple branches, so the simplicity
offered by multiple-clones is worth the disk-space tradeoff for me.
Satish
More information about the Mercurial
mailing list