I've looked at the Subversion Best Practices document, and chapters in
the subversion book, but I would still like to find more descriptions
of best practices for configuration and build management.
I recently moved from a job where we used clear case for build
management to this job where we are doing version control with
subversion, but not much in the way of build management.
I'm working to get some build process into play here, but I'm having
trouble thinking in svn terms instead of ccase terms.
Does anyone have a configuration management or build management
document to share?
I'd like to understand a branch workflow, a build workflow, and a
complicated branch workflow involving the need for a backmerge. I see
that making a build and taging seems to involve making a branch and
calling it a tag. But, I don't see how to manage it, and I'm not sure
I understand how/why/when a developer would work from a tag rather
than the trunk.
First question -- Suppose I have 1.0.1 and want to build 1.0.2 and
this build should include enhancement 1, bugfix 2, bugfix 3, but not
enh 4, bugfix 5, or bugfix 6.
In my clearcase days, I would have switched to my special view that I
used only for working on builds. My config spec would have ensured
that I wasn't picking up any changes made since the last build
(because everyone works on a branch, not the main line).
Then I would have run through my build scripts to merge in changes
from 1, 2, and 3. Then I would have tested my build before checking
everything in. When I checked everything in, I'd tag all of the files.
Developers working on 4, 5, and 6 would know about the build, and
would backmerge as appropriate.
At any point in the process, I could rollback and cancel the build.
In subversion, Would I create a temporary branch directory and use the
last release tag and switch in fixes from the bugfix branches into the
temporary build branch, and then when the release passes muster, make
a tag of it into the tags directory?
Second Question -- Suppose I have more than one bug open to work on.
In clearcase I could add both of those branches to my config spec if I
needed to use them at the same time. I'm not sure how this works,
exactly, with branching in subversion. If a build is made while I'm
working on a branch, do I switch in changes from the tag to my branch,
except for the files which I am changing?
Third Question -- Suppose I open a new defect, and want to make a
branch. Where do I make it off of? The last official tag, the trunk?
What do people typically do?
I apologize for the disorganized letter, I'm thinking outloud.
To unsubscribe, e-mail: email@example.com
For additional commands, e-mail: firstname.lastname@example.org
Received on Tue Dec 21 00:48:43 2004