[p4] branching for version control - small companies
steve at vance.com
Thu Jun 21 13:37:11 PDT 2001
A common branching strategy for web development is a one or two-tiered
Development happens on the main. From that there is a sub-branch for
QA. From that, there is a sub-branch for release.
The QA branch allows:
1) Developments from main to be selectively chosen, something that can be
difficult with labels in the face of overlapping changes.
2) QA not only to happen, but to apply fixes, without any interruption of
or conflict with development. (Fixes should be merged back)
The release branch can be optimized away to a label on the QA branch,
depending on your situation. Conditions under which I've seen the release
branch required are when:
1) Some transformations need to be applied to take the site live, such as
link fix ups, changes to production database or middleware servers, load
balancing hooks, etc. (Granted some of these needs are hallmarks of an
insufficient QA environment or an immature infrastructure, but as you said,
"as an internet company ...")
2) The live site is populated directly from the branch and it's slightly
easier and less error prone to sync from head than from a specific
label. (e.g. People forget to update labels, they name them incorrectly, etc.)
Even with the release branch, I recommend labelling the versions that are
pushed live for rollback and recovery purposes.
With this structure, you'll find most integrations to be simple. Selective
promotion to QA is the thing that could complicate the most. Binaries
(gif, jpeg, png, pdf) will just be resolved with -at, since the new version
will rule. The more advanced web development tools like DreamWeaver and
GoLive have close-enough format preservation for meaningful
diffs. Likewise the least advanced, by hand, has the same property.
You need to decide whether the above benefits warrant the effort or
consulting cost to set up. Personally, I've found the flexibility and
benefits of the above structure worthwhile.
At 10:24 AM 6/20/2001 +0100, Oliver Harvey wrote:
> we're a fairly small company - 85 peeps - ~10 developers + some
>integrators + some sysops - running a fairly large website (> 40 million
>for version control we're a bit split in terms of opinion over whether to
>use branching, or to go for a more lightweight solution eg use labels...or
>with branching it looks like we'd get a nice convenient version history on
>our 'live' branch, but at a slight cost of maintaining the branch ie doing
>does anyone have any opinion/experience about whether we really should take
>the plunge and go for branching, ...or not ?? - or ideas on other schemes...
>personally I don't fancy it much - as an internet company I think we need to
>work fast and efficiently + I'm lazy.
>Interactive Investor International is a leading UK Internet personal
>finance service that provides individuals with the capability to identify,
>compare, monitor and buy online a number of financial products and services.
>Interactive Investor Trading Limited, a subsidiary of Interactive Investor
>International plc, is regulated by the SFA.
>perforce-user mailing list - perforce-user at perforce.com
mailto:steve at vance.com
More information about the perforce-user