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.
Cvs

Cvs

  • 2.
    CVS • Versioning systemsare 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
  • 3.
    • It useddiffs 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.
  • 4.
    • Brian Berlinerinitiated 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”.
  • 5.
    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.
  • 6.
    • Remarkably, atany 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.
  • 7.
    • As Fogeland 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.
  • 8.
    • CVS isa 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.
  • 9.
    • CVS, versioningtools 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.