Prev | Current Page 440 | Next

Brad Ediger

"Advanced Rails"

CVS introduced
the copy-modify-merge model for text files. Under this model, many developers can
work on different parts of the same file concurrently, merging the changes together
upon commit.
Repository hooks
The ability to run external scripts upon commit??”to run tests, notify a team,
start a build, or anything else.
Branches and modules
CVS allows multiple concurrent branches for development. Vendor branches can
pull code from unrelated projects; modules map symbolic names to groups of
files for convenience.
Figure 10-1. Centralized version control
Central repository
Working
copy
Working
copy
Working
copy
svn checkout /
svn update /
svn commit /
298 | Chapter 10: Large Projects
One often-cited drawback to CVS is that it does not guarantee atomic commits. If
interrupted while in process, commits can leave the working copy and repository in
an inconsistent state. Most other version control systems provide an atomicity guarantee:
commits are applied to the repository either in full or not at all.
In practice, this is more of an annoyance than a critical flaw. Important repositories
should be backed up regularly, regardless of what version control system they are
backed by. Still, this and other limitations make some developers uncomfortable. In
response, many other version control systems have evolved out of the CVS model,
and CVS is not used very much anymore for new projects.


Pages:
428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452