Short:      Revisor V1.1  Version and revision bump utility.
Uploader:   cscholling@t-online.de (Carsten Scholling)
Author:     cscholling@t-online.de (Carsten Scholling)
Type:       dev/misc
Requires:   OS2.x
Version:    1.1
Replaces:   dev/misc/Revisor.lha



Description:
¯¯¯¯¯¯¯¯¯¯¯
Revisor  is  a  util for creating version/revision files for C and ASM.  It also
allows  easy version and revision bumping.  And Revisor uses NO "brain"-files to
store  it's information, because all needed information for bumping is read from
the revision files itself.



History:
¯¯¯¯¯¯¯
Version 1.0

     - First release


Version 1.1

     - Some minor bug fixes
     - Deleted "include" for iffparse.h and changed project id line
     - Depending on  used options,  sometimes no revision file would be written.
       Fixed. Reported by Nelson Sandalwood. Thanks.
     - Revisor is about 1k smaller now ;-).



Usage:
¯¯¯¯¯
Command line template follows:

Revisor  PRG=PRGNAME,PRO=PROJECTNAME/K,VER=VERSION/N/K,REV=REVISION/N/K,
         BETA/N/K,PROVER=PROJECTVERSION/N/K,PROREV=PROJECTREVISION/N/K,
         DESC=DESCRIPTION/K,AUT=AUTHOR/K,COPY=COPYRIGHT/K,C/S,ASM/S,
         CPPC=CPPCOMMENT/S,NOCPPC=NOCPPCOMMENT/S,BV=BUMPVER/S,BR=BUMPREV/S,
         BB=BUMPBETA/S,RB=RESETBETA/S,BPV=BUMPPROJECTVER/S,
         BPR=BUMPPROJECTREV/S";


Yes,  i  know  that  this is a complex bulk of parameters, but it's very easy to
handle.   The first time you create your revision file, you have to give most of
the  named parameters to Revisor.  The second and all other times, you only have
to  give  the  sections  you  want  to  update  or  bump.  Let  me  explain  the
parameters:


                 PRG=PRGNAME  - Here you must specify the program name for which
                                you want to create a revision file. You must not
                                add   any   extensions   like   ".c"  or ".h" or
                                something.

           PRO=PROJECTNAME/K  - After this  keyword you  give a  project name if
                                your program is not stand alone for example.

             VER=VERSION/N/K  - The ordinary version of your program.

            REV=REVISION/N/K  - Same for the revision parameter.

                    BETA/N/K  - Here you specify the beta version if one.

   PROVER=PROJECTVERSION/N/K  - This belongs to the project and is it's version.

  PROREV=PROJECTREVISION/N/K  - Belongs to the project too: Project revision.

          DESC=DESCRIPTION/K  - Here you  can give a short  description of  what
                                your program is for.

                AUT=AUTHOR/K  - This is your name (in most cases).

            COPY=COPYRIGHT/K  - This is the copyright information.

                         C/S  - Use  this  switch  if  you  want  to create  a C
                                revision file.  The given PRGNAME parameter plus
                                "_rev.h" is the name of your revision file. This
                                is only for creation  time or if you want to add
                                a C revision file to your app.

                       ASM/S  - The switch for an  ASM file.  Same as above, but
                                the name is PRGNAME plus  "_rev.i".

           CPPC=CPPCOMMENT/S  - This tells Revisor to use C++ comment lines.

       NOCPPC=NOCPPCOMMENT/S  - Tells  Revisor to  NOT use  C++  comments.  Only
                                usefull if you  want to change you  existing C++
                                file to normal C-style.


                BV=BUMPVER/S  - With  this  switch,  you  bump  up your  program
                                version by 1 (from 2 to 3 for example)

                BR=BUMPREV/S  - Same here, but for the revision.

               BB=BUMPBETA/S  - This bumps up your beta information by 1.

              RB=RESETBETA/S  - Same as BETA=0, but nicer ;-). Simply resets the
                                beta version back to zero.

        BPV=BUMPPROJECTVER/S  - Again the  same as  above,  but for your overall
                                project version number.

        BPR=BUMPPROJECTREV/S  - And  again  the  same as  above  for the project
                                revision.


That's all folks!



Example use:
¯¯¯¯¯¯¯¯¯¯¯
Let's  say  your  application  name  is  "App"  and  belongs to a project called
"Project".  The current application state is version 1, revision 2 and your beta
state  is  3.   For your whole project, the state is V1.1.  Because your program
consist  of  C  and  ASM  files you need both, C and ASM revision files.  And at
last,  you  want  to  use  C++ comments in the C revision file, because they are
nicer.

For  creating  a  fully new revision file for your application use the following
(sure, that you have to specify all parameters in one line ;-):


    Revisor  App  PROJECTNAME       "Project"
                  VERSION           1
                  REVISION          2
                  BETA              3
                  PROJECTVERSION    1
                  PROJECTREVISION   1
                  DESCRIPTION       "My favorite application."
                  AUTHOR            "your name"
                  COPYRIGHT         "Copyright ©1998"
                  C
                  ASM
                  CPPCOMMENT


The resulting revision files look like this:

--------------------------------------------------------------------------------

// #############################################################################
// ###
// ###	App_rev.h	-	built automatically by Revisor 1.0
// ###
// ###
// ###			Revisor		Copyright ©1998 by Carsten Scholling
// ###						All rights reserved.
// ###
// ###
// ###		DO NOT EDIT BY HAND!!!
// ###
// #############################################################################
#ifndef	APP_REV_H
#define	APP_REV_H


#include	<libraries/iffparse.h>


#define	PROJECT_ID			MAKE_ID('P','R','O','J')

#define	PROJECTNAME			"Project"
#define	NAME				"App"
#define	DESCRIPTION			"My favorite application."
#define	FULLNAME			"App - My favorite application."
#define	AUTHOR				"your name"
#define	COPYRIGHT			"Copyright ©1998"

#define	PROJECTVERSION		1
#define	PROJECTREVISION		1
#define	VERSION				1
#define	REVISION			2
#define	BETAVERSION			3

#define	DATE				"24.02.98"
#define	TIME				"19:41:06"
#define	DAY					"Dienstag"

#define	VERSION_STRING		"1.2ß3"
#define	FULLVERSION_STRING	"1.2ß3 (24.02.98)"

#define	VERS				"App 1.2ß3"
#define	VSTRING				"App 1.2ß3 (24.02.98)\r\n"
#define	VERSTAG				"\0$VER: App 1.2ß3 (24.02.98)"

#define	CATALOG_NAME		"app.catalog"
#define	CATALOG_VERSION		1

#endif	// APP_REV_H

--------------------------------------------------------------------------------

******************************************************************************
*
*	App_rev.i	-	built automatically by Revisor 1.0
*
*
*			Revisor		Copyright ©1998 by Carsten Scholling
*						All rights reserved.
*
*	
*		DO NOT EDIT BY HAND!!!
*
******************************************************************************


PROJECTNAME			MACRO
					dc.b	'Project'
					ENDM

NAME				MACRO
					dc.b	'App'
					ENDM

DESCRIPTION			MACRO
					dc.b	'My favorite application.'
					ENDM

FULLNAME			MACRO
					dc.b	'App - My favorite application.'
					ENDM

AUTHOR				MACRO
					dc.b	'your name'
					ENDM

COPYRIGHT			MACRO
					dc.b	'Copyright ©1998'
					ENDM

PROJECTVERSION		EQU		1
PROJECTREVISION		EQU		1
VERSION				EQU		1
REVISION			EQU		2
BETAVERSION			EQU     3

DATE				MACRO
					dc.b	'24.02.98'
					ENDM

TIME				MACRO
					dc.b	'19:41:06'
					ENDM

DAY					MACRO
					dc.b	'Dienstag'
					ENDM

VERSION_STRING		MACRO
					dc.b	'1.2ß3'
					ENDM

FULLVERSION_STRING	MACRO
					dc.b	'1.2ß3 (24.02.98)'
					ENDM

VERS				MACRO
					dc.b	'App 1.2ß3'
					ENDM

VSTRING				MACRO
					dc.b	'App 1.2ß3 (24.02.98)',13,10,0
					ENDM

VERSTAG				MACRO
					dc.b	0,'$VER: App 1.2ß3 (24.02.98)',0
					ENDM

CATALOG_NAME		MACRO
					dc.b	'app.catalog'
					ENDM

CATALOG_VERSION		EQU		1

--------------------------------------------------------------------------------


So.   The  time runs away and your application is out of the beta state and it's
time  to  release your stuff.  So you have to reset the beta version to 0.  This
is done by:

    Revisor  App  RESETBETA

or

    Revisor  App  BETA 0



Two  month later (you have forgotten to increase the revision meanwhile ;-), you
want to release the next version V1.3. Simply type:

    Revisor  App  BUMPREV



If   you   only   want   to   make  some  minor  changes  without  updating  the
version/revision information, but want to be up to DATE, simply use

    Revisor  App

This  will  update the date and time information each time you call Revisor (out
of a makefile for example).



Now,  two  years  ago,  you have changed thousands of  source lines and  want to
update to V2.0, project version 2.0. This is very easy too:

    Revisor  App  BUMPVER BUMPPROJECTVER



Sure that you can change all the information every time by simply typing

    Revisor  App  DESC "New description"  AUTHOR "New author"

or something.





So.   Think  you  are  now familar with Revisor.  But if you encounter any bugs,
have  new  ideas or needings or simply want to write me a mail, because you find
Revisor usefull, here my email address:


    cscholling@t-online.de


