Version Control
A version
control system (also
known as a Revision Control System)
is a repository of files, often the files for the source code of computer
programs, with monitored access. Every change made to the source is tracked,
along with who made the change, why they made it, and references to problems
fixed, or enhancements introduced, by the change.
Version
control systems are essential for any form of distributed, collaborative
development. Whether it is the history of a wiki page or large software
development project, the ability to track each change as it was made, and to reverse
changes when necessary can make all the difference between a well managed and
controlled process and an uncontrolled ‘first come, first served’ system. It
can also serve as a mechanism for due diligence for software projects.
Version
Tracking
Developers
may wish to compare today’s version of some software with yesterday’s version
or last year’s version. Since version control systems keep track of every
version of the software, this becomes a straightforward task. Knowing the what,
who, and when of changes will help with comparing the performance of particular
versions, working out when bugs were introduced (or fixed), and so on. Any
problems that arose from a change can then be followed up by an examination of
who made the change and the reasons they gave for making the change.
Coordinating
Teams
Resource
development is usually carried out by teams, either co-located or distributed.
Version control is central to coordinating teams of contributors. It lets one
contributor work on a copy of the resources and then release their changes back
to the common core when ready. Other contributors work on their own copies of
the same resources at the same time, unaffected by each other’s changes until
they choose to merge or commit their changes back to the project. Any
conflicts that arise - when two contributors independently change the same part
of a resource - are automatically flagged when the changes are merged. Such
conflicts can then be managed by the contributors.
Typically
in open source projects, version control systems allow anyone to read and copy
the project resources, but only authenticated users, known as committers, are
allowed to update source code in the repository.
Due Diligence
Many
activities in business are accompanied by a responsibility to perform ‘due
diligence’ checks. Precisely what these checks entail will depend on the
business activity in question, but with regard to intellectual property one
important ‘due diligence’ activity is the tracking of the ownership of its
constituent parts. So for example, if someone creates a piece of software and
wishes her organisation to release it, her organisation will almost certainly
want to check the provenance of all the code within the software. This process
is facilitated by the ability to track who made which changes to the code, and
when they were made. A version control system enables a list of contributors to
be compiled and the dates of their contributions to be ascertained. Such a list
can be easily cross-checked with a list of IP contracts.
No comments:
Post a Comment