Large software development projects often suffer problems tracking changes in the source code.
One aspect of good practise is to adopt the correct tools for project management and source control.
Even small projects run by individual developers can benefit from using these kinds of tools. There
are many tools to support project codebase management, for example, the Concurrent Versioning
System (CVS) or Subversion, are two free, open source tools. Creating these kinds of tools is not
difficult and the power of scripting means that a management tool can be knocked together quite
rapidly to support the particular needs of your project.
For this project, your task is to write a set of shell scripts which offer some of the features found in
a CVS-type application. The aim is to support multiple developers working on the same project
doing the following kinds of tasks:
• tracking changes to the source - for example, creating a log of edits that have been made to a
• logging revisions - for example, what changes have been made to the file. Can you track
them in sufficient detail so that you can undo changes?
• archiving versions - for example, creating a collection of project files that can be collected
into a single archive to form a specific version of a project, and
• logging authorship - for example, keeping track of which user, or project member, made a
specific change to the source.