home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / CLIPPER / MISC / PSCM13.ZIP / PSCM.MAN < prev    next >
Encoding:
Text File  |  1992-07-31  |  60.7 KB  |  1,356 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.              ======================================================
  11.  
  12.  
  13.  
  14.  
  15.                            Project Source Code Manager
  16.  
  17.                                    Version 1.3
  18.  
  19.                                   July 31, 1992
  20.  
  21.  
  22.  
  23.  
  24.                            ---------------------------
  25.  
  26.  
  27.  
  28.  
  29.                              Copyright (c) 1990-1992
  30.  
  31.                                 J. Bart Henthorn
  32.  
  33.                                All Rights Reserved
  34.  
  35.  
  36.  
  37.  
  38.              ======================================================
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.         The programs described in this documentation are the  copyrighted
  55.         works of J. Bart Henthorn.  They are expressly distributed  under
  56.         the ShareWare concept.  They are not free.  You must license them
  57.         if you use them beyond the initial trial period.
  58.  
  59.         PSCM -- The Project Source Code Manager           July 31st, 1992
  60.  
  61.         Introduction to PSCM.............................................1
  62.  
  63.         Installing PSCM..................................................2
  64.  
  65.         The PSCM Configuration File......................................2
  66.  
  67.         The Project Source Files.........................................3
  68.  
  69.         The Project Database File........................................3
  70.  
  71.         The Item File System.............................................4
  72.  
  73.         The CHECKIN Program..............................................5
  74.              Adding New Files to a Project Database......................5
  75.              Updating Files in the Project Database......................5
  76.              Adding Comments to the Project Database File................6
  77.              Entering Comments...........................................6
  78.              Saving a Set of Files in the Database.......................7
  79.              Viewing Differences in the Source Files.....................8
  80.              Undoing A Previous CHECKIN..................................8
  81.  
  82.         Special Macros in Source Files...................................10
  83.              The Revision Comments Macro.................................11
  84.  
  85.         The CHECKOUT Program.............................................12
  86.              Retrieving for Editing or Making............................12
  87.              Listing the Files in the Project Database...................13
  88.              Listing Comments in the Project Database....................13
  89.              Listing or Retrieving File Sets.............................14
  90.  
  91.         Using PSCM with Make Programs....................................15
  92.              Step 1:  Pre- and Post-Processing...........................15
  93.              Step 2:  Templates..........................................16
  94.              Enhancements................................................16
  95.  
  96.         PSCM is ShareWare................................................18
  97.  
  98.         Revision History.................................................19
  99.              Bugs Fixed and Enhancements Added to Version 1.3............20
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.         Table of Contents                                      PSCM v1.3
  117.  
  118.         PSCM -- The Project Source Code Manager           July 31st, 1992
  119.  
  120.                        PSCM - Project Source Code Manager
  121.                        PSCM - Project Source Code Manager
  122.                        __________________________________
  123.                        __________________________________
  124.  
  125.         PSCM consists of two main programs:  CHECKIN and CHECKOUT.  These
  126.         two  programs  control  a  project  database  that  contains  the
  127.         complete source code and support files for a project.  The  basic
  128.         function  of PSCM is to maintain and archive various versions  of
  129.         the  project source code as it evolves.  At any point in time  it
  130.         should  be possible to retrieve the full set of files  needed  to
  131.         create the project at any point in time.
  132.  
  133.         PSCM  manages  the  different revisions by  assigning  a  Version
  134.         Number  to each different version of the files.  This number  has
  135.         three parts as follows:
  136.  
  137.              M.N.R  where:
  138.  
  139.              M    The major version number.  This number may range from 0
  140.                   to 32767.
  141.              N    The minor version number.  This number may range from 0
  142.                   to 32767.
  143.              R    The  revision number.  This number may range from 0  to
  144.                   32767  and is used to indicate  intermediate  revisions
  145.                   between releases.
  146.  
  147.         When a project's files are identified by only the major and minor
  148.         version  numbers, this is referred to as a "Version."   When  the
  149.         revision number is included, this is called an "Instance."   When
  150.         a  set of files is retrieved for a particular Version,  the  most
  151.         recent  Instance of all files is retrieved.  It is also  possible
  152.         to retrieve a specific revision of a file.
  153.  
  154.         The  database  maintains  an internal  directory  of  files  that
  155.         constitute a project set.  This directory contains a list of  all
  156.         source  code  files as well as any comments or  set  descriptions
  157.         that have been entered.  Once an item has been added to a project
  158.         database  it  is not possible to remove it  (with  one  exception
  159.         described later).  It is for this reason that you should be  sure
  160.         about your actions when you add an item to a database.
  161.  
  162.         PSCM  stores only the latest instance of a file in the  database.
  163.         Prior  instances  are  stored  as  "Difference  Scripts."   These
  164.         scripts  are  generated  and  used  by  the  three  PSCM  support
  165.         programs:  DIFS, MRGS, and SHOWDIFS.  DIFS compares two files and
  166.         produces a script file that describes how they differ.  MRGS uses
  167.         a  script file and the later version source file to  produce  the
  168.         earlier version source file.  SHOWDIFS uses a script file and the
  169.         later version source file to display the differences between  the
  170.         later and earlier versions.
  171.  
  172.         PSCM also allows the inclusion of comments in the database  file.
  173.         When  one or more files have been changed, and new  Instances  of
  174.         the  files are added to the database, an optional comment may  be
  175.         saved.   Along with the comment is a list of the  files  modified
  176.         and their revision level and file date and time.  These  comments
  177.  
  178.         PSCM v1.3                                                 page 1
  179.  
  180.         PSCM -- The Project Source Code Manager           July 31st, 1992
  181.  
  182.         may be either listed one at a time or all comments at once.   The
  183.         same  comment is entered for all files updated during  that  run.
  184.         This  saves you from having to reenter the same information  over
  185.         and over again.  It is also possible to feed the comment from  an
  186.         ASCII file by using the redirection features of DOS.
  187.  
  188.         During  development it may be desirable to take a  "Snapshot"  of
  189.         the  current revision level of all files in the  database.   PSCM
  190.         allows  this function through the use of "Sets."  When a  Set  is
  191.         created a record is made of all source files at their most recent
  192.         Instance.  This is stored along with a comment which can be  used
  193.         to  describe  the Set.  At any point in time it  is  possible  to
  194.         recreate  the  exact  state of these  files  using  the  CHECKOUT
  195.         program's Set command.  It is also possible to generate a list of
  196.         all Sets in the database.
  197.  
  198.         PSCM also supports a limited "Undo" function.  Since we humans do
  199.         occasionally  make  mistakes, PSCM saves  information  about  the
  200.         items  changed  during an update.  This information is  only  one
  201.         level  deep;  you  can only undo the most recent  update  to  the
  202.         project  database.  The undo is a one-way undo.  This means  that
  203.         you cannot undo an undone database.  Once you undo a database the
  204.         necessary information is removed.
  205.  
  206.         Installing PSCM
  207.         Installing PSCM
  208.         _______________
  209.         _______________
  210.  
  211.         PSCM  version  1.3  contains  six  program  files   (CHECKIN.EXE,
  212.         CHECKOUT.EXE,  DIFS.EXE, MRGS.EXE, SHOWDIFS.EXE, and  ISIZE.EXE).
  213.         These  files  should be placed in a directory  along  your  PATH.
  214.         This  will  make them accessible from anywhere  on  your  system.
  215.         There is also a standard configuration file named PSCM.CFG.  This
  216.         file  is a normal ASCII text file (see description  below).   You
  217.         should edit this file to suit your system and then put it in  the
  218.         same directory with the CHECKOUT.EXE program file.
  219.  
  220.         The PSCM Configuration File
  221.         The PSCM Configuration File
  222.         ___________________________
  223.         ___________________________
  224.  
  225.         PSCM  uses a configuration file to store some  basic  information
  226.         used  when expanding some of the special macro strings  described
  227.         later.   The configuration file is an eight line text file.   The
  228.         first line in the file is called the "System" line.  The text  of
  229.         the first line is used when expanding the System Name macro.  The
  230.         remaining  seven  lines are called "User Parameters."   They  are
  231.         used when expanding the seven User macros.  Each of the lines  in
  232.         the configuration file is limited to a maximum of 63  characters.
  233.         PSCM  will truncate an entry at the 63rd character when using  it
  234.         to expand a macro.
  235.  
  236.         When  the CHECKOUT program begins execution, it attempts to  open
  237.         the  configuration file "PSCM.CFG" in the current directory.   If
  238.         it  cannot  find the file in the current directory, and  you  are
  239.         using  DOS  version  3.0 or later, it will attempt  to  load  the
  240.         configuration file from the directory where the CHECKOUT  program
  241.         was  loaded.   This allows you to have  a  default  configuration
  242.  
  243.         page 2                                                 PSCM v1.3
  244.  
  245.         PSCM -- The Project Source Code Manager           July 31st, 1992
  246.  
  247.         stored in the same directory as the CHECKOUT.EXE file and to have
  248.         a project specific configuration in the working directory.
  249.  
  250.         For  example, suppose you keep a stock configuration file in  the
  251.         directory where you keep your program files.  This file has  User
  252.         Parameter  #1  set to your standard copyright  message.   If  you
  253.         wanted to change the copyright message for a special project  you
  254.         could  simply copy the stock PSCM.CFG file to the same  directory
  255.         with your source files and then edit User Parameter #1.
  256.  
  257.         The Project Source Files
  258.         The Project Source Files
  259.         ________________________
  260.         ________________________
  261.  
  262.         A Project's source files are plain ASCII text files that  contain
  263.         the source code for a project.  The source files may also include
  264.         the various support files used to create and maintain the project
  265.         such  as  a  make file and batch files.  For  example,  the  PSCM
  266.         project has several 'C' code source files, a couple of 'C' header
  267.         files, a make file and a few batch files.  Taken together,  these
  268.         files  are all that is necessary to recreate the  entire  project
  269.         from scratch.
  270.  
  271.         -----------------------------------------------------------------
  272.         NOTE      PSCM  can  only work with plain ASCII text  files.   It
  273.         NOTE
  274.                   will  not  handle word processor files  properly.   The
  275.                   various control codes in most word processor files will
  276.                   corrupt the PSCM database file.
  277.         -----------------------------------------------------------------
  278.  
  279.         The Project Database File
  280.         The Project Database File
  281.         _________________________
  282.         _________________________
  283.  
  284.         The  Project Database file is used to hold all information  about
  285.         the project's source files.  There is no requirement on the  name
  286.         of the file, however the convention is to name it the same as the
  287.         project with no extension.  For example, my project file for PSCM
  288.         is  named "PSCM".  The project database file need not even be  in
  289.         the same directory as the rest of the project files.  This allows
  290.         you  to  place the project file on another drive  or  in  another
  291.         directory for that added "Peace of Mind."
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.         PSCM v1.3                                                 page 3
  310.  
  311.         PSCM -- The Project Source Code Manager           July 31st, 1992
  312.  
  313.         The Item File System (IFS)
  314.         The Item File System (IFS)
  315.         __________________________
  316.         __________________________
  317.  
  318.         PSCM  project files use a database manager called the "Item  File
  319.         System."   This  DBMS  allows records in the database  to  be  of
  320.         varying lengths.  It is also very fast because it uses a  hashing
  321.         algorithm  to  store the records.  When a project file  is  first
  322.         created  (by  the  CHECKIN program) it is given  a  default  size
  323.         (called a "Modulo") of 47.  As the project database file grows it
  324.         may  be necessary to resize the file to improve retrieval  speed.
  325.         The  ISIZE program is used to resize the project  database  file.
  326.         Use the following command:
  327.  
  328.              ISIZE -r PROJECT
  329.  
  330.         The ISIZE program will inspect the project database file and then
  331.         create a new file with a new size and copy all items from the old
  332.         file  to  the  new file.  It will then delete the  old  file  and
  333.         rename the new file to the old file name.
  334.  
  335.         -----------------------------------------------------------------
  336.         NOTE      The  old file will only be deleted if the new  file  is
  337.         NOTE
  338.                   created correctly.  If the ISIZE program encounters any
  339.                   errors the old file will be left intact.
  340.         -----------------------------------------------------------------
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.         page 4                                                 PSCM v1.3
  373.  
  374.         PSCM -- The Project Source Code Manager           July 31st, 1992
  375.  
  376.         The CHECKIN Program
  377.         The CHECKIN Program
  378.         ___________________
  379.         ___________________
  380.  
  381.         The CHECKIN program is used to add project files to the  database
  382.         and  to  create new Versions or Instances of files.   CHECKIN  is
  383.         also  used  to add comments to the database,  to  create  project
  384.         Sets, and to undo a previous CHECKIN command.
  385.  
  386.         -----------------------------------------------------------------
  387.         NOTE      None of the CHECKIN command forms discussed will  alter
  388.         NOTE
  389.                   the  source  files.  They are left on disk  exactly  as
  390.                   before CHECKIN was run.
  391.         -----------------------------------------------------------------
  392.  
  393.         Adding New Files to a Project Database
  394.         Adding New Files to a Project Database
  395.  
  396.         When  adding  one or more new files to the project  database,  or
  397.         when  creating a new Version level, the Version numbers  must  be
  398.         specified via a command line switch as follows:
  399.  
  400.              CHECKIN -vM.N PROJECT FILE1 FILE2 ... FILEn
  401.  
  402.         The  '-v' switch is used to specify the major and  minor  version
  403.         numbers.  As with most CHECKIN commands you can use wildcards  to
  404.         specify  the files.  However, you cannot specify files  that  are
  405.         not in the current directory; all files specified must be in  the
  406.         current directory.
  407.  
  408.         Note that the revision number is not specified, it is set to 0 by
  409.         the  program.   If  a  copy of the file  already  exists  at  the
  410.         specified Version level, a warning message will be displayed  and
  411.         the  file  will be skipped.  This feature is  particularly  handy
  412.         when adding new files to an existing project database.
  413.  
  414.         For example, assume you have created three new source files,  two
  415.         with the extension ".C" and one with the extension ".H".  You can
  416.         easily  add these to the project database by using  wildcards  to
  417.         specify all .C and .H files (e.g. "*.C *.H").  Only the new files
  418.         will be added to the database; any files already existing in  the
  419.         project database will be skipped.
  420.  
  421.         Updating Files in the Project Database
  422.         Updating Files in the Project Database
  423.  
  424.         To  create  a  new Instance of an existing  file,  the  following
  425.         command line is used:
  426.  
  427.              CHECKIN -i PROJECT FILE1 FILE2 ... FILEn
  428.                   -or-
  429.              CHECKIN -i PROJECT
  430.                   -or-
  431.              CHECKIN -iM.N PROJECT FILE1 FILE2 ... FILEn
  432.                   -or-
  433.              CHECKIN -iM.N PROJECT
  434.  
  435.  
  436.  
  437.         PSCM v1.3                                                 page 5
  438.  
  439.         PSCM -- The Project Source Code Manager           July 31st, 1992
  440.  
  441.         When no file names are specified on the CHECKIN command line, all
  442.         source files that have been modified since they were last checked
  443.         in are updated.  This is a shorthand way of updating all modified
  444.         files.  You can also use wildcards to specify the files that will
  445.         be updated.
  446.  
  447.         The  first command form is used to create new Instances  for  the
  448.         specified  files  at the most recent Version level.   The  second
  449.         command  is the same except that all modified files in  the  most
  450.         recent  Version are updated to a new Instance.  These  two  forms
  451.         are the most common used in project management.
  452.  
  453.         The third and fourth commands are similar to the first two except
  454.         a  specific Version level is updated instead of the most  recent.
  455.         These two command forms are used when a previous CHECKOUT was run
  456.         to retrieve a Version other than the most recent.
  457.  
  458.         Adding Comments to the Project Database File
  459.         Adding Comments to the Project Database File
  460.  
  461.         The  '-i' switch discussed above is used to create new  Instances
  462.         of source files.  But it is also possible to add a comment record
  463.         at the same time.  The following commands behave the same  except
  464.         that they also allow an optional comment record to be created and
  465.         saved  with the files.  The comment record contains one  or  more
  466.         lines  of  text and a list of the files updated.   The  following
  467.         command forms are used to create comment records:
  468.  
  469.              CHECKIN -c PROJECT FILE1 FILE2 ... FILEn
  470.                   -or-
  471.              CHECKIN -c PROJECT
  472.                   -or-
  473.              CHECKIN -cM.N PROJECT FILE1 FILE2 ... FILEn
  474.                   -or-
  475.              CHECKIN -cM.N PROJECT
  476.  
  477.         The  same comment is saved with every file updated.  This  allows
  478.         you  to  easily apply the same comments to  every  file  modified
  479.         since  the last update.  If you need to save a  specific  comment
  480.         with  a small subset of files you should run CHECKIN and  specify
  481.         those  files  that will receive the different comment.   You  can
  482.         then  use  the  second command form shown above to  pick  up  the
  483.         remaining files and give them a global comment.
  484.  
  485.         If  you  do  not specify a comment (by  entering  Control+Z  "^Z"
  486.         without  any text) then no comment will be saved with  the  files
  487.         but  they  will still be updated in the project  database.   This
  488.         allows you to always use the "-c" switch to update files and only
  489.         enter comments when you truly need to comment on the update.
  490.  
  491.         Entering Comments
  492.         Entering Comments
  493.  
  494.         CHECKIN reads comments, one line at a time, from STDIN.  You  can
  495.         edit the current line only;  once you press <Enter> at the end of
  496.         the  line you cannot edit that line any more.  When you are  done
  497.  
  498.         page 6                                                 PSCM v1.3
  499.  
  500.         PSCM -- The Project Source Code Manager           July 31st, 1992
  501.  
  502.         entering  the comment, enter a Control+Z "^Z", either  using  the
  503.         <Ctrl>+<Z>  keys or by pressing the <F6> function key,  and  then
  504.         press  <Enter>.  This ends the current comment.  Note that  there
  505.         is  no limit to the number of lines in a comment, but there is  a
  506.         limit  to  the width of a comment line.  No comment  line  should
  507.         extend past column 80, but you may find that output formatting is
  508.         easier if you limit comment lines to something less than this.
  509.  
  510.         Because  CHECKIN can read the comments from an ASCII  file  using
  511.         redirection, you may find it easier to enter your comments into a
  512.         text  file and then redirect them into CHECKIN from  the  command
  513.         line.  For example, assume that you have saved all your  comments
  514.         in  a  text file called "COMMENTS".  You can update  the  project
  515.         database and save the contents of the COMMENTS file as the update
  516.         comment using the following command:
  517.  
  518.              CHECKIN -c PROJECT < COMMENTS
  519.  
  520.         -----------------------------------------------------------------
  521.         NOTE      It  is generally NOT a good idea to enter  source  file
  522.         NOTE
  523.                   comment  symbols  in  a  revision  comment.   In   some
  524.                   languages, most notably 'C', the comment symbols in the
  525.                   expanded comment macro could cause compilation errors.
  526.         -----------------------------------------------------------------
  527.  
  528.         Saving a Set of Files in the Database
  529.         Saving a Set of Files in the Database
  530.  
  531.         During the development process it may be useful to save a  record
  532.         of the current revision level of all files in the database.  This
  533.         record is called a "Set."  It is commonly used as a place  marker
  534.         to indicate where specific versions of the project were generated
  535.         and released.  For example, if you are in the habit of  releasing
  536.         preliminary  versions  to  a  small group  of  testers,  the  Set
  537.         function can be used to regenerate the source code used for  each
  538.         tester's version of the program.  This allows you to forge  ahead
  539.         making fixes and enhancements to the project, yet still pull  the
  540.         "release" version to check on specific bug reports.
  541.  
  542.         The command used to generate a Set is:
  543.  
  544.              CHECKIN -s PROJECT
  545.                   -or-
  546.              CHECKIN -sM.N PROJECT
  547.  
  548.         Note that no file names are specified on the command line.   This
  549.         is  because  the Set command generates and saves a  list  of  all
  550.         files  in the database.  The first command form will  generate  a
  551.         set for the most recent Version, while the second form is used to
  552.         create a set for a specified version.
  553.  
  554.         Note  that  you must also enter a "Set Comment."  If you  do  not
  555.         enter a comment (or enter a blank comment) then the set will  not
  556.         be created.
  557.  
  558.  
  559.         PSCM v1.3                                                 page 7
  560.  
  561.         PSCM -- The Project Source Code Manager           July 31st, 1992
  562.  
  563.         Viewing Differences in the Source Files
  564.         Viewing Differences in the Source Files
  565.  
  566.         After  making  changes in the source files, and  before  checking
  567.         them into the project database, you can view the changes you have
  568.         made.   The  "-d" command switch is used to compare  the  current
  569.         versions  of  the  source  files on disk  with  the  most  recent
  570.         Instances saved in the project database.
  571.  
  572.              CHECKIN -d[M.N] PROJ [FILE1 FILE2 ... FILEn]
  573.  
  574.         If you do not specify a version ("M.N" in the above command spec)
  575.         then  the most recent version will be used, otherwise  the  files
  576.         from  the  specified  version will be compared.  If  you  do  not
  577.         specify any files then every file in the project database will be
  578.         compared.   If files are specified then only those files will  be
  579.         compared.
  580.  
  581.         This  command  compares the source files found on disk  with  the
  582.         most  recent Instances at the specified (or most recent)  Version
  583.         in the project database.  It does not alter the project  database
  584.                                   _______________________________________
  585.         file.   The differences will be written to a file with  the  same
  586.         ____
  587.         base  name as the source file but with the extension "__D".   For
  588.         example,  assume you have modified the source file "FILE1.C"  and
  589.         then enter the following command:
  590.  
  591.              CHECKIN -d PROJ FILE1.C
  592.  
  593.         The  differences between the on-disk version and  the  checked-in
  594.         version will be written to a file named "FILE1.__D".
  595.  
  596.         The following is an example of the difference file format:
  597.  
  598.              < = Version on disk; > = Version checked in
  599.  
  600.              <     DESC desc1;
  601.              ----------------------------------------
  602.              >     DESC desc1, desc2;
  603.  
  604.              <     run_showdifs(difscript, filename, difoutname);
  605.              ----------------------------------------
  606.              >     run_showdifs(filename, difscript, difoutname);
  607.  
  608.         -----------------------------------------------------------------
  609.         NOTE      No check is made for source files that already have  an
  610.         NOTE
  611.                   extension of "__D".  This situation could cause  severe
  612.                   problems including the possible loss of the source file
  613.                   on disk.
  614.         -----------------------------------------------------------------
  615.  
  616.         Undoing A Previous CHECKIN
  617.         Undoing A Previous CHECKIN
  618.  
  619.         From  time to time you may find it necessary to "undo"  the  most
  620.         recent  CHECKIN  command  on a project  database.   This  usually
  621.         happens because you have accidentally added the wrong files to  a
  622.  
  623.         page 8                                                 PSCM v1.3
  624.  
  625.         PSCM -- The Project Source Code Manager           July 31st, 1992
  626.  
  627.         project  file or because you entered a wrong  comment.   Whatever
  628.         the  reason it would be nice if you could "take that back."   The
  629.         CHECKIN program allows a limited form of this.  The "-u"  command
  630.         switch  will undo the changes made to a project database  by  the
  631.         most recent CHECKIN run.
  632.  
  633.         When  CHECKIN makes modifications to a project database it  saves
  634.         information in the database about what items were added and which
  635.         items  were changed and how they were changed.  This  information
  636.         is  used  to restore the database to it original  condition.   To
  637.         undo a previous CHECKIN run use the command:
  638.  
  639.              CHECKIN -u PROJ
  640.  
  641.         CHECKIN will first inspect the project database file (PROJ in the
  642.         above  example)  and determine if the  necessary  information  is
  643.         present.  If it is not possible to undo the database then CHECKIN
  644.         will  print an error message to this effect and exit.   The  undo
  645.         information  is deleted at the beginning of a  modification  run.
  646.         This  means that once you begin an update (using the "-v",  "-i",
  647.         "-c",  or  "-s"  command switches) you can  no  longer  undo  the
  648.         previous  modification.   This  is true even  if  you  abort  the
  649.         current run by pressing Control+C or Control+Break.
  650.  
  651.         If  the  necessary information is present in  the  database  then
  652.         CHECKIN will prompt you to verify that you truly wish to undo the
  653.         modifications made by the previous CHECKIN.  Press "Y" or "y"  to
  654.         continue with the undo process.  Any other key will cause CHECKIN
  655.         to abort the undo leaving the undo information intact.
  656.  
  657.         As  each  file  is restored to its previous  version  a  progress
  658.         message will display indicating which file is being affected  and
  659.         what   version  is  involved.   Note  that  the   Control+C   and
  660.         Control+Break keys are ignored during an undo process.  When  the
  661.         undo is complete the undo information is deleted from the project
  662.         database.
  663.  
  664.         -----------------------------------------------------------------
  665.         NOTE      Undo does not alter any source files on disk.  It  only
  666.         NOTE           ______________
  667.                   modifies the contents of the project database file.
  668.         -----------------------------------------------------------------
  669.  
  670.  
  671.  
  672.  
  673.  
  674.  
  675.  
  676.  
  677.  
  678.  
  679.  
  680.  
  681.  
  682.  
  683.         PSCM v1.3                                                 page 9
  684.  
  685.         PSCM -- The Project Source Code Manager           July 31st, 1992
  686.  
  687.         Special Macros in Source Files
  688.         Special Macros in Source Files
  689.         ______________________________
  690.         ______________________________
  691.  
  692.         When files are retrieved for editing (see the description of  the
  693.         CHECKOUT program below), certain special "Macro" strings are left
  694.         in  the  unexpanded form.  When files are  retrieved  for  making
  695.         (i.e.  compiling,  assembling, etc.) these Macros  are  expanded.
  696.         The Macros can be used to specify version numbers, file dates and
  697.         times, file names, etc.
  698.  
  699.         The  Macros  are  used to place  information  about  the  system,
  700.         project,  or  file  in the text of the file.  When  the  file  is
  701.         retrieved   for  making,  the  Macros  are  replaced   with   the
  702.         information  specified.   There are two types of  date  and  time
  703.         macros.   One form is used to place the current SYSTEM  date  and
  704.         time in the file.  This is the system date and time when the file
  705.         is  retrieved.  The other form is used to place the  FILE's  date
  706.         and  time  in the text.  This is the date and time  of  the  last
  707.         modification to the file.
  708.  
  709.                   General Macros
  710.                   -------------------------------------------------------
  711.              @#D  System Date in the form mm/dd/yy
  712.              @#T  System Time in the form hh:mm:ss
  713.              @#P  Project name
  714.              @#c  Revision history comments
  715.  
  716.                   Configuration File Macros
  717.                   -------------------------------------------------------
  718.              @#S  System name from the PSCM config file
  719.              @#1  User parameter 1 from the PSCM config file
  720.              @#2  User parameter 2 from the PSCM config file
  721.              @#3  User parameter 3 from the PSCM config file
  722.              @#4  User parameter 4 from the PSCM config file
  723.              @#5  User parameter 5 from the PSCM config file
  724.              @#6  User parameter 6 from the PSCM config file
  725.              @#7  User parameter 7 from the PSCM config file
  726.  
  727.                   Version and Revision Macros
  728.                   -------------------------------------------------------
  729.              @#v  Version number in the form M.N
  730.              @#r  Revision number in the form M.N.R
  731.              @#M  Major version number
  732.              @#N  Minor version number
  733.              @#R  Revision number
  734.  
  735.                   Source File Modification Information Macros
  736.                   -------------------------------------------------------
  737.              @#d  File date in the form mm/dd/yy
  738.              @#t  File time in the form hh:mm:ss
  739.              @#f  File name and extension in the form filename.ext
  740.              @#F  File name part only (no extension)
  741.  
  742.  
  743.  
  744.  
  745.         page 10                                                 PSCM v1.3
  746.  
  747.         PSCM -- The Project Source Code Manager           July 31st, 1992
  748.  
  749.         The Revision Comments Macro
  750.         The Revision Comments Macro
  751.  
  752.         The '@#c' macro is slightly different than all the others.   When
  753.         it  is processed, it puts the revision history comments  for  the
  754.         source file in the text.  The part of the line already printed is
  755.         put  at the beginning of each line before it is inserted  in  the
  756.         text.  For example, if the lines:
  757.  
  758.              /*
  759.               * @#c */
  760.  
  761.         are in the source text, they will be expanded to look like:
  762.  
  763.              /*
  764.               *
  765.               * Revision M.N.R entered at HH:MM:SS on MM/DD/YY
  766.               * Comment line 1
  767.               *
  768.               * Revision M.N.R entered at HH:MM:SS on MM/DD/YY
  769.               * Comment line 1
  770.               * Comment line 2
  771.               *
  772.               *  */
  773.  
  774.         Only  those  comments entered when a file was  updated  and  then
  775.         checked  in using the CHECKIN option '-c' will be printed.   Even
  776.         though the comment may have been entered when more than one  file
  777.         was updated, the comment text will be printed if the current file
  778.         was included in the update.
  779.  
  780.         The  comment  text is placed in the text file starting  with  the
  781.         most  recent revision and proceeding to the oldest.  When a  file
  782.         is  extracted at a specific revision, only those  comments  which
  783.         were  entered before or at the revision are placed in  the  file.
  784.         If no comments are found, the '@#c' macro is simply discarded.
  785.  
  786.         -----------------------------------------------------------------
  787.         NOTE      It  is generally NOT a good idea to enter  source  file
  788.         NOTE
  789.                   comment  symbols  in  a  revision  comment.   In   some
  790.                   languages, most notably 'C', the comment symbols in the
  791.                   expanded comment macro could cause compilation errors.
  792.         -----------------------------------------------------------------
  793.  
  794.  
  795.  
  796.  
  797.  
  798.  
  799.  
  800.  
  801.  
  802.  
  803.  
  804.  
  805.  
  806.         PSCM v1.3                                                 page 11
  807.  
  808.         PSCM -- The Project Source Code Manager           July 31st, 1992
  809.  
  810.         The CHECKOUT Program
  811.         The CHECKOUT Program
  812.         ____________________
  813.         ____________________
  814.  
  815.         The  CHECKOUT  program is used to retrieve files  from  the  most
  816.         recent or a specified Version level.  The files can be  retrieved
  817.         for one of two purposes:  Editing or Making.
  818.  
  819.         Retrieving for Editing or Making
  820.         Retrieving for Editing or Making
  821.  
  822.         When files are retrieved for editing, all special Macros are left
  823.         in  their  unexpanded form and the file is written to disk  as  a
  824.         modifiable  file.   When  files are  retrieved  for  making,  the
  825.         special  Macros are replaced by the appropriate  information  and
  826.         the file is marked read-only.  This prevents modification of  the
  827.         file.
  828.  
  829.         When  a  file is retrieved (either for editing or making)  it  is
  830.         actually retrieved only if the file on disk is different than the
  831.         retrieved  version  or  the last version was  retrieved  for  the
  832.         opposite  purpose.   For  example, if a  file  is  retrieved  for
  833.         editing  and  the  version  on disk  is  different  (i.e.  has  a
  834.         different  date and time stamp) then the file will be written  to
  835.         disk.  If the file is the same but was last retrieved for editing
  836.         and  is now being retrieved for making, the file will be  written
  837.         to disk.  Note that when a file is checked in (using the  CHECKIN
  838.         program) the file on disk is assumed to be retrieved for editing.
  839.  
  840.         -----------------------------------------------------------------
  841.         NOTE      This behavior can sometimes cause problems.  Make  sure
  842.         NOTE
  843.                   that you really want CHECKOUT to overwrite ALL POSSIBLE
  844.                   files  first.   Because  of  the  way  DOS   overwrites
  845.                   existing  files it will not be possible to  retrieve  a
  846.                   new,  and  as yet not checked-in, version of  a  source
  847.                   file once CHECKOUT has overwritten it.
  848.         -----------------------------------------------------------------
  849.  
  850.         The command line for CHECKOUT is as follows:
  851.  
  852.              CHECKOUT -e[M.N[.R]] PROJECT [FILE1 FILE2 ... FILEn]
  853.                   -or-
  854.              CHECKOUT -m[M.N[.R]] PROJECT [FILE1 FILE2 ... FILEn]
  855.  
  856.         The '-e' switch is used to retrieve files for editing.  The  '-m'
  857.         switch is used to retrieve files for making.  Only one is allowed
  858.         on the command line.
  859.  
  860.         When  the  Version level is omitted, the most recent  version  is
  861.         retrieved.   If the Revision number is omitted, the  most  recent
  862.         Instance  is retrieved.  Note that you must specify a Version  in
  863.         order to specify a Revision.
  864.  
  865.         If  you  do not specify any file names on the command  line,  all
  866.         files  which  are  different than the version  on  disk  will  be
  867.         retrieved.   If one or more files are named in the command,  only
  868.         those  files  will  be  retrieved.  Note  that  a  file  will  be
  869.  
  870.         page 12                                                 PSCM v1.3
  871.  
  872.         PSCM -- The Project Source Code Manager           July 31st, 1992
  873.  
  874.         retrieved  only  if  the  version on disk  is  different  (has  a
  875.         different  time and date) or was last retrieved for the  opposite
  876.         purpose (editing versus making.)
  877.  
  878.         You  can  use wild cards to specify files for  extracting.   This
  879.         allows you to easily specify that all files of a specific type be
  880.         extracted  in one command.  You might use this in a MAKE  control
  881.         file to extract all inclusion files before actually beginning the
  882.         compilation of the source files.
  883.  
  884.         Listing the Files in the Project Database
  885.         Listing the Files in the Project Database
  886.  
  887.         The CHECKOUT program is also used to list files in a specific  or
  888.         the latest version.  The listing shows each file's name, time and
  889.         date,  and full version and revision number.  The command  is  as
  890.         follows:
  891.  
  892.              CHECKOUT -l[M.N[.R]] PROJECT [FILE1 FILE2 ... FILEn]
  893.  
  894.         Note  that the command switch is a lower case ell, not the  digit
  895.         one.   As  with  the other forms of  the  CHECKOUT  command,  the
  896.         version and revision numbers and the file names are optional.
  897.  
  898.         Listing Comments in the Project Database
  899.         Listing Comments in the Project Database
  900.  
  901.         CHECKOUT  can  also  list  the  comment  records  stored  in  the
  902.         database.  When new Instances of files are created using the '-c'
  903.         switch  in the CHECKIN program, a comment record is  saved  along
  904.         with  a list of the files that were updated.  CHECKOUT  can  list
  905.         either  a specified comment record, all comment records, or  only
  906.         comments for a specific file or files.  The commands used are  as
  907.         follows:
  908.  
  909.              CHECKOUT -c[M.N] PROJECT
  910.                   -or-
  911.              CHECKOUT -cM.N.R PROJECT
  912.                   -or-
  913.              CHECKOUT -c[M.N] PROJECT FILE1 FILE2 ... FILEn
  914.                   -or-
  915.              CHECKOUT -cM.N.R PROJECT FILE1 FILE2 ... FILEn
  916.  
  917.         The first command form is used to list all comment records.  If a
  918.         Version  is specified then all comments for that version will  be
  919.         listed.   Otherwise  all  comments for  the  latest  version  are
  920.         listed.
  921.  
  922.         The  second  command  form is used to  list  a  specific  comment
  923.         record.  As with source files, all comment records are assigned a
  924.         Revision  number.   This revision number is not  related  to  the
  925.         revision numbers of the other files in the database, it is simply
  926.         used to track sequential comments.
  927.  
  928.         The  third  and  fourth command forms are  used  to  display  the
  929.         comments for specific source files.  The former method lists  all
  930.  
  931.         PSCM v1.3                                                 page 13
  932.  
  933.         PSCM -- The Project Source Code Manager           July 31st, 1992
  934.  
  935.         comments  entered  when the specified files  were  updated.   The
  936.         latter form lists only those comments entered up to and including
  937.         the  Revision of the source file specified.  Both forms list  the
  938.         comments  one  source file at a time.  This means that  a  single
  939.         comment may be repeated many times, once for each file listed.
  940.  
  941.         The  output  from the Comment command is sent  to  STDOUT.   This
  942.         means  that  it may be redirected to a file or piped  to  another
  943.         program if desired.
  944.  
  945.         Listing or Retrieving File Sets
  946.         Listing or Retrieving File Sets
  947.  
  948.         The CHECKOUT program is also used to list or retrieve Sets  saved
  949.         in  the  project  database using the CHECKIN  program.   The  Set
  950.         command forms are as follows:
  951.  
  952.              CHECKOUT -s[M.N] PROJECT
  953.                   -or-
  954.              CHECKOUT -sM.N.R PROJECT
  955.                   -or-
  956.              CHECKOUT -rM.N.R PROJECT
  957.  
  958.         The  first  form is used to list all Sets saved  in  the  project
  959.         database file.  If a Version is specified then only Sets for that
  960.         version are listed.  If the Version is omitted, then the Sets for
  961.         the  most  recent Version are listed.  The listing  includes  the
  962.         comment  saved when the Set was created along with a list of  all
  963.         files  and  their  revisions that were saved  in  the  Set.   The
  964.         listing  is sent to STDOUT so it may be redirected to a  file  or
  965.         piped to another program.
  966.  
  967.         To  retrieve the files from a specific Set, the second and  third
  968.         command  forms are used.  An exact Version and Instance  must  be
  969.         specified.   Note that the Revision numbers of the Sets  are  not
  970.         related  to  the  Revision  numbers for  files.   All  files  are
  971.         retrieved  at their extant Version and Instance when the Set  was
  972.         created.
  973.  
  974.         When the '-s' switch is used, the files are retrieved for Making,
  975.         so  all special macros are expanded and the files are  marked  as
  976.         read-only  to prevent modification.  If the '-r' switch is  used,
  977.         then  the files are retrieved for Editing.  All macros  are  left
  978.         unexpanded  and  the files are made modifiable.  Once a  Set  has
  979.         been  retrieved, the files may be used to rebuild the project  or
  980.         simply viewed or printed as desired.
  981.  
  982.  
  983.  
  984.  
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991.         page 14                                                 PSCM v1.3
  992.  
  993.         PSCM -- The Project Source Code Manager           July 31st, 1992
  994.  
  995.         Using PSCM with Make Programs
  996.         Using PSCM with Make Programs
  997.         _____________________________
  998.         _____________________________
  999.  
  1000.         PSCM  was  designed  expressly  for use  with  the  various  MAKE
  1001.         programs  and  utilities  available both  through  ShareWare  and
  1002.         commercially.  In fact, with a little thought you will find  that
  1003.         PSCM ceases to be of any concern.  You just MAKE your project the
  1004.         way  you  always do and PSCM handles  the  modifications  without
  1005.         trouble.
  1006.  
  1007.         When files are retrieved from a project database (by the CHECKOUT
  1008.         program) they are given the proper time and date so MAKE can make
  1009.         the right decisions about what should be rebuilt.  PSCM will only
  1010.         store  or  retrieve  files that are  different  thus  easing  the
  1011.         control issues.
  1012.  
  1013.         Step 1:  Pre- and Post-Processing
  1014.         Step 1:  Pre- and Post-Processing
  1015.  
  1016.         There are just a few things that you need to do to integrate PSCM
  1017.         into  your  development environment.  The first  is  to  identify
  1018.         where  the  "PRE"  and "POST" processing is  done  in  your  make
  1019.         process.   Most  MAKE programs have readily  identifiable  stages
  1020.         where  PSCM can be added.  For example, I use NDMAKE version  4.5
  1021.         (a  very  good MAKE utility if you can still find  it).   NDMAKE,
  1022.         just like Unix make, makes the first target found in the  control
  1023.         file.   Most  control files wind up with a  primary  target  that
  1024.         looks like the following:
  1025.  
  1026.              build:  prog1.exe prog2.exe prog3.exe
  1027.  
  1028.         Since  "build" is a dummy target (it never exists so must  always
  1029.         be  remade),  NDMAKE  proceeds  down  the  list  of   dependents,
  1030.         rebuilding  whatever is necessary to update them.  The effect  of
  1031.         this is to rebuild all of the program files in the project.  This
  1032.         is an excellent candidate for inclusion of PSCM.  We can add  two
  1033.         new  dummy targets to handle the pre- and post-processing  needed
  1034.         by PSCM.
  1035.  
  1036.         The  preprocessing stage consists of checking in any  updated  or
  1037.         modified  files,  and then checking out any files  that  are  not
  1038.         direct  targets  (i.e. header and inclusion files).   If  we  are
  1039.         using 'C' we might rewrite our make control file as follows:
  1040.  
  1041.              build:  PREP prog1.exe prog2.exe prog3.exe FINI
  1042.  
  1043.              PREP:
  1044.                   CHECKIN -C PROJ
  1045.                   CHECKOUT -M PROJ *.H
  1046.  
  1047.              FINI:
  1048.                   CHECKOUT -E PROJ
  1049.  
  1050.         The PREP dummy target will always cause the CHECKIN and  CHECKOUT
  1051.         commands  to  execute.  The CHECKIN command causes  all  modified
  1052.         files to be updated in the PROJ project database and prompts  for
  1053.  
  1054.         PSCM v1.3                                                 page 15
  1055.  
  1056.         PSCM -- The Project Source Code Manager           July 31st, 1992
  1057.  
  1058.         a  comment  describing  the  modifications  made.   The  CHECKOUT
  1059.         command  then  extracts  for "making"  all  the  dependent  files
  1060.         (header  files) that will not be directly compiled.  This is  all
  1061.         the preparation we need in order to begin compiling.
  1062.  
  1063.         The  FINI dummy target runs CHECKOUT one more time to  make  sure
  1064.         that  all our source code files are extracted for editing.   Keep
  1065.         in  mind that when a file is extracted for making all the  macros
  1066.         are  expanded and the file is marked read-only.  If  errors  were
  1067.         encountered  during  the make we want the source files  ready  to
  1068.         modify without any hassle.
  1069.  
  1070.         Step 2:  Templates
  1071.         Step 2:  Templates
  1072.  
  1073.         Most  (recent)  MAKE programs use a special  construct  called  a
  1074.         "Template."   A  template tells the MAKE program how to  build  a
  1075.         target file from a source file without having to exactly  specify
  1076.         the file name, only the extensions of the two.
  1077.  
  1078.         For example, NDMAKE uses the following template to tell it how to
  1079.         create a .OBJ file from a .C source file:
  1080.  
  1081.              #    C -> OBJ
  1082.              .c.obj:
  1083.                   ${CC} ${CFLAGS} -c $<
  1084.  
  1085.         The  "${CC} ${CFLAGS} -c" are the command and options  needed  to
  1086.         run  the  'C'  compiler.  During the make  process  the  "$<"  is
  1087.         replaced  with  the  name of each .C source  file  that  must  be
  1088.         recompiled.   This  can also be used by CHECKOUT to  extract  the
  1089.         source file from the project database just before it is compiled.
  1090.         (Remember that our post-processing will extract it for editing at
  1091.         the  end  of  the  make run so we only need  to  extract  it  for
  1092.         making.)
  1093.  
  1094.         We  can change this template to include the CHECKOUT  command  as
  1095.         follows:
  1096.  
  1097.              #    C -> OBJ
  1098.              .c.obj:
  1099.                   CHECKOUT -m PROJ $<
  1100.                   ${CC} ${CFLAGS} -c $<
  1101.  
  1102.         This  simple  addition will now cause the compiler to  work  with
  1103.         source code files that have expanded macros.
  1104.  
  1105.         Enhancements
  1106.         Enhancements
  1107.  
  1108.         What we have just shown is the minimum needed to use PSCM with  a
  1109.         MAKE program.  There are a few enhancements we can use to improve
  1110.         PSCM's integration into our work methods.
  1111.  
  1112.  
  1113.  
  1114.  
  1115.         page 16                                                 PSCM v1.3
  1116.  
  1117.         PSCM -- The Project Source Code Manager           July 31st, 1992
  1118.  
  1119.         Most (if not all) MAKE programs allow the use of macros.  In  the
  1120.         examples shown above the "${CC}" and "${CFLAGS}" are just macros.
  1121.         We  can also use macros to further enhance our use of  PSCM.   By
  1122.         changing  the  references  to "PROJ" in  the  above  examples  to
  1123.         "${PROJ}"  and  then setting the PROJ macro to the  name  of  our
  1124.         project database we make the changes universal.  All that we have
  1125.         to do to include PSCM in a different make control file is to copy
  1126.         the  modified control lines to the new file and add the PREP  and
  1127.         FINI  dummy  targets to the list of dependents  for  the  primary
  1128.         target.
  1129.  
  1130.         Most  MAKE programs also have an initialization file.  This  file
  1131.         is read when the program starts.  It contains standard macros and
  1132.         templates  used during the make process.  It may be possible  for
  1133.         you  to  modify the initialization file to include  the  CHECKOUT
  1134.         command.   Note  that this usually requires decision  making  and
  1135.         branching  capabilities too since we don't want the make to  fail
  1136.         just because we don't happen to have a project file.  However, it
  1137.         is  okay  to specify a non-existent source file on  the  CHECKOUT
  1138.         command line; CHECKOUT will simply checkout nothing.
  1139.  
  1140.         You  can  also  use  the CHECKIN  feature  that  allows  entering
  1141.         comments  from  ASCII  text files.   Simply  change  the  CHECKIN
  1142.         command  in  the  PREP dummy target to  include  redirecting  the
  1143.         contents of the comment file into CHECKIN.  For example:
  1144.  
  1145.              CHECKIN -c ${PROJ} < COMMENTS
  1146.  
  1147.         This  allows you to keep a running COMMENTS file  that  describes
  1148.         each  change as you make it.  You could also use a custom  editor
  1149.         macro  that  extracts this information from the source  code  and
  1150.         copies it to this file.  Either way it helps to further  automate
  1151.         the make process.
  1152.  
  1153.         You should make sure to truncate the comments file to zero length
  1154.         after  it  has been used by CHECKIN.  Note that this is  not  the
  1155.         same  as deleting the file.  If the file does not  exist  CHECKIN
  1156.         will not execute because DOS will fail to open the input file.
  1157.  
  1158.         The  quickest way to truncate a file to zero length is  with  the
  1159.         following DOS command:
  1160.  
  1161.              IF 1 == 0 ECHO>COMMENTS
  1162.  
  1163.         Since  "1" never equals "0" (at least we hope not) then the  ECHO
  1164.         command  will never execute.  But DOS will truncate the  COMMENTS
  1165.         file before it determines that it should skip the ECHO.
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.         PSCM v1.3                                                 page 17
  1175.  
  1176.         PSCM -- The Project Source Code Manager           July 31st, 1992
  1177.  
  1178.         PSCM is ShareWare
  1179.         PSCM is ShareWare
  1180.         _________________
  1181.         _________________
  1182.  
  1183.         I  have  been a software developer for many years.   During  that
  1184.         time I have acquired and used many very good programs through the
  1185.         "ShareWare" system.  ShareWare allows you to try a program before
  1186.         buying  it.   It does not mean the program is free, nor  does  it
  1187.         mean that it is a limited version of a commercial program.
  1188.  
  1189.         I wrote PSCM as an answer to my needs in software development.  I
  1190.         first came across the idea of source code and revision management
  1191.         when  I  ported some code from DOS to Unix.  The SCCS  system  on
  1192.         Unix  was very neat, but horribly cryptic and cumbersome.   Since
  1193.         then I have hunted for a good source code manager, but everything
  1194.         is  either priced way out of my range or just wasn't designed  to
  1195.         work with a MAKE program.
  1196.  
  1197.         If you try PSCM and you like it and intend to use it, a  donation
  1198.         of $25 is suggested.  Educational institutions may register  PSCM
  1199.         for  $15.  With a donation of $40 I will send the latest  version
  1200.         of PSCM, laser printed docs, and a BIG thank you.  If you need  a
  1201.         bunch of copies, contact me and we can work something out.
  1202.  
  1203.         To  register your copy, print out and complete  the  registration
  1204.         form (REGISTER.FRM) and mail it to:
  1205.  
  1206.              J. Bart Henthorn
  1207.              10607 E. Lowry Pl.
  1208.              Aurora, CO  80010-4035
  1209.  
  1210.         Please make payments by personal check or money order.  I  cannot
  1211.         accept  credit  card orders and it is never a good idea  to  send
  1212.         cash through the mail.
  1213.  
  1214.         If  you have questions or comments about PSCM you can contact  me
  1215.         by fax at (303) 341-7336.
  1216.  
  1217.  
  1218.  
  1219.  
  1220.  
  1221.  
  1222.  
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233.  
  1234.  
  1235.  
  1236.         page 18                                                 PSCM v1.3
  1237.  
  1238.         PSCM -- The Project Source Code Manager           July 31st, 1992
  1239.  
  1240.         Revision History
  1241.         Revision History
  1242.         ________________
  1243.         ________________
  1244.  
  1245.         Date      Vers      Comments
  1246.         11/15/90  1.0       Initial  Release: CHECKIN.EXE,  CHECKOUT.EXE,
  1247.                               DIFS.EXE, MRGS.EXE, ISIZE.EXE
  1248.  
  1249.         11/18/90  1.1       Enhancements and Bug Fixes:
  1250.                             Added support for Comments and Sets.
  1251.                             Fixed   bug  regarding  file   selection   in
  1252.                               CHECKOUT.EXE
  1253.  
  1254.         11/18/90  1.1a      Fixed bug that caused wrong time/date  stamps
  1255.                               on  files listed in a Set.  The files  were
  1256.                               retrieved  with the proper time  and  date,
  1257.                               just the listing in the Set was wrong.
  1258.                             Added  mode  to  allow  extracting  Sets  for
  1259.                               Editing as well as Making.
  1260.  
  1261.         12/03/90  1.2       New Version 1.2:
  1262.                             Added support for revision comments placed in
  1263.                               files extracted for making.
  1264.  
  1265.         07/31/92  1.3       New Version 1.3:
  1266.                             Added undo capability.
  1267.                             Added comment listing for single files.
  1268.                             Added listing of differences.
  1269.                             Added SHOWDIFS.EXE program.
  1270.                             Trap and handle Control+C and Control+Break.
  1271.                             Prevent accidental overwrite of source file.
  1272.                             Fixed various bugs.
  1273.                             (Please see following page for details.)
  1274.  
  1275.  
  1276.  
  1277.  
  1278.  
  1279.  
  1280.  
  1281.  
  1282.  
  1283.  
  1284.  
  1285.  
  1286.  
  1287.  
  1288.  
  1289.  
  1290.  
  1291.  
  1292.  
  1293.  
  1294.  
  1295.  
  1296.  
  1297.  
  1298.         PSCM v1.3                                                 page 19
  1299.  
  1300.         PSCM -- The Project Source Code Manager           July 31st, 1992
  1301.  
  1302.                 Bugs Fixed and Enhancements Added to Version 1.3
  1303.                 Bugs Fixed and Enhancements Added to Version 1.3
  1304.                 ________________________________________________
  1305.                 ________________________________________________
  1306.  
  1307.         1.   There was an obscure little bug that doesn't show up  often,
  1308.              but when it does it is a booger to find.  The PSCM.CFG  file
  1309.              can  hold  seven strings that are expanded  as  macros  when
  1310.              files  are extracted from a project file.  If one  of  these
  1311.              strings  is exactly the right length the  Microsoft  fgets()
  1312.              function reads the carriage return (CR) but not the linefeed
  1313.              (LF).   On the next call it reads the LF and sets  the  next
  1314.              string  to an empty string and moves the  remaining  strings
  1315.              down one line.  This bug is now fixed in 1.3.
  1316.  
  1317.         2.   I've  done  it, and I'm sure you've done it too;  forget  to
  1318.              include  the project file name when trying to add new  files
  1319.              to an existing project file.  Prior versions promptly  wrote
  1320.              over the first source file name, creating a new project file
  1321.              with that name.  For example:
  1322.  
  1323.                   CHECKIN -V0.0 FOO.C BAR.C
  1324.  
  1325.              When what you meant was:
  1326.  
  1327.                   CHECKIN -V0.0 PROJ FOO.C BAR.C
  1328.  
  1329.              This little finger faux pas means that your brand new  FOO.C
  1330.              module gets overwritten with a brand new project file  named
  1331.              FOO.C.  This bug has been fixed in version 1.3.  CHECKIN now
  1332.              reports  that  the file FOO.C already exists and  is  not  a
  1333.              project file.
  1334.  
  1335.         3.   CHECKIN, CHECKOUT, MRGS, DIFS and SHOWDIFS are now protected
  1336.              against  use of the Control+C or Control+Break keys.   Prior
  1337.              versions  could do everything from quietly die (at the  mild
  1338.              end)  to completely trash your Project file (at  the  severe
  1339.              end).   This behavior has now been fixed.   CHECKOUT,  MRGS,
  1340.              DIFS  and  SHOWDIFS  will now  happily  ignore  these  keys.
  1341.              CHECKIN will behave slightly different.
  1342.  
  1343.              If you press either Control+C or Control+Break while CHECKIN
  1344.              is  running or when you are entering a comment, the  Project
  1345.              file will be politely shut down.  If changes have been  made
  1346.              to  the  Project  file they will be  undone  before  CHECKIN
  1347.              quits.
  1348.  
  1349.              IMPORTANT:   Using  Control+C or Control+Break  to  abort  a
  1350.              IMPORTANT
  1351.              CHECKIN  run  also deletes any "Undo" information  that  was
  1352.              saved  in the Project file before the run was  begun.   (See
  1353.              next  section  for more on Undo.)  This means  that  if  you
  1354.              start  a  CHECKIN  run and then abort it,  you  cannot  then
  1355.              further undo the Project file.
  1356.  
  1357.         4.   CHECKIN  now supports an "Undo" command.  This is  a  single
  1358.              level, one-time only undo.  The most recent changes  wrought
  1359.              by  CHECKIN will be reversed.  No source files on  disk  are
  1360.  
  1361.         page 20                                                 PSCM v1.3
  1362.  
  1363.         PSCM -- The Project Source Code Manager           July 31st, 1992
  1364.  
  1365.              modified;  the Project file is the only file  altered.   You
  1366.              may only perform an undo once.  CHECKIN will print an  error
  1367.              message if there is no undo information in the Project file.
  1368.  
  1369.              To  undo  the previous CHECKIN session,  use  the  following
  1370.              command:
  1371.  
  1372.                   CHECKIN -U PROJ
  1373.  
  1374.              Each file will be listed as it is removed or reverted.
  1375.  
  1376.              IMPORTANT:  This is an all or nothing proposition.  You  can
  1377.              not undo only certain files from the previous CHECKIN.   All
  1378.              modifications made during the previous run will be undone.
  1379.  
  1380.         5.   The  CHECKOUT  List command (-L) will now display  an  extra
  1381.              line if undo information is present in the Project file.
  1382.  
  1383.         6.   The  CHECKOUT  Comment  command (-C) has  been  enhanced  to
  1384.              permit specifying which files should be listed.  The display
  1385.              format changes when files are included on the command  line.
  1386.              If no files are specified then the output format is the same
  1387.              as  in version 1.2.  If you do specify file names they  will
  1388.              be   listed  one  at  a  time  with  all  related   comments
  1389.              immediately  following each individual name.  The  following
  1390.              is an example of the new report format:
  1391.  
  1392.                   === DIFS.C =========================================
  1393.                   Revision: 1.3.1 entered at 22:54:32 on 07/27/92
  1394.                   Added Control-C handler to DIFS and MRGS
  1395.                   ====================================================
  1396.  
  1397.                   === MRGS.C =========================================
  1398.                   Revision: 1.3.1 entered at 22:55:20 on 07/27/92
  1399.                   Added Control-C handler to DIFS and MRGS
  1400.                   ====================================================
  1401.  
  1402.         7.   It  is sometimes helpful to see how a source file  has  been
  1403.              modified  before it is checked in to the  project  database.
  1404.              The  CHECKIN  command now provides a new  switch  "-D"  that
  1405.              performs  this  function.  Before checking in  the  modified
  1406.              source  files you can run "CHECKIN -D PROJ" to create a  set
  1407.              of  difference files.  Each file has the same base  name  as
  1408.              the source file but with the extension "__D".  The following
  1409.              is an example of the difference file format:
  1410.  
  1411.                   < = Version on disk; > = Version checked in
  1412.  
  1413.                   <     DESC desc1;
  1414.                   ----------------------------------------
  1415.                   >     DESC desc1, desc2;
  1416.  
  1417.  
  1418.  
  1419.  
  1420.         PSCM v1.3                                                 page 21
  1421.