Subversion
Subversion (http://subversion.tigris.org/) is currently the most popular version control
system among Rails developers. It was designed to be a replacement for CVS,
and it has been very successful. Developers used to CVS will feel at home with Subversion??™s
commands.
As a centralized version control system, Subversion uses one primary server that
keeps a master repository. Developers check out a working copy, make their
changes, and check them back in. By default, Subversion uses the copy-modify-merge
model for concurrent development. Multiple people can check out the same file,
make concurrent changes, and have their work merged. Non-overlapping changes
will be merged automatically; conflicting changes must be merged by hand.
Files that cannot be merged (such as image files) can be locked for serialized access:
$ svn lock images/logo.png -m "Changing header color"
(work with logo.png...)
$ svn ci images/logo.png -m "Changed header to blue"
You can also use the svn:needs-lock property to designate that a file should be
locked before editing. If a file marked with that property is checked out without a
lock, the working copy version will be set as read-only to remind the developer to
lock the file before changing it.
Subversion was designed as a replacement for CVS, and it improves on CVS in many
ways:
??? Subversion has truly atomic commits; interrupted commits are guaranteed to
leave the repository in a consistent state (though they may leave outstanding
locks in the working copy).
Pages:
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453