210 likes | 426 Views
Revision Control Systems. Amin Tootoonchian Kian Mirjalali. Outline. Revision Control Systems Samples Subversion ClearCase. Revision Control Systems. An SCM activity Controlled and incremental changes Revision control/Version control/Source control
E N D
Revision Control Systems Amin Tootoonchian Kian Mirjalali
Outline • Revision Control Systems • Samples • Subversion • ClearCase Revision Control Systems
Revision Control Systems • An SCM activity • Controlled and incremental changes • Revision control/Version control/Source control • Management of multiple revisions of the same unit of information • Uses • Engineering • Software development Revision Control Systems
Storage Models • Models • Centralized • Shared server • SVN, ClearCase, … • Distributed • Changes shared between distributed repositories • No network connection required • TeamWare, GNU arch, … • Compression • Delta compression differences are retained Revision Control Systems
Concurrent access • Locking and granting modification access to one developer at a time • Protection against difficult merge conflicts (in the case of radical changes possibly) • Release of lock! • Allow multiple editing at the same time • Facilities to merge changes later • Reserved edit • Optional operation to provide exclusive access (by locking) Revision Control Systems
Integration • Integration with software engineering process and other tools • Deeper integration with IDEs by using plugins to provide easy access to revision control system • Plugins for Eclipse, Visual Studio, Netbeans • e.g. subversion plugin for eclipse Revision Control Systems
Repository Working copy Check-out Commit Change Change List Update Merge/Integration Revision/Version Import Export Conflict Resolve Baseline Terms Revision Control Systems
Subversion • Open Source instance of a version control system • Abbreviated to svn in reference to the name of its CLI • Modern replacement for CVS • Shares a number of the same key developers Revision Control Systems
Subversion – Features • Atomic commits • Renamed/copied/moved/removed files retain full revision history • Versioned directories, renames, and file metadata • Entire directory trees can be moved around and/or copied very quickly, and retain full revision history • Versioning of symbol links • Full MIME support Revision Control Systems
Subversion – Features (cont’d) • Native support for binary files • Space-efficient binary-diff storage • Apache HTTP server as network server • Costs proportional to change size, not the data size • Parsable output, including XML log output • Open Source licensed • File locking for unmergeable file • Reserved checkouts Revision Control Systems
Subversion – Repository access • Local or network file system, accessed directly • WebDAV/DeltaV (over http or https) • mod_dav_svn module for apache2 • Custom svn protocol • Plaintext • Over SSH Revision Control Systems
Subversion – Layers • Fs • Lowest level • Versioned file system which stores the user data • Repos • Repository built up around the file system • Helper functions/handles various hooks • File system interface = Fs + Repos • mod_dav_svn Revision Control Systems
Subversion – Layers (cont’d) • Ra • Handles repository access both local and remote • Client, Wc • Highest level • Abstracts repository access • Provides common client tasks • Wc library used by the client to mange the working copy Revision Control Systems
Subversion – File System • Three dimensional • Two dimension • Tree structure • Third dimension • Each revision has its own root • Files • Links to the most recent changes made Compactness • Transactions used to keep changes atomic Revision Control Systems
ClearCase • Rational Software • Large and medium sized projects • Two types: • UCM • base ClearCase Revision Control Systems
ClearCase – Views • Versioned Object Base (VOB) • Multi-version File System (MVFS) • Dynamic views • Snapshots • View-private files • Branch hierarchy Revision Control Systems
ClearCase – Configuration Specifications • For each view • Collection of rules: • Visible elements in a view • Which versions of these elements • “include” statement Revision Control Systems
ClearCase – Features • Configuration Record • Read files during the build are recorded. • Dependency information • Use: • Making other views • Applying labels • Build Avoidance • Copying over derived objects • If they have the same configuration record Revision Control Systems
ClearCase – Features (cont’d) • Unix/Windows interoperability • Windows clients access by views • *nix clients access by snapshot views • Integration with other products • Rational Software • ClearQuest, Rational Rose, … • Microsoft Visual Studio • Eclipse IDE Revision Control Systems
References • Wikipedia, the free encyclopedia • Version Control with Subversion - 1.2, O’Reilly Media • IBM Software – Rational ClearCase Documentation Revision Control Systems
The END… Questions?Comments? Points of view? Revision Control Systems