CSC/ECE 517 Fall 2009/wiki1a 5 History of version control by av: Difference between revisions
No edit summary |
|||
Line 7: | Line 7: | ||
''[http://en.wikipedia.org/wiki/Revision_control Version control]'',
also
known
as
''revision
control'',
is
a
fundamental
part
of
[http://en.wikipedia.org/wiki/Software_configuration_management software
configuration
management]
(SCM),
and
acts
as
a
key
lifeline
in
a
team
environment.
Version
control
works
by
keeping
a
record
of
every
unit
of
information
and
tracks
the
changes
and
updates
made.
| ''[http://en.wikipedia.org/wiki/Revision_control Version control]'',
also
known
as
''revision
control'',
is
a
fundamental
part
of
[http://en.wikipedia.org/wiki/Software_configuration_management software
configuration
management]
(SCM),
and
acts
as
a
key
lifeline
in
a
team
environment.
Version
control
works
by
keeping
a
record
of
every
unit
of
information
and
tracks
the
changes
and
updates
made.
| ||
[http://en.wikipedia.org/wiki/Revision_control Version control] also
allows
for
multiple
users
to
edit
the
same
document
at
the
same
time,
providing
a
valuable
resource
for
team
projects,
and
enabling
a
better
working
environment.
Keeping
records
of
all
changes
to
a
set
of
information
provides
a
fail‐safe
solution
to
data
management,
and
an
archive
for
subsequent
reference.
[http://en.wikipedia.org/wiki/Revision_control Version control] works
by
uniquely
identifying
each
piece
of
information
and
recording
the
changes
with
it.
The
information
is
stored
in
a
data repository,
an
information
database,
and
can
be
accessed
remotely
or
locally
depending
on
the
type
of
system.
When
a
user
is
required
to
make
changes
to
a
document,
they
can
''checkout'' the
information
from
the
system,
giving
them
the
most
up‐to‐date
version
of
the
file
in
their
working
copy .
Once
the
file
has
been
amended,
the
user
can
then
commit ,
re‐submit,
the
file
updating
the
copy
in
the
repository
ready
for
use simple
concept,
there
are
many
problems
such
as
revision
storage. | [http://en.wikipedia.org/wiki/Revision_control Version control] also
allows
for
multiple
users
to
edit
the
same
document
at
the
same
time,
providing
a
valuable
resource
for
team
projects,
and
enabling
a
better
working
environment.
Keeping
records
of
all
changes
to
a
set
of
information
provides
a
fail‐safe
solution
to
data
management,
and
an
archive
for
subsequent
reference.
| ||
[http://en.wikipedia.org/wiki/Revision_control Version control] works
by
uniquely
identifying
each
piece
of
information
and
recording
the
changes
with
it.
The
information
is
stored
in
a
data repository,
an
information
database,
and
can
be
accessed
remotely
or
locally
depending
on
the
type
of
system.
When
a
user
is
required
to
make
changes
to
a
document,
they
can
''checkout'' the
information
from
the
system,
giving
them
the
most
up‐to‐date
version
of
the
file
in
their
working
copy .
Once
the
file
has
been
amended,
the
user
can
then
commit ,
re‐submit,
the
file
updating
the
copy
in
the
repository
ready
for
use simple
concept,
there
are
many
problems
such
as
revision
storage. | |||
Line 13: | Line 15: | ||
checking-out. Like their file system counterparts checking-in stores a file version, and checking-out retrieves a file revision | checking-out. Like their file system counterparts checking-in stores a file version, and checking-out retrieves a file revision | ||
from the system.</pre> | from the system.</pre> | ||
A typical history of a file version in [http://en.wikipedia.org/wiki/Subversion_%28software%29 SVN] | |||
[[Image:Svn.png]] | [[Image:Svn.png]] | ||
<pre> | |||
Trunk : Its the main line of development. Team members creates a branches (Similar to fork) from the trunk and work on that copy. | |||
At the end of cycle the changes are merged to the trunk, And this process continues. | |||
</pre> | |||
---- | ---- |
Revision as of 00:20, 8 September 2009
Version control is a software utility used to manage the data, specially source code, within a software development environment. Managing the changes are important for software engineers, since during most of time they need to add, modify or fix a small portion of the code (also known as version). And version control does the housekeeping of the changes by providing a detailed history of each document . Version control implements several techniques to ensure the integrity of the information, while making use of minimal resources. This is a comprehensive list of version control software.
Introduction
Version control, also known as revision control, is a fundamental part of software configuration management (SCM), and acts as a key lifeline in a team environment. Version control works by keeping a record of every unit of information and tracks the changes and updates made.
Version control also allows for multiple users to edit the same document at the same time, providing a valuable resource for team projects, and enabling a better working environment. Keeping records of all changes to a set of information provides a fail‐safe solution to data management, and an archive for subsequent reference.
Version control works by uniquely identifying each piece of information and recording the changes with it. The information is stored in a data repository, an information database, and can be accessed remotely or locally depending on the type of system. When a user is required to make changes to a document, they can checkout the information from the system, giving them the most up‐to‐date version of the file in their working copy . Once the file has been amended, the user can then commit , re‐submit, the file updating the copy in the repository ready for use simple concept, there are many problems such as revision storage.
While file systems provide operations like open, save, rename and delete, version control systems provide checking-in and checking-out. Like their file system counterparts checking-in stores a file version, and checking-out retrieves a file revision from the system.
A typical history of a file version in SVN
Trunk : Its the main line of development. Team members creates a branches (Similar to fork) from the trunk and work on that copy. At the end of cycle the changes are merged to the trunk, And this process continues.
History
Change and Configuration Control (CCC)
The history of Version control dates back to 1975 when SCM Software Configuration Management became commerical for the first time with the advent of Change and Configuration Control (CCC),which was developed by the SoftTool Corporation.
Source Code Control System(SCCS)
Then came the Source Code Control System which was developed by M. J Rochkind in the very early 1970’s. Designed basically for a unix system, it provided a simple locking model to serialize development.
Diff Algorithm
The diff algorithm was was developed by AT&T Bell Labs in 1974, and prototyped by James W. Hunt in 1976. It works by finding the longest common subsequence, then comparing the data preceding and following it, incorporating the changes in a diff or a patchfile(UNIX Systems).
Revsion Control System(RCS)
In the early 1980’s Walter Tichy introduced the Revision Control System(RCS). RCS introduced both forward and reverse delta concepts for efficient storage of different file revisions.
Concurrent Version System(CVS)
Next came the Concurrent Version System designed and originally implemented by Dick Grunein 1986 and then modified by Berliner et al in 1990. It became very popular and was the defacto standard within the open soure community for many years due to its ‘non‐restrictive modus operandi’ and its ‘support for network operations’ . One notable drawback to CVS was that it didn't support versioning of re-named or relocated material identifying them as new files instead of new versions.
Problem in earlier Version
List some of the problem of earlier version.
Solution to these
How they solved these problem.
Why it was necessary
Will edit example in such box
Conclusion
I believe that these five sites, while some were harder to find than others, are all great guides and examples on understanding and eventually creating a use case document.
External References
[1] http://en.wikipedia.org/wiki/Use_case
[2] http://infogenium.typepad.com/inside_infogenium/2007/07/getting-started.html
[3] http://www.parlezuml.com/tutorials/usecases.htm
[4] http://courses.softlab.ntua.gr/softeng/Tutorials/UML-Use-Cases.pdf
[5] http://www.readysetpro.com/whitepapers/usecasetut.html