Short: Revisor V1.1 Version and revision bump utility. Author: cscholling@t-online.de (Carsten Scholling) Uploader: cscholling t-online de (Carsten Scholling) Type: dev/misc Version: 1.1 Replaces: dev/misc/Revisor.lha Requires: OS2.x Architecture: m68k-amigaos 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 #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