I prefer GIT, but SVN is widespread too. Even though SVN is not very old (it is only 12 years old) but it represents a clone of, rather than a re-imagining of, the antiquated CVS tool (released around 1989). CVS was itself a reworking of the (at the time) popular RCS tool first seen around 1982. RCS inherited its good looks from SCCS, created in 1972 for an IBM System/370.
![]() |
(Dodo credit Wikimedia Commons) |
So the core concepts that frame up SVN are over forty years old. The workflows have changed with each re-implementation, but the basic approach to version control is pretty similar. Vaguely, the way these tools work can be characterized by a few features:
- there is a single central point of update
- changes are tracked one file at a time
- it is left to the user to use labeling and other tool features to ensure that sets and subsets of files corresponding to systems and modules are self-consistent and sane configurations
- histories must be computed in a more or less unbroken chain
- filesystem level changes, and special file types, are not tracked well, or not at all
- renames are not well tracked
- file history can easily be lost
- higher level constructs for configuration versioning are missing
- no symbolic tagging
- branching is clumsy, heavyweight, long-lived, and error-prone
- data and metadata access is rigid and fragile, but fast
- repositories are exposed to corruption from trivial user level actions
- SVN is both faster and more robust, but still trivially easy to corrupt by network errors and faulty clients
![]() |
(Original finch image credit Wikipedia Commons) |
While the SCCS->RCS->CVS->SVN branch has thrived in the open source community, it remains a rather stilted lineage. This isn't because SVN is a mature tool now (although it is). Rather, it is because SCCS had fixed in place a large number of decision points that were not (or could not be) revisited even when its descendants broadened and matured the design. Up to a gross approximation of workflow, SCCS == RCS == CVS == SVN. Further diversification has a very high cost and low payback, and so no richness of form will arise from that fount.
For a more positive spin, read about the advantages of a distributed VCS on ThinkVitamin.
For a more positive spin, read about the advantages of a distributed VCS on ThinkVitamin.
1 comment:
A more positive spin on the advantages of a decentralized VCS
Post a Comment