Game Development Reference
In-Depth Information
Every project should have a Trunk branch and a Gold branch. Every source code
repository does this a little differently. When a milestone build is launched, the first
thing that happens is the Gold branch gets a fresh copy of the Main branch. The
branches are synchronized without merging, which means that the entire Main
branch is simply copied to the Gold branch, making them identical. Make sure that
the Gold branch doesn
t have any unintegrated changes you want to keep! That usu-
ally requires a little human supervision
'
t
automate. The build machine runs the build scripts from the Gold branch to make
the milestone build. This implies that the Trunk and Gold branches can exist on the
same machine at the same time. This is true.
Most source code repositories allow a greater degree of freedom for each client to
configure how it views the contents of the repository. It
that is one bit that you probably shouldn
'
'
s pretty easy to configure
the client to put all the Trunk branches of the Rainman project into a D:\Projects\
Rainman\Trunk directory and all the Gold branches into D:\Projects\Rainman
\Gold. The build scripts can even use a branch macro to figure out which branch
needs building.
After the milestone build is assembled, it should be packaged and sent to testing. In
our case, this meant ZIPing up the entire build and putting it on our FTP site so
Microsoft
'
s test department could grab it.
Old Advice Turned Out to Be Dumb Advice
In the first and second editions of this topic, I advised readers to use
monolithic ZIP or RAR files to package their entire build and FTP that one
file. This turns out to be a horrible idea. I was working on a project that
had to upload a multigigabyte file, and when the FTP failed seven hours
into the upload, we had to start all over. Contrary to intelligence, some top
20 publishers use old-fashioned FTP systems with no ability to restart bad
transfers. Instead of monolithic files, use volumed RAR/PAR files. Most RAR
tools can split a monolithic RAR file into smaller volumes, each of which may
only be a few hundred megabytes. The PAR files can be used to actually
rebuild a corrupted file on the receiving end, saving both parties a ton of
time.
Teams almost never submit milestone builds that are approved with no changes.
Most of the time, testing will require some changes, both major and minor. Any of
these changes should happen in your Gold branch. You can then rebuild the Gold
branch and resubmit it to your testing group. This process continues until the test
team is satisfied. The Gold branch is then merged to the Trunk branch. This is usu-
ally an automatic process, but sometimes merge conflicts force a human to stare at
the changes and merge them.
Search WWH ::




Custom Search