[Info-vax] Where to locate software
Stephen Hoffman
seaohveh at hoffmanlabs.invalid
Tue Jun 14 14:27:23 EDT 2016
On 2016-06-14 16:11:10 +0000, David Froble said:
> This whole discussion about locking code seems to be unhelpful, if one
> considers it must be one or another.
>
> As an example, in RMS one can read and lock a record for later update,
> and one can read regardless and cannot update. Should not both of
> those concepts be in a code management system?
>
> Or, am I not understanding the problem at all?
What the folks are referring to as "locking" is also commonly called
"checking out" or "reserving", and "checking in" or "replacing" or
"adding" or "committing" or "pushing" source code modules back into the
source pool.
Different packages have different sequences.
The RMS record-level analog of some is a read-regardless, followed by a
read-compare and either an update or a merge and update. Sequences
which lock the record then force other threads to deal with the lock,
or to override it and read the lock, or to include some sort of
revocation and release on specified criteria; lock has aged out, the
requestor being on holiday, whatever. And I'd suggest not trying to
map RMS records to source control, as there's far more to this around
both transactional operations, and the folks that expect to identify
specific source code releases and change propagation and other details
— this is akin to tracking individual records over the lifetime of the
file, often with branching and merging for side-projects, testing or
trial projects, and extended development efforts.
Some folks centralize all code operations on one host or one cluster,
and prefer to copy and resynchronize and differentiate source code
modules located on any other hosts using locally-written tools when
working off of the source pool host. Or — as often happens — migrating
from this to a more distributed approach is non-trivial.
A distributed approach using a DVCS package has either entirely private
or shared or externally hosted source pools, and have a canonical core
source pool (private to the organization or shared), but also have
local-to-the-developer source pools, with remote access and offline
access and easy updates of the local-to-the-developer pools based on
the most current pool contents of the shared pool.
Both centralized/VCS packages and distributed/DVCS packages can and
variously do provide reservations, merges, code reviews and other
features. The features and commands and sequences for these VCS and
DVCS packages varies.
Examples of DVCS packages include git and Mercurial as have been
discussed, and others. Fossil is one of the others and tends to get
rather less coverage, but is quite interesting.
http://www.fossil-scm.org/index.html/doc/trunk/www/index.wiki
--
Pure Personal Opinion | HoffmanLabs LLC
More information about the Info-vax
mailing list