RE: Fwd: Are complex tags bad, evil, from hell?
From: Tony Harverson <tony.harverson_at_iglu.com>
Date: 2006-11-16 18:39:54 CET
Hi There,
On the "Complex Tags/Frankentags" issue, however, I think the scenario being contemplated here requires a similar approach to the FreeBSD release tree (at least as far as I understand that release Process). I'm probably going to screw up the svn syntax somewhere here, but the general Idea is:
1) Branch the tree into an appropriate branch, using Remote copies, logging the reasons etc.
- svn mkdir http://subversion/svn/repos/branches/Releng_6_2_0 -m"Branch for 6.2.0 Release"
2) Copy each library/subproject/component you actually care about into the branch.
- svn copy http://subversion/svn/repos/trunk/Project1 http://subversion/svn/repos/branches/Releng_6_2_0/Project1 -m "Initial commit of Project 1 - We've used version 17.274 because the 17.399 is unstable"
3) check out http://subversion/svn/repos/branches/Releng_6_2_0 and Compile/Test/Correct/Compile/Test
4) Once you're convinced you've finished the build, you can tag the thing..
And... 5)Release.
Trunk@HEAD can be left alone, Bugfixes can easily be applied to the Releng branch, which can easily be retagged (either 6_2_0_Buildnumber or committing to 6_2_0_Release, but I'd say the latter is a bad and confusing Idea..), and you don't actually *need* labels (you always just want branches/Releng_6_2_0@Head, or tags/6_2_0_Release@Head, so you don't need the revision ID at all. This methodology also makes it easy to get a copy of the tag to investigate and fix bugs, means you don't have to futz with trunk@HEAD, and makes it easy to merge bugfixes from live to branch, using the svn or tortoise merge tools.
The only problem I can think of with a setup like this is that you can't look at foo.c and see which tags it's landed up in (Although obviously looking at a file in a tag and seeing where it came from is easier).I think this really does argue in favour of a "Copied To" history item, which has been mentioned recently on this list.
This may strike you as overly complicated, but if you're building a project with multiple dependencies and you want jagged revisions, I would imagine whatever toolset you come up with, you're going to have something of a complicated solution. Plus, at least this way, you have somewhere to commit a fix to the older rev to.
This strikes me as the "Proper" way of solving it, while complex labels would result in a situation where storing changes to the old revision would be difficult, etc..
Right.. I've opened mouth, I've inserted foot, time to echo internationally....
Tony
-----Original Message-----
(forgot to reply all, again - Fwd-ed)
This is starting to sound like an argument for not using source revisioning at all.
"If the developer doesn't comment a revision, we'll never know why he made that change"
Hell, let's all pack it in, and never write another line of code, just in case someone creates a bug, or someone uses the application to do something we didn't intend.
<Serious mode on>
On 16/11/06, John Waycott <javajohn@cox.net> wrote:
---------------------------------------------------------------------
---------------------------------------------------------------------
|
This is an archived mail posted to the Subversion Users mailing list.
This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.