Game Development Reference
It's also possible that the configuration speci-
fication is correct, but one or more program-
mers did not properly label to the version that
needed to be built. The label can be left off,
left behind on an earlier version, or typed in
wrong so that it doesn't exactly match the
label in the config spec.
Figure 3.1 Mainline of a simple version tree.
Another problem can occur as a result of merging.
If a common portion of code is changed in each
version being merged, it will take skill to merge
the files and preserve the functionality in both
changes. The complexity of the merge increases
when one version of a file has deleted the portion
of code that was updated by the version it is being
merged with. If a real live person is doing the
merges, these problems may be easier to spot than if
the build computer is making these decisions and
changes entirely on its own.
Figure 3.2 A version tree with a branch.
Sometimes the code will give clues that
something is wrong with the build.
Comments in the code like // TAKE THIS OUT
BEFORE SHIPPING! could be an indication
that a programmer forgot to move a label
or check a newer version of the file back
into the system before the build process
Figure 3.3 Merging back to the mainline.