|
The CodeMatrix software is designed to be intuitive and
easy to use. There are however a number of concepts the
user must be aware of in order to make the best use of the
software. This section outlines the key terms and
concepts.
Branch
A branch is a virtual copy of a set of file revisions.
Branches are useful when maintaining multiple versions of
a set of files, such as multiple releases of a software
product or several variations of a web site. A user
creates a branch using the Branch Wizard.
Change reference
Each update to the CodeMatrix database
increments an internal counter, known as the change
reference number. CodeMatrix offers the facility to
identify file revisions using this number, so it may be
used to view snapshots of the database at any point in
time. A common use for this facility is to recreate a set
of source files used in a particular software build when subsequent
changes have been made to these files.
CodeMatrix allows multiple updates to be
grouped into a transaction, in which case a single change
reference number will represent the system state at the
end of the transaction.
Checkin / Checkout
Files on a user computer managed by
CodeMatrix are said to be checked in or checked out.
Checked in files have read only attributes so can not be
changed, and are locked by the Active Workspace manager to
prevent rename or changes to the read only attribute.
Checked out files are writeable. To prepare a file for
changes the user issues a checkout command to change the
state to checked out. Checking out a file creates a
new revision record in the database.
Filter
Filters allow a user to tailor the results returned by
CodeMatrix queries and the actions of updates, by
restricting the operation to revisions that match
specified criteria, such as revision date or user. By
using a filter a user can view the database state as it
existed at a previous point in time, check out old file
revisions, create branches based on non-current revisions
back out changes, and a variety of other tasks which
require access to historic data. CXInsight uses filters in
it's 'view' feature.
Integration
Integration is the process of merging changes
in a parent branch to a workspace to incorporate changes
by other users or from other strands.
Label
A label is a tag that can be applied to a
single revision of one or more files, so that the set of
revisions may be identified.
Mount
In order to do useful work on files, they must be made
available on a user's computer. A user works on files in a
workspace (see below). The process of copying a workspace
to a user's computer is known as mounting the workspace.
If a workspace is unmounted and mounted again the state of
changed files is preserved. This feature allows a user to
move work between computers if necessary.
Promotion
Promotion is the process of merging changes in a
workspace or branch to a parent branch.
Revision
Each recorded change to a file is known as a revision.
A new revision is created when a file is created,
deleted, integrated, promoted or checked out. A revision can be
identified by it's revision number or it's change
reference number.
Repository
A repository is the major storage unit in
CodeMatrix and relates to a physical storage location on
the server. All files managed by CodeMatrix are stored in
a repository. The repository name always appears as the
first node in a fully qualified CodeMatrix file name. A
special repository named Admin holds control information
used to manage the CodeMatrix system. A repository has the
same characteristics as a branch and can be used to
maintain a development strand.
Transaction
Transactions allow a number of updates to be executed as a
single atomic operation. An atomic operation ensures that
if any of the updates fail the transaction is terminated
and the preceding updates are rolled back to leave the
affected data in the same state as previously existed.
CodeMatrix transactions support all update operations,
including those that affect the client computer such as
mount and checkout. Two phase commit techniques ensure
that the client and server computers are consistent even
after critical errors.
Uncheckout
A user can abandon changes to a checked out file by
using the uncheckout operation which will restore the
contents of the local file and the revision status to that
which existed prior to the checkout. After an uncheckout
operation a copy of the file is left on the server so an
accidental uncheckout can be recovered.
Workspace
A workspace is a special CodeMatrix folder that
contains a set of files and folders that a user can work
with. Essentially a workspace is the same as a branch, the
main difference being that the contained files can be
mounted on a client machine. A user creates and mounts a
workspace using the Workspace Wizard.
Workspaces are essentially a
personal work area in the CodeMatrix database, so a user
is free to check files in and out of a workspace without
impacting other users. Once a set of changes is complete
they are incorporated into the target by using the
workspace promote option.
|