Re: Really going to 5.3.1RC1
| From: | Patrick ALLAERT | Date: | Mon, 31 Aug 2009 12:09:16 +0000 |
| Subject: | Re: Really going to 5.3.1RC1 | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-45442@lists.php.net to get a copy of this message | ||
Hi Johannes,
2009/8/29 Johannes Schlüter <johannes@php.net>:
[snip]
> I'm not toooo used to subversion therefore I'd like some comments about
> this procedure:
>
> 1) Monday evening branch of a release branch owned by me
> $ svn cp branches/PHP_5_3 branches/php_5_3_1
> Question A: using php as in our tags or PHP as in our branches?
I would suggest keeping "PHP" for a branch because it will be used as
is, it can be renamed with "php" while doing the svn copy|move to
tags. More details after.
> Question B: can svn merge be used to get changes from PHP_5_3 or is a
> manual merge better?
The merge tracking is an interesting option, I would greatly recommend
using it. You can easily use the "-c" option to merge a specific
revision number.
> 2) Tuesday: Change the version
> $ vi branches/php_5_3_1/main/php_version.h etc.
> 3) making the branch a tag
> $ svn mv branches/php_5_3_1 tags/php_5_3_1
I would suggest a copy rather than a move because you may have to
create different tags (RC1, RC2,...) from this branch.
$ svn copy branches/PHP_5_3_1 tags/php_5_3_1RC1
> 4) merge the tag into the PHP_5_3 branch
> $ cd branches/PHP_5_3 && svn merge ../tags/php_5_3_1
> The idea would be that the release appears in the
> branch's history and nothing is being lost
There is no such merge needed, svn keeps track of copies and merges.
From svn clients, it is perfectly possible to generate a graph with
copies (tags) made from that branch.
> Question: Does that make any sense?
IMHO, No.
> 5) Change the version to RC2-dev
> $ vi branches/PHP_5_3/main/php_version.h etc.
This should be made in branches/PHP_5_3_1, before the tag is created.
> Feedback on this procedure and svn usage welcome. If this doesn't work
> out the procedure can be changed for the next release and I guess a RC
> is a better test than a "proper" release.
>
> johannes
To summarize, I would recommend the following steps:
0° Creating the 5.3.1 branch
$ svn cp branches/PHP_5_3 branches/PHP_5_3_1
$ vi branches/PHP_5_3_1/main/php_version.h etc. // Filling next tag
information, e.g. 5.3.1RC1
$ svn ci
1° Creating the 5.3.1RC(\d) tag
$ svn copy branches/PHP_5_3_1 tags/php_5_3_1RC1
2° Lifetime of PHP_5_3_1:
a) Patching PHP_5_3_1
$ svn merge -c xxxxx branches/PHP_5_3 branches/PHP_5_3_1
b) Fixing next version info
$ vi branches/PHP_5_3_1/main/php_version.h etc. // Filling next tag
information, e.g. 5.3.1RC2, 5.3.1...
3° Goto 1° unless tagging the final release
4° Tagging final release:
$ svn copy branches/PHP_5_3_1 tags/php_5_3_1
(optionally, branches/PHP_5_3_1 could be removed, but shouldn't be
"moved" as it would make a weird graph for merges/copies tracking)
Notes:
Developers commit should be made to branches/PHP_5_3 *only*
Release manager(s) only commit "svn merge" operations to branches/PHP_5_3_1
Tags are strictly read-only copies created with "php"
Branches are always created using "PHP"
Does this sounds good for you?
--
Patrick Allaert
---
http://code.google.com/p/peclapm/ - Alternative PHP
Monitor