View stunning SlideShares in full-screen with the new iOS app!Introducing SlideShare for AndroidExplore all your favorite topics in the SlideShare appGet the SlideShare app to Save for Later — even offline
View stunning SlideShares in full-screen with the new Android app!View stunning SlideShares in full-screen with the new iOS app!
CVS• Versioning systems are software tools that allow multiple developers to work on projects concurrently and keep track of changes made to the code.• The first such system was the Revision Control System (RCS) written in the early 1980s by Walter Tichy of Purdue
• It used diffs to keep track of changes just like later systems, but was limited to single files.• The first system that could handle entire projects was written by Dick Grune in 1986 with a modest objective in mind. He simply wanted to be able to work asynchronously with his students on a compiler project.• Grune implemented his system using shell scripts that interacted with RCS and eventually it evolved into the most widely used versioning system, the open source Concurrent Versions System, commonly known as CVS.
• Brian Berliner initiated the C implementation of CVS in mid-1989 by translating the original shell scripts into C.• Later contributors improved the system, noteworthy being Jim Kingdom’s remote CVS implementation in 1993 that “enabled real use of CVS by the open source community”.
Overview of CVS• CVS has been crucial to open source development because it lets distributed software developers access a shared repository of the source code for a project and permits concurrent changes to the code base.• It also allows merging the changes into an updated version of the project on the repository and monitoring for potential conflicts that may occur because of the concurrent accesses.
• Remarkably, at any point during a project development, any previous version of the project can be easily accessed, so CVS also serves as a complete record of the history of all earlier versions of the project and that of all the changes to the project’s code. It thus acts like what has been metaphorically called a time machine.• CVS, which is available for download from www.nongnu.org/cvs, is the most widely used version control tool.
• As Fogel and Bar observe, “CVS became the free software world’s first choice for revision control because there’s a close match . . . between the way CVS encourages a project to be run and the way free projects actually do run.• CVS serves two basic functions.• On the one hand it keeps a complete historical digest of all actions (patches) against a project and on the other hand it facilitates distributed developer collaboration.
• CVS is a client-server system under which software projects are stored in a so-called repository on a central server that serves content to possibly remote clients.• Its client-side manifestations let multiple developers remotely and concurrently check out the latest version of a project from the repository.• They can then modify the source code on the client(s) as they see fit, and thereafter commit any changes they have made to their working copy back to the central repository in a coordinated manner, assuming they have the write privileges to do so. This is called a copy-modify-merge development cycle.
• CVS, versioning tools followed a lock-modify-unlock model for file changes.• Only one developer could have access to a particular file at a time other developers had to wait until the file being modified was released. This kind of solo, mutually exclusive access requires considerable coordination.