Implementation Details: ducs_arch partial
This form of the command creates a new minor version of DUCS archive
code. A minor versions consists not of the full DUCS but of only a
subset of complete DUCS sections. This subset is overlayed onto the specified
major version such that any DUCS sections not included in the minor version
are taken from the major version.
Any user can develop the code for a new minor version. The code development
is done on vms as described below. When the code is ready, the archivist
should be told the appropriate major version number and the location of
the directories where the new minor version code resides.
From vms, the user can develop a new minor version as follows:
- Create two top level DUCS directories, one for alpha code, one for
vax code. The directories can have any name that you wish.
- example:
$usr0:[fred]axp_code.dir
$usr0:[fred]vax_code.dir
- For each DUCS section in which you want to make changes, create the
appropriate subdirectory in your top level DUCS directory. Do this for
both the alpha and the vax code.
- example: to include the dev and prod drift chamber code in the new
minor version:
create/dir $usr0:[fred.axp_code]ddc.dir
create/dir $usr0:[fred.axp_code]dc.dir
create/dir $usr0:[fred.vax_code]ddc.dir
create/dir $usr0:[fred.vax_code]dc.dir
- Fill each of these directories with the complete set of code from the
corresponding directory of the major version.
- for example:
copy disk$sld_arc_axp:[version_14.ddc...]*.*;* $usr:[fred.axp_code.ddc...]
copy disk$sld_arc_axp:[version_14.dc...]*.*;* $usr:[fred.axp_code.dc...]
copy disk$sld_arc_vax:[version_14.ddc...]*.*;* $usr:[fred.vax_code.ddc...]
copy disk$sld_arc_vax:[version_14.dc...]*.*;* $usr:[fred.vax_code.dc...]
- Alternately, you may want to fill the new directories with code from
the corresponding directories of the current DUCS. If you choose this option,
it is up to you to insure that the other DUCS sections of the relevant
major version code are compatible with the code you are copying from the
current DUCS.
- Now set up your DUCS environment to use your new minor version, and
proceed to make changes to the minor version code as you wish. More specifically,
set DUCS to use the appropriate major version, but redefine the appropriate
logicals to put your minor version into force.
- example: if you are running on an alpha,
ducs version 14.0
define devdc $usr:[fred.axp_code.ddc]
define proddc $usr:[fred.axp_code.dc]
When it comes time for the new minor version to be archived for general
use, the archivist needs to know the appropriate major version number and
the location of the directories where the new minor version code resides.
- For our example this would be:
version=14
axp_source=slda6::$usr0:[fred.axp_code]
vax_source=slda6::$usr0:[fred.vax_code]
The archivist then issues the following command from the unix DUCS account:
- ducs_arch partial version=<major_vers> axp_source='<host::dir_spec>'
vax_source='<host::dir_spec>'
- example:
ducs_arch partial version=14 axp_source='slda6::$usr0:[fred.axp_code]'
vax_source='slda6::$usr0:[fred.vax_code]'
The implementation of the ducs_arch partial procedure is the
same as ducs_arch full with the
following notable exceptions:
- There is no need to disable DUCS since the source code is not coming
from DUCS
- There is no need to compare source code at non-SLAC hosts with source
code at SLAC since all hosts take their source code from the same source,
performing the copies over the network. Copying in this manner would require
too much bandwidth for a full DUCS copy, but should be acceptable for a
partial copy.
Joseph
Perl
18 February 1997