??? Subversion supports constant-time branching using copy-on-write semantics for
copies. Branches and tags are simply directories; they are not separate objects as
in CVS.
??? Directories are tracked independently of the files they contain. Directories and
files can be moved while retaining their version history.
??? Symbolic links can be stored in the repository and versioned as links.
Version Control | 299
Subversion provides the best fit for many developers, especially in the open source
world. Many projects have migrated from CVS to Subversion over the past few years.
Subversion is successful in a large part because it strikes a good balance between features
and ease of use.
One drawback of Subversion is that it can be difficult to build the server from source
because of its dependencies. It is built on top of APR (the Apache Portable Runtime),
a portability layer for network applications. Although the basic dependencies
are included for a svnserve installation, you may run into difficulty if you want to use
Apache as a Subversion server. However, once you have the dependencies in order,
building the server is straightforward.
Decentralized Version Control
Centralized version control has some drawbacks, especially when working in larger
teams. The central server and repository can become a bottleneck, especially when
dealing with many developers, as in large open source projects.
Pages:
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454