home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / jsage / znode3 / uploads / vrslib10.lbr / VERSIONS.DQC / VERSIONS.DOC
Encoding:
Windows Setup INFormation  |  1993-06-07  |  31.5 KB  |  579 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.                                 VERSION LIBRARY
  24.                                 VERSION LIBRARY
  25.                                 VERSION LIBRARY
  26.  
  27.  
  28.  
  29.                                    UTILITIES
  30.                                    UTILITIES
  31.                                    UTILITIES
  32.  
  33.  
  34.  
  35.  
  36.                                   Release 1.0
  37.                                   _______ ___
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.                                    Jim Leth
  61.  
  62.  
  63.  
  64.                                 Lillipute ZNODE
  65.  
  66.  
  67.                                 (312) 649-1730
  68.  
  69.  
  70.                                 (312) 664-1730
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.                    Version Library Utilities 1.0                    Page 1
  90.  
  91.  
  92.  
  93.  
  94.  
  95.       Version  Libraries provide a simple but flexible approach to version
  96.       Version  Libraries
  97.       Version  Libraries
  98.  
  99.  
  100.       management.
  101.  
  102.  
  103.  
  104.  
  105.       1. Motivation
  106.       1. Motivation
  107.       1. Motivation
  108.  
  109.  
  110.  
  111.       It is often necessary or desirable to keep multiple  versions  of  a
  112.  
  113.  
  114.       file or  set  of  files.   This is important in software development
  115.  
  116.  
  117.       because it ensures that  future  changes  to  the  software  can  be
  118.  
  119.  
  120.       backed  out,  if  necessary, to return to the current performance of
  121.  
  122.  
  123.       the system.  In other words, no matter how lost you  get  in  making
  124.  
  125.  
  126.       changes, you  can at least get back to here.  Version libraries also
  127.                                              ____
  128.  
  129.  
  130.       help in finding the cause of bugs, since you  can  compare  any  two
  131.  
  132.  
  133.       versions and  determine  exactly  what  changes were made.  They are
  134.  
  135.  
  136.       essential in  software  maintenance,  since  previous  releases  may
  137.  
  138.  
  139.       still need to be supported while new releases are being developed.
  140.  
  141.  
  142.  
  143.       A version  history  is  useful  for  text files, as well.  Technical
  144.  
  145.  
  146.       documentation, contracts, resumes, reports, as well as all forms  of
  147.  
  148.  
  149.       creative writing  are  frequently  revised.  Often what gets excised
  150.  
  151.  
  152.       in one revision gets put back later.  A version library  allows  the
  153.  
  154.  
  155.       writer  to  retrieve pieces of earlier work, or to trace the history
  156.  
  157.  
  158.       of changes.
  159.  
  160.  
  161.  
  162.  
  163.       2. Version Libraries
  164.       2. Version Libraries
  165.       2. Version Libraries
  166.  
  167.  
  168.  
  169.       In this approach, a version library is a normal library (.LBR)  file
  170.                                                                .LBR
  171.                                                                .LBR
  172.  
  173.  
  174.       whose  members  are  distinct  versions of one or more source files.
  175.  
  176.  
  177.       Note that the term "source file" refers to a specific version  of  a
  178.  
  179.  
  180.       file to  be  recorded  in  the  version library;  these files do not
  181.  
  182.  
  183.       have to be source code or even text files, but can be  any  type  of
  184.  
  185.  
  186.       file,   including   object  code,  executable  programs,  and  other
  187.  
  188.  
  189.       libraries.
  190.  
  191.  
  192.  
  193.       Each member's name consists of a  user-assigned  version  identifier
  194.  
  195.  
  196.       in  the  filename  field,  with  the  same extension as the original
  197.  
  198.  
  199.       source file.  The version identifier can be in any  form  acceptable
  200.  
  201.  
  202.       as a  CP/M  filename.   The extension does not have to be specified,
  203.  
  204.  
  205.       but is automatically taken from the extension  of  the  source  file
  206.  
  207.  
  208.       (any other  extension  is  ignored).    This allows a single version
  209.  
  210.  
  211.       library (e.g. SOURCE.LBR) to include  versions  of  different  files
  212.                     SOURCE.LBR
  213.                     SOURCE.LBR
  214.  
  215.  
  216.       with   the   same  filename  part  but  different  extensions  (e.g.
  217.                          ________                        __________
  218.  
  219.  
  220.       SOURCE.C, SOURCE.H, and SOURCE.DOC).
  221.       SOURCE.C  SOURCE.H      SOURCE.DOC
  222.       SOURCE.C  SOURCE.H      SOURCE.DOC
  223.  
  224.  
  225.  
  226.       Version identifiers may be chosen on any basis, but  should  provide
  227.  
  228.  
  229.       a  meaningful  identification  of  the significance of that version.
  230.  
  231.  
  232.       Good choices would be  release  numbers  (REL-101,  V-01-01),  dates
  233.                                                 REL-101   V-01-01
  234.                                                 REL-101   V-01-01
  235.  
  236.  
  237.       (86-09-16,  SEP16-86),  development  status (PROTOTYP, BETATEST), or
  238.        86-09-16   SEP16-86                         PROTOTYP  BETATEST
  239.        86-09-16   SEP16-86                         PROTOTYP  BETATEST
  240.  
  241.  
  242.       simply  notes  to  yourself  about  the  status  of   that   version
  243.  
  244.  
  245.       (1STDRAFT, COMPILES,  CRASHES).    Note  that if version identifiers
  246.        1STDRAFT  COMPILES   CRASHES
  247.        1STDRAFT  COMPILES   CRASHES
  248.  
  249.  
  250.       are the dates of development of each version, encoded in  the  form:
  251.  
  252.  
  253.       86-09-16,   then   the   normal   practice   of  displaying  library
  254.       86-09-16
  255.       86-09-16
  256.  
  257.  
  258.       directories in alphabetical order will display the versions  entered
  259.  
  260.  
  261.       in chronological order.
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.                    Version Library Utilities 1.0                    Page 2
  273.  
  274.  
  275.  
  276.  
  277.  
  278.       3. Command Interface:  ALIAS.CMD
  279.       3. Command Interface:  ALIAS.CMD
  280.       3. Command Interface:  ALIAS.CMD
  281.  
  282.  
  283.  
  284.       The  file  ALIAS.CMD included in this package provides the following
  285.                  ALIAS.CMD
  286.                  ALIAS.CMD
  287.  
  288.  
  289.       aliases for use with ARUNZ.COM and NULU.COM:
  290.                            ARUNZ.COM     NULU.COM
  291.                            ARUNZ.COM     NULU.COM
  292.  
  293.  
  294.  
  295.           putv  put a new version of a file into its version library;
  296.           putv
  297.           putv
  298.  
  299.  
  300.  
  301.           getv  extract a specific version (or the latest revision)  of  a
  302.           getv
  303.           getv
  304.  
  305.  
  306.                 file from its version library;
  307.  
  308.  
  309.  
  310.           lv    list all the versions of a file;
  311.           lv
  312.           lv
  313.  
  314.  
  315.  
  316.           difv  display   differences  between  different  versions  of  a
  317.           difv
  318.           difv
  319.  
  320.  
  321.                 file;
  322.  
  323.  
  324.  
  325.           delv  delete a version of a file from its version library;
  326.           delv
  327.           delv
  328.  
  329.  
  330.  
  331.           renv  rename  a  version  of  a   file   (change   its   version
  332.           renv
  333.           renv
  334.  
  335.  
  336.                 identifier).
  337.  
  338.  
  339.  
  340.       To  use  these  aliases,  copy  the  file  ALIAS.CMD into one of the
  341.                                                  ALIAS.CMD
  342.                                                  ALIAS.CMD
  343.  
  344.  
  345.       directories in the PATH (usually  ROOT:),  or  merge  these  aliases
  346.                          PATH           ROOT:
  347.                          PATH           ROOT:
  348.  
  349.  
  350.       with your own ALIAS.CMD file.
  351.                     ALIAS.CMD
  352.                     ALIAS.CMD
  353.  
  354.  
  355.  
  356.  
  357.       3.1. PUTV [du|dir-name:]source-file [version]
  358.       3.1. PUTV [du|dir-name:]source-file [version]
  359.       3.1. PUTV [du|dir-name:]source-file [version]
  360.  
  361.  
  362.  
  363.       Putv puts  a new version of a file into its version library.  If the
  364.       Putv
  365.       Putv
  366.  
  367.  
  368.       version library does not yet exist, it creates one.    Its  filename
  369.  
  370.  
  371.       is  the  same as that of the source file, but its extension is .LBR.
  372.                                                                      .LBR
  373.                                                                      .LBR
  374.  
  375.  
  376.       All version libraries are kept in the directory BACKUP:.
  377.                                                       BACKUP:
  378.                                                       BACKUP:
  379.  
  380.  
  381.  
  382.       If a version identifier is specified, the new  library  member  will
  383.  
  384.  
  385.       have  that  identifier  as  its  filename,  but  will  keep the same
  386.  
  387.  
  388.       extension as  the  original  source  file  (ignoring  any  extension
  389.  
  390.  
  391.       specified with   the   version   identifier).    This  ensures  that
  392.  
  393.  
  394.       different source files (differing only in extension)  will  generate
  395.  
  396.  
  397.       unique  entries  in  the version library, even if they are given the
  398.  
  399.  
  400.       same version identifiers.
  401.  
  402.  
  403.  
  404.       If no version identifier is given, putv will name  the  new  library
  405.                                          putv
  406.                                          putv
  407.  
  408.  
  409.       member the  same  as  the original source file.  Subsequent versions
  410.  
  411.  
  412.       added without any explicit  version  identifier  will  replace  this
  413.  
  414.  
  415.       member.   This provides a simple convention for keeping track of the
  416.  
  417.  
  418.       "last saved revision" while the source file is  changing  frequently
  419.  
  420.  
  421.       (e.g. a  program  under development).  Library members with explicit
  422.  
  423.  
  424.       version identifiers can also be updated by  putting  a  new  version
  425.  
  426.  
  427.       into the library under the same version identifier.
  428.  
  429.  
  430.  
  431.       Consider the  following  example.   A C program might consist of the
  432.                                             C
  433.                                             C
  434.  
  435.  
  436.       following source files:
  437.  
  438.  
  439.  
  440.           main.c
  441.  
  442.  
  443.           reader.c
  444.  
  445.  
  446.           reader.h
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.                    Version Library Utilities 1.0                    Page 3
  458.  
  459.  
  460.  
  461.  
  462.  
  463.       While  the  first  draft  of  each  file   is   under   development,
  464.  
  465.  
  466.       "snapshots"  of  the  current state of each file may be entered into
  467.  
  468.  
  469.       version libraries whenever a  significant  amount  of  progress  has
  470.  
  471.  
  472.       been made.    These  transient  versions  are  entered  into version
  473.  
  474.  
  475.       libraries with the putv alias:
  476.                          putv
  477.                          putv
  478.  
  479.  
  480.  
  481.           putv main.c
  482.  
  483.  
  484.           putv reader.c
  485.  
  486.  
  487.           putv reader.h
  488.  
  489.  
  490.  
  491.       The first command will enter the current version of  MAIN.C  into  a
  492.                                                            MAIN.C
  493.                                                            MAIN.C
  494.  
  495.  
  496.       library named  BACKUP:MAIN.LBR,  creating  it  if  necessary.    The
  497.                      BACKUP:MAIN.LBR
  498.                      BACKUP:MAIN.LBR
  499.  
  500.  
  501.       member name will be MAIN.C.
  502.                           MAIN.C
  503.                           MAIN.C
  504.  
  505.  
  506.  
  507.       The last two commands  will  build  the  library  BACKUP:READER.LBR,
  508.                                                         BACKUP:READER.LBR
  509.                                                         BACKUP:READER.LBR
  510.  
  511.  
  512.       containing members READER.C and READER.H.
  513.                          READER.C     READER.H
  514.                          READER.C     READER.H
  515.  
  516.  
  517.  
  518.       When   each  program  reaches  the  point  where  it  compiles,  the
  519.  
  520.  
  521.       programmer may wish to enter  a  named  version  that  can  be  kept
  522.  
  523.  
  524.       around even  after other versions are saved.  The following commands
  525.  
  526.  
  527.       might be used:
  528.  
  529.  
  530.  
  531.           putv main.c compiles
  532.  
  533.  
  534.           putv reader.c compiles
  535.  
  536.  
  537.           putv reader.h compiles
  538.  
  539.  
  540.  
  541.       Here, the word "compiles" is chosen as the  version  identifier  for
  542.  
  543.  
  544.       all three  files.    The  libraries  would now contain the following
  545.  
  546.  
  547.       members:
  548.  
  549.  
  550.  
  551.           MAIN.LBR                READER.LBR
  552.           ________                __________
  553.  
  554.  
  555.           COMPILES.C              COMPILES.C
  556.  
  557.  
  558.                                   COMPILES.H
  559.  
  560.  
  561.  
  562.       Note  that  the  transient  versions  previously  entered  into  the
  563.  
  564.  
  565.       libraries  (MAIN.C,  READER.C,  and  READER.H)  have been deleted by
  566.                   MAIN.C   READER.C        READER.H
  567.                   MAIN.C   READER.C        READER.H
  568.  
  569.  
  570.       entering named versions.  This is  normally  reasonable,  since  the
  571.  
  572.  
  573.       transient  versions  are supposed to identify the "latest revision",
  574.  
  575.  
  576.       but you've just entered a newer one.  Transient versions  can  still
  577.  
  578.  
  579.       be entered until the next named version is entered.  For example:
  580.  
  581.  
  582.  
  583.           putv reader.c
  584.  
  585.  
  586.                                   READER.LBR
  587.                                   __________
  588.  
  589.  
  590.                                   COMPILES.C
  591.  
  592.  
  593.                                   COMPILES.H
  594.  
  595.  
  596.                                   READER.C
  597.  
  598.  
  599.  
  600.  
  601.  
  602.       3.2. GETV [du|dir-name:]source-file [version]
  603.       3.2. GETV [du|dir-name:]source-file [version]
  604.       3.2. GETV [du|dir-name:]source-file [version]
  605.  
  606.  
  607.  
  608.       The  alias  getv  extracts a specific version of a file, overwriting
  609.                   getv
  610.                   getv
  611.  
  612.  
  613.       the current version of the source file  (if  one  exists)  with  the
  614.  
  615.  
  616.       extracted version.    If  no  version  identifier  is specified, the
  617.  
  618.  
  619.       "current revision" is extracted (the entry with  the  same  name  as
  620.  
  621.  
  622.       the source  file).    Otherwise,  the  filename  part of the version
  623.  
  624.  
  625.       identifier (ignoring any extension) and the extension of the  source
  626.  
  627.  
  628.       file are used to form the entry name to be extracted.
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.                    Version Library Utilities 1.0                    Page 4
  637.  
  638.  
  639.  
  640.  
  641.  
  642.       Continuing  with  the  above  example,  the  following  command will
  643.  
  644.  
  645.       extract   the   entry   named   "COMPILES.C"   from   the    library
  646.  
  647.  
  648.       BACKUP:READER.LBR,   renaming  the  extracted  file  "READER.C"  and
  649.       BACKUP:READER.LBR
  650.       BACKUP:READER.LBR
  651.  
  652.  
  653.       placing it on drive C:, user area 3.
  654.                           C:            3
  655.                           C:            3
  656.  
  657.  
  658.  
  659.           getv c3:reader.c compiles
  660.  
  661.  
  662.  
  663.       The following command extracts the latest revision of READER.C  from
  664.  
  665.  
  666.       the library, placing it in the current drive and user area.
  667.  
  668.  
  669.  
  670.           getv reader.c
  671.  
  672.  
  673.  
  674.  
  675.  
  676.       3.3. LV source-file
  677.       3.3. LV source-file
  678.       3.3. LV source-file
  679.  
  680.  
  681.  
  682.       The  alias lv lists all versions of the specified source file stored
  683.                  lv
  684.                  lv
  685.  
  686.  
  687.       in the version library.  The program LDIR.COM  is  used  to  display
  688.                                            LDIR.COM
  689.                                            LDIR.COM
  690.  
  691.  
  692.       all  members of the relevant version library with the same extension
  693.  
  694.  
  695.       as the source file.  Other members of the library will  be  versions
  696.  
  697.  
  698.       of  other  source  files  (with  the  same  filename  but  different
  699.  
  700.  
  701.       extensions);  these other members are not shown.
  702.  
  703.  
  704.  
  705.  
  706.       3.4. DIFV [du|dir-name:]source-file [version1 [version2]]
  707.       3.4. DIFV [du|dir-name:]source-file [version1 [version2]]
  708.       3.4. DIFV [du|dir-name:]source-file [version1 [version2]]
  709.  
  710.  
  711.  
  712.       The alias difv is used  to  display  the  changes  between  any  two
  713.                 difv
  714.                 difv
  715.  
  716.  
  717.       versions of  the  specified  source  file.  Two other aliases, difv0
  718.                                                                      difv0
  719.                                                                      difv0
  720.  
  721.  
  722.       and difv1 are used by difv, based on which of  the  three  modes  of
  723.           difv1             difv
  724.           difv1             difv
  725.  
  726.  
  727.       operation (shown below) are invoked.
  728.  
  729.  
  730.  
  731.       The  following  command  compares  the existing source file READER.C
  732.                                                                   READER.C
  733.                                                                   READER.C
  734.  
  735.  
  736.       with the last version that was saved in the  version  library  under
  737.  
  738.  
  739.       the name READER.C.
  740.                READER.C
  741.                READER.C
  742.  
  743.  
  744.  
  745.           difv reader.c
  746.  
  747.  
  748.  
  749.       The  following  command  compares  the existing source file READER.C
  750.                                                                   READER.C
  751.                                                                   READER.C
  752.  
  753.  
  754.       with the version saved under the identifier COMPILES.
  755.                                                   COMPILES
  756.                                                   COMPILES
  757.  
  758.  
  759.  
  760.           difv reader.c compiles
  761.  
  762.  
  763.  
  764.       The  following  command  compares  the  version  saved   under   the
  765.  
  766.  
  767.       identifier   COMPILES   with   the  version  saved  under  the  name
  768.                    COMPILES
  769.                    COMPILES
  770.  
  771.  
  772.       READER.C.
  773.       READER.C
  774.       READER.C
  775.  
  776.  
  777.  
  778.           difv reader.c compiles reader.c
  779.  
  780.  
  781.  
  782.       In all cases, the required versions are extracted from  the  version
  783.  
  784.  
  785.       library  to  temporary  filenames  (or  to  the  directory BACKUP:),
  786.                                                                  BACKUP:
  787.                                                                  BACKUP:
  788.  
  789.  
  790.       compared using the program DIF, then erased.  The  current  copy  of
  791.                                  DIF
  792.                                  DIF
  793.  
  794.  
  795.       the  source file, whether involved in the comparison or not, is left
  796.  
  797.  
  798.       untouched after this command.
  799.  
  800.  
  801.  
  802.  
  803.  
  804.  
  805.  
  806.  
  807.  
  808.  
  809.  
  810.  
  811.                    Version Library Utilities 1.0                    Page 5
  812.  
  813.  
  814.  
  815.  
  816.  
  817.       3.5. DELV source-file [version]
  818.       3.5. DELV source-file [version]
  819.       3.5. DELV source-file [version]
  820.  
  821.  
  822.  
  823.       The alias delv deletes a specific version of the  source  file  from
  824.                 delv
  825.                 delv
  826.  
  827.  
  828.       its version  library.    If no version identifier is specified, then
  829.  
  830.  
  831.       the version saved under the same name as the source  file  is  used.
  832.  
  833.  
  834.       The source file itself is not deleted, if it exists.
  835.  
  836.  
  837.  
  838.  
  839.       3.6. RENV source-file version1 [version2]
  840.       3.6. RENV source-file version1 [version2]
  841.       3.6. RENV source-file version1 [version2]
  842.  
  843.  
  844.  
  845.       The  alias  renv  renames  a  specific  version  of the source file,
  846.                   renv
  847.                   renv
  848.  
  849.  
  850.       giving that version a new version identifier.  There are  two  forms
  851.  
  852.  
  853.       of this command, as shown in the examples below.
  854.  
  855.  
  856.  
  857.       The  following command will rename the last version of READER.C that
  858.                                                              READER.C
  859.                                                              READER.C
  860.  
  861.  
  862.       was stored under that name, giving it  the  new  version  identifier
  863.  
  864.  
  865.       86-12-21.
  866.       86-12-21
  867.       86-12-21
  868.  
  869.  
  870.  
  871.                                   READER.LBR
  872.                                   __________
  873.  
  874.  
  875.                                   COMPILES.C
  876.  
  877.  
  878.                                   COMPILES.H
  879.  
  880.  
  881.                                   READER.C
  882.  
  883.  
  884.  
  885.           renv reader.c 86-12-21
  886.  
  887.  
  888.  
  889.                                   READER.LBR
  890.                                   __________
  891.  
  892.  
  893.                                   COMPILES.C
  894.  
  895.  
  896.                                   COMPILES.H
  897.  
  898.  
  899.                                   86-12-21.C
  900.  
  901.  
  902.  
  903.       The  following  command  renames  version  COMPILES  of  source file
  904.                                                  COMPILES
  905.                                                  COMPILES
  906.  
  907.  
  908.       READER.H to the version identifier REL-0100.
  909.       READER.H                           REL-0100
  910.       READER.H                           REL-0100
  911.  
  912.  
  913.  
  914.           renv reader.h compiles rel-0100
  915.  
  916.  
  917.  
  918.                                   READER.LBR
  919.                                   __________
  920.  
  921.  
  922.                                   COMPILES.C
  923.  
  924.  
  925.                                   REL-0100.H
  926.  
  927.  
  928.                                   READER.C
  929.  
  930.  
  931.  
  932.  
  933.  
  934.       3.7. V [[du|dir-name:]file-spec]
  935.       3.7. V [[du|dir-name:]file-spec]
  936.       3.7. V [[du|dir-name:]file-spec]
  937.  
  938.  
  939.  
  940.       The alias v starts up a menu  interface  to  the  aliases  described
  941.                 v
  942.                 v
  943.  
  944.  
  945.       above.   If  no  file  specification  is  given,  all  files  in the
  946.  
  947.  
  948.       designated  (or  current)  drive  and   directory   are   displayed.
  949.  
  950.  
  951.       Otherwise,   only   those   files   that  match  the  file-spec  are
  952.  
  953.  
  954.       displayed.  The operations that can be  performed  within  the  menu
  955.  
  956.  
  957.       system are described below.
  958.  
  959.  
  960.  
  961.  
  962.       4. VMENU Interface:  VERSIONS.VMN
  963.       4. VMENU Interface:  VERSIONS.VMN
  964.       4. VMENU Interface:  VERSIONS.VMN
  965.  
  966.  
  967.  
  968.       The  file VERSIONS.VMN provided with these utilities is intended for
  969.                 VERSIONS.VMN
  970.                 VERSIONS.VMN
  971.  
  972.  
  973.       use with VMENU.COM.  If this menu file  is  placed  somewhere  along
  974.                VMENU.COM
  975.                VMENU.COM
  976.  
  977.  
  978.       the  PATH, the alias v will start VMENU using the menu definition in
  979.            PATH            v            VMENU
  980.            PATH            v            VMENU
  981.  
  982.  
  983.       VERSIONS.VMN.
  984.       VERSIONS.VMN
  985.       VERSIONS.VMN
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992.  
  993.                    Version Library Utilities 1.0                    Page 6
  994.  
  995.  
  996.  
  997.  
  998.  
  999.       When VMENU starts, the top of the screen will show the files in  the
  1000.            VMENU
  1001.            VMENU
  1002.  
  1003.  
  1004.       current directory,  or  those that match the file-spec, if given.  A
  1005.  
  1006.  
  1007.       file can be selected from this display by moving the cursor  to  its
  1008.  
  1009.  
  1010.       name using  the  standard  VMENU  keys.  (Briefly, '+' and '-' moves
  1011.                                  VMENU
  1012.                                  VMENU
  1013.  
  1014.  
  1015.       the window through the file list, and the spacebar  and  arrow  keys
  1016.  
  1017.  
  1018.       move the cursor within that window.)
  1019.  
  1020.  
  1021.  
  1022.       The following menu is displayed:
  1023.  
  1024.  
  1025.  
  1026.            VERSIONS -- VMENU Interface to Version Libraries Rel. 1.0
  1027.            VERSIONS -- VMENU Interface to Version Libraries Rel. 1.0
  1028.            VERSIONS -- VMENU Interface to Version Libraries Rel. 1.0
  1029.  
  1030.  
  1031.            Use space bar or arrow keys to move cursor to select file,
  1032.  
  1033.  
  1034.                         then choose command from menu:
  1035.  
  1036.  
  1037.                 M  change MENU            H  Help
  1038.                 M                         H
  1039.                 M                         H
  1040.  
  1041.  
  1042.                 L  List versions of file  D  Delete a version
  1043.                 L                         D
  1044.                 L                         D
  1045.  
  1046.  
  1047.                 G  Get a version          P  Put a new version
  1048.                 G                         P
  1049.                 G                         P
  1050.  
  1051.  
  1052.                 K  Keep file under new    =  Rename file
  1053.                 K                         =
  1054.                 K                         =
  1055.  
  1056.  
  1057.                    name and get version   R  Rename a version
  1058.                                           R
  1059.                                           R
  1060.  
  1061.  
  1062.                 C  Compare versions
  1063.                 C
  1064.                 C
  1065.  
  1066.  
  1067.                 B  Browse file            E  Edit file
  1068.                 B                         E
  1069.                 B                         E
  1070.  
  1071.  
  1072.                 ?  file size
  1073.                 ?
  1074.                 ?
  1075.  
  1076.  
  1077.  
  1078.                 F  Find file(s)           I  Inquire directory names
  1079.                 F                         I
  1080.                 F                         I
  1081.  
  1082.  
  1083.                 Z  Invoke ZCPR3 command   V  chain to VFILER
  1084.                 Z                         V
  1085.                 Z                         V
  1086.  
  1087.  
  1088.  
  1089.       The menu operations are as follows.
  1090.  
  1091.  
  1092.  
  1093.           M  --  prompts  for  the  name  of a menu file (without the .VMN
  1094.           M                                                           .VMN
  1095.           M                                                           .VMN
  1096.  
  1097.  
  1098.           extension), and changes to that menu.
  1099.  
  1100.  
  1101.  
  1102.           H -- prompts for a help topic and invokes the HELP program.
  1103.           H                                             HELP
  1104.           H                                             HELP
  1105.  
  1106.  
  1107.  
  1108.           L -- invokes the lv alias on the pointed-to file.
  1109.           L                lv
  1110.           L                lv
  1111.  
  1112.  
  1113.  
  1114.           D --  prompts  for  a  version  identifier,  then  deletes  that
  1115.           D
  1116.           D
  1117.  
  1118.  
  1119.           version  from the version library for the pointed-to file (if no
  1120.  
  1121.  
  1122.           version identifier is supplied, the last version with  the  same
  1123.  
  1124.  
  1125.           name as  the  source  file  is deleted).  Note that this command
  1126.  
  1127.  
  1128.           does not delete the pointed-to file.
  1129.                ___
  1130.  
  1131.  
  1132.  
  1133.           G -- prompts for a version identifier and extracts that  version
  1134.           G
  1135.           G
  1136.  
  1137.  
  1138.           of  the  source file, overwriting the current source file (if no
  1139.  
  1140.  
  1141.           version identifier is supplied, the last version with  the  same
  1142.  
  1143.  
  1144.           name as the source file is extracted).
  1145.  
  1146.  
  1147.  
  1148.           P  --  prompts  for  a version identifier, then puts the current
  1149.           P
  1150.           P
  1151.  
  1152.  
  1153.           source file into its version library under that  identifier  (if
  1154.  
  1155.  
  1156.           no  version  identifier  is  supplied,  then  the new version is
  1157.  
  1158.  
  1159.           entered with the same name as the source file).
  1160.  
  1161.  
  1162.  
  1163.           K -- prompts for a new name for  the  current  source  file  and
  1164.           K
  1165.           K
  1166.  
  1167.  
  1168.           renames it, then acts as G above.
  1169.                                    G
  1170.                                    G
  1171.  
  1172.  
  1173.  
  1174.           =  --  prompts  for  a  new name for the current source file and
  1175.           =
  1176.           =
  1177.  
  1178.  
  1179.           renames it.
  1180.  
  1181.  
  1182.  
  1183.           R -- prompts for two  version  identifiers,  then  invokes  renv
  1184.           R                                                           renv
  1185.           R                                                           renv
  1186.  
  1187.  
  1188.           with   the   pointed-to  file  name  and  the  user's  input  as
  1189.  
  1190.  
  1191.           parameters.  If the  second  prompt  is  answered  with  only  a
  1192.  
  1193.  
  1194.  
  1195.  
  1196.  
  1197.  
  1198.  
  1199.                    Version Library Utilities 1.0                    Page 7
  1200.  
  1201.  
  1202.  
  1203.  
  1204.  
  1205.           carriage  return, then the version entered with the same name as
  1206.  
  1207.  
  1208.           the source file is renamed to the version  identifier  input  at
  1209.  
  1210.  
  1211.           the first  prompt.    If  version  identifiers are input to both
  1212.  
  1213.  
  1214.           prompts, then the input to the first prompt is the name  of  the
  1215.  
  1216.  
  1217.           version  to  be  renamed,  and the input to the second prompt is
  1218.  
  1219.  
  1220.           the new name for that version.
  1221.  
  1222.  
  1223.  
  1224.           C -- prompts for two  version  identifiers,  then  invokes  difv
  1225.           C                                                           difv
  1226.           C                                                           difv
  1227.  
  1228.  
  1229.           with   the   pointed-to  file  name  and  the  user's  input  as
  1230.  
  1231.  
  1232.           parameters.  If both prompts are  answered  with  only  carriage
  1233.  
  1234.  
  1235.           returns,  then  the  pointed-to  file  is compared with the last
  1236.  
  1237.  
  1238.           version entered in its version library  under  that  same  name.
  1239.  
  1240.  
  1241.           If  only  one  version  identifier is input, then the pointed-to
  1242.  
  1243.  
  1244.           file is compared with the version specified.   If  both  version
  1245.  
  1246.  
  1247.           identifiers  are  input  at  the prompts, then the two specified
  1248.  
  1249.  
  1250.           versions of the pointed-to file are compared;    in  this  case,
  1251.  
  1252.  
  1253.           the  actual  source  file  that is pointed to is not used in the
  1254.  
  1255.  
  1256.           comparison.
  1257.  
  1258.  
  1259.  
  1260.           B --  browses  through  the  pointed-to  file  by  invoking  the
  1261.           B
  1262.           B
  1263.  
  1264.  
  1265.           program SCAN.COM.
  1266.                   SCAN.COM
  1267.                   SCAN.COM
  1268.  
  1269.  
  1270.  
  1271.           E  --  edits the pointed-to file (in the file ALIAS.CMD, replace
  1272.           E                                             ALIAS.CMD
  1273.           E                                             ALIAS.CMD
  1274.  
  1275.  
  1276.           the name "EDIT" with the name of your editor of choice).
  1277.  
  1278.  
  1279.  
  1280.           ? -- invokes DIR.COM on the pointed-to file,  showing  its  size
  1281.           ?            DIR.COM
  1282.           ?            DIR.COM
  1283.  
  1284.  
  1285.           and the space left on the disk.
  1286.  
  1287.  
  1288.  
  1289.           F  --  prompts  for a file specification, then invokes FINDF.COM
  1290.           F                                                      FINDF.COM
  1291.           F                                                      FINDF.COM
  1292.  
  1293.  
  1294.           to search the user's disks for matching file names.
  1295.  
  1296.  
  1297.  
  1298.           I -- invokes the program PWD.COM to display  the  names  of  all
  1299.           I                        PWD.COM
  1300.           I                        PWD.COM
  1301.  
  1302.  
  1303.           directories in the current named directory package.
  1304.  
  1305.  
  1306.  
  1307.           Z -- prompts for a command line and executes it.
  1308.           Z
  1309.           Z
  1310.  
  1311.  
  1312.  
  1313.           V  --  aborts  the  VMENU shell, replacing it on the shell stack
  1314.           V                   VMENU
  1315.           V                   VMENU
  1316.  
  1317.  
  1318.           with VFILER.   This  is  different  than  invoking  VFILER  from
  1319.                VFILER                                         VFILER
  1320.                VFILER                                         VFILER
  1321.  
  1322.  
  1323.           within the  shell;  when the VFILER shell is terminated, control
  1324.                                        VFILER
  1325.                                        VFILER
  1326.  
  1327.  
  1328.           will not return to this VMENU session.  I find it convenient  to
  1329.                ___
  1330.                                   VMENU
  1331.                                   VMENU
  1332.  
  1333.  
  1334.           be  able to switch back and forth between VFILER and one or more
  1335.                                                     VFILER
  1336.                                                     VFILER
  1337.  
  1338.  
  1339.           menu systems, without  having  to  worry  about  getting  nested
  1340.  
  1341.  
  1342.           deeper and deeper in the shell stack.
  1343.  
  1344.  
  1345.  
  1346.  
  1347.  
  1348.       5. Limitations And Potential Improvements
  1349.       5. Limitations And Potential Improvements
  1350.       5. Limitations And Potential Improvements
  1351.  
  1352.  
  1353.  
  1354.       As  distributed,  the maximum number of members is set to 63 for all
  1355.  
  1356.  
  1357.       version libraries.  This default  can  be  changed  by  editing  the
  1358.  
  1359.  
  1360.       alias script, ALIAS.CMD.
  1361.                     ALIAS.CMD
  1362.                     ALIAS.CMD
  1363.  
  1364.  
  1365.  
  1366.       Since these  commands operate as aliases, they are somewhat slow.  I
  1367.  
  1368.  
  1369.       do not find them intolerably slow, even on a floppy-based system  (I
  1370.  
  1371.  
  1372.       use  four  96tpi floppies -- 800K each -- on an Ampro Little Board).
  1373.  
  1374.  
  1375.       With a hard disk or RAM disk, speed should not be a problem.
  1376.  
  1377.  
  1378.  
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384.  
  1385.                    Version Library Utilities 1.0                    Page 8
  1386.  
  1387.  
  1388.  
  1389.  
  1390.  
  1391.       The major drawback to this system is that  complete  copies  of  all
  1392.  
  1393.  
  1394.       versions are  stored  in  the  library.   In some more sophisticated
  1395.  
  1396.  
  1397.       version control systems, only the differences between  versions  are
  1398.  
  1399.  
  1400.       stored (and at least one "base version").
  1401.  
  1402.  
  1403.  
  1404.       Alternatively,  the  versions  entered  into  the  library  could be
  1405.  
  1406.  
  1407.       squeezed or  crunched  first,  and  unsqueezed  or  uncrunched  when
  1408.  
  1409.  
  1410.       extracted.   This  would  be  a lot easier to do if NULU supported a
  1411.                                                           NULU
  1412.                                                           NULU
  1413.  
  1414.  
  1415.       "squeeze on entry" option, and if the original file extension  could
  1416.  
  1417.  
  1418.       be  retained  when squeezing (instead of automatically changing .xxx
  1419.                                                                       .xxx
  1420.                                                                       .xxx
  1421.  
  1422.  
  1423.       to .xQx.).
  1424.          .xQx
  1425.          .xQx
  1426.  
  1427.  
  1428.  
  1429.       If there is interest, I  may  try  to  develop  compiled,  non-alias
  1430.  
  1431.  
  1432.       versions  of  these  tools,  which  would  allow  for  more powerful
  1433.  
  1434.  
  1435.       operation.
  1436.  
  1437.  
  1438.  
  1439.  
  1440.       6. Requirements
  1441.       6. Requirements
  1442.       6. Requirements
  1443.  
  1444.  
  1445.  
  1446.       The following programs are used or assumed by the  version  aliases.
  1447.  
  1448.  
  1449.       The  exact  versions  shown  may not be necessary, but those are the
  1450.  
  1451.  
  1452.       versions I currently use with this system.
  1453.  
  1454.  
  1455.  
  1456.           ARUNZ.COM version 1.09B
  1457.           ARUNZ.COM
  1458.           ARUNZ.COM
  1459.  
  1460.  
  1461.  
  1462.           DIF.COM version 2.00
  1463.           DIF.COM
  1464.           DIF.COM
  1465.  
  1466.  
  1467.  
  1468.           LDIR.COM version 2.3
  1469.           LDIR.COM
  1470.           LDIR.COM
  1471.  
  1472.  
  1473.  
  1474.           NULU.COM version 1.51
  1475.           NULU.COM
  1476.           NULU.COM
  1477.  
  1478.  
  1479.  
  1480.           VMENU.COM version 2.3
  1481.           VMENU.COM
  1482.           VMENU.COM
  1483.  
  1484.  
  1485.  
  1486.       The following programs are used by the menu operations.   These  are
  1487.  
  1488.  
  1489.       not  strictly required, as you may want to customize the menu system
  1490.  
  1491.  
  1492.       to your own preferences.
  1493.  
  1494.  
  1495.  
  1496.           DIR.COM
  1497.           DIR.COM
  1498.           DIR.COM
  1499.  
  1500.  
  1501.  
  1502.           EDIT -- replace with your preferred editor
  1503.           EDIT
  1504.           EDIT
  1505.  
  1506.  
  1507.  
  1508.           FINDF.COM
  1509.           FINDF.COM
  1510.           FINDF.COM
  1511.  
  1512.  
  1513.  
  1514.           HELP.COM
  1515.           HELP.COM
  1516.           HELP.COM
  1517.  
  1518.  
  1519.  
  1520.           PWD.COM
  1521.           PWD.COM
  1522.           PWD.COM
  1523.  
  1524.  
  1525.  
  1526.           SCAN.COM
  1527.           SCAN.COM
  1528.           SCAN.COM
  1529.  
  1530.  
  1531.  
  1532.           SETFILE.COM
  1533.           SETFILE.COM
  1534.           SETFILE.COM
  1535.  
  1536.  
  1537.  
  1538.           SHCTRL.COM
  1539.           SHCTRL.COM
  1540.           SHCTRL.COM
  1541.  
  1542.  
  1543.  
  1544.  
  1545.  
  1546.  
  1547.  
  1548.  
  1549.  
  1550.  
  1551.  
  1552.  
  1553. version 2.00
  1554.           DIF.COM
  1555.           DIF.COM
  1556.  
  1557.  
  1558.  
  1559.