README V1.0 21.jan.93 HWG V1.1 20.feb.93 HWG Patch level 2 Ok, you are probably familiar with the RCS distributed on Fish 281/282 and Fish 451. It's some 4.x version which I will refer to as "Fish RCS". The current version is (to my knowledge) 5.6. This archive contains a complete port of RCS 5.6, GNU DIFF 1.15 and my LP utility to support paged diff outputs. This file contains _all_ the Amiga specific information. READ IT! First of all: - The version of this readme file states the patch level HWGRCS is currently at. DO NOT APPLY PATCHES LESS OR EQUAL TO THIS LEVEL! They are already included! Patchfiles are called "hwgrcsp.lha" where is the patch number. - Thanks to Hans-Joachim Widmaier (jbhr@sofal.adsp.sub.org) who supplied me with the sources to RCS 5.6 and GNU DIFF 1.15. He prepared the complete docs including the AmigaGuideŽ file, too. - Though the names of all the executables are unchanged, I called this distribution HWGRCS instead of just RCS. I hope to avoid confusion about what people refer to this way. So if you or anybody refers to _this_ stuff, please call it HWGRCS. This way I get the blame and glory for what I did and maybe a chance to hear about bugs. :-) - The archive contains GNUDIFF 1.15 in HWGDIFF and RCS 5.6 in HWGRCS. The binaries are in the BIN directory. Please leave them there and read "Installation" below. - DISCLAIMER: I HOPE THIS STUFF HELPS YOU AS IT DOES ME. IF IT TRASHES YOUR SOURCES OR DOES ANY OTHER DAMAGE TO YOU OR YOUR COMPUTER I WON'T BE HELD RESPONSIBLE FOR IT IN ANY CASE! Please read the GNU file "COPYING". Especially the NO WARRANTY stuff (11. and 12. I think). I intend to support this release as I use and need HWGRCS myself. Please note that I don't want to charge anybody any fee for supporting HWGRCS. But if you think this is absolutely great SW, I don't mind if you send me something nice and useful for supporting it, even though it isn't actually giftware or shareware. If you make commercial use of HWGRCS I apply to your conscience with this. I'm trying to be a starving greedy artist ... ;^) BTW, jbhr really always helped me out in a matter of hours ... :-) - If this readme is dated 21.jan.93 you get the first public release of HWGRCS. So be extra careful. - I did minor modifications to the source in various places for compatibility with SAS/C 6.1. The makefiles were changed, too. This changes were rather carefully done (I hope). All of HWGRCS including the diff stuff compiles nicely under SAS/C 6.1. The original makefiles are named "makefile" and the new SAS/C 6.1 makefiles "smakefile". Note that SAS/C <=6.2 is missing a few "const" keywords in its standard headers. You need to add them according to the SAS/C documentation to avoid compiler errors. - HWGRCS 5.6 depends on >=V37 being around. I use it only with >=V39. - You won't find any Amiga specific notes in the original readmes. I left as much unchanged as I could. - Bugs most likely have to do with me porting HWGRCS, so the bug report address mentioned in the original docs won't be of much use to you. Limitations: - HWGRCS doesn't support AmigaDOS links yet. I might add this. Don't know yet. Have to do some research about what u*ix does ... - No user and group id stuff for networking yet. I'll try to add this if possible once it is clear to me how all this stuff really hangs together. Enhancements: - The original RCS looks into the "RCS/" directory for RCS files and checks the current directory, too. I added the "RCS_link" feature of "Fish RCS" to HWGRCS. Now HWGRCS looks for the directory name to use in this order: 1.) Use the first line of the file "RCS_link" in the working directory if it exists. A slash is added if necessary. 2.) Check ENV:RCS/DIRECTORY for the name. A slash is added if necessary. 3.) Use "RCS/" as name. The first one found will be used. There is no recheck for the other alternatives as this would require major changes to the source. I currently don't intend to implement that as it might break a lot that I don't see. - Everything should be residentable. - You'll find an AmigaDOS implementation of rcsfreeze, too. There is one change though which I find useful. If you have a default branch set for a file, this branch number is used to freeze the revision instead of the head value. Just look at the script. - I put in a quick hack: You'll find a modified SAS/C 6.1 _main.c in the HWGRCS source. This _main.c does filename expansion via the V37 pattern matching functions for any argument that - starts with a letter, digit, underscore, colon, slash or on of '#', '?', '*', '(', '~' - and contains at least one of '#', '?', '*' As you see it won't expand unix style options. I needed this as the shell doesn't support command lines of arbitrary length and the standard SAS/C startup doesn't support more than 32 arguments. My _main.c should be able to handle _lots_ of arguments. So you might end up with a really large argc value ;-) Now you can do a "ci (#?.c|#?.h)" just by typing it :-) I say this is a hack for several reasons: 1. Anything that fulfills the criteria mentioned above is considered a filename. No matter what it really is. 2. I put this together _quick_ without doing major testing. 3. This filename expansion is done on startup. Things like RCS_link won't be checked. - You'll find a tiny script there, too: setuprcs This script sets up an RCS directory and the appropriate RCS_link file for you in the current directory. I suggest you use it. Makes life a lot easier. - If you hit CTRL-C the original RCS left you with a partially written lockfile. I put in a fix that makes this temporary file removeable for HWGRCS. I don't think this will break anything. - HWGRCS supports comment leaders for .a, .asm, .i, and .fd files. The comment leader for these files is "* ". Bugs fixed: - The first release of HWGRCS had two bugs: - DIFF had problems with the AmigaDOS filepath format - "-M" did not work with the appropriate rcs commands because of a library bug in SAS/C. Special Notes: - There is an environment variable RCSINIT mentioned in the manuals. With HWGRCS this is actually RCS/INIT to keep everything pertaining to HWGRCS in one place. - I used a PIPE: based popen implementation for diff3 written by Rick Schaeffer modified in a few places for SAS/C 6.1 compatibility. Thanks to Georg Sassen for emailing me the source for it. - HWGRCS won't work if your timezone isn't set. So you definitely NEED TO SET THE TZ ENVIRONMENT VARIABLE CORRECTLY! The SAS/C TZ format is "aaabbbccc" aaa the name of your timezone like CST or MET. HWGRCS supportds a huge amount of names. You shouldn't have a problem finding one that fits you needs. Just set TZ, checkk in some dummy file and look the date with the rlog command to see if it works. bbb the offset in hours to GMT. ccc If this is present the internal SAS/C variable __daylight will be set. As HWGRCS accepts timezone names referring to daylight savings time, I suggest you don't use this field. It's not tested. On my machine I use currently "MET0" for ENV:TZ TZ is not stored in ENV:RCS as it should be of "global" use to you. - As GNUDIFF 1.15 works with the ISO character set instead of ASCII, you won't have problems with e.g. german umlauts or the copyright sign as you had with "Fish RCS". - I put version strings in the executables. So please report the output of the VERSION FULL command with any bugs. - I partially ported the "rcstest" script to the amiga. It is in the source as "rcstestamiga". If anybody completes it by just using standard shell commands, I wouldn't mind recieving a copy. - If anybody gets this to Fred Fish before I do, and mentions Hans-Joachim Widmaier and me correctly in the contents entry, I wouldn't mind either. - diff can produce paged output by calling PR. I changed this to call my LP utility. You might want to do a "LP ?" to check it out. It is an AmigaOS style program which supports the current printer preferences and prints to PRT: if you don't say otherwise. Just use e.g. OUTPUT=TST and play with it. You might like it. I did LP because that's about the only small tool I missed on the Amiga. Something like the old N*rton LinePrint. - The AmigaGuide file works with V39. Don't know about anything else. Installation: - Put the archive stuff anywhere you want it. The relevant executables are in BIN. - Add an "Assign RCS: " and a "Path RCS:" to your S:User-Startup YOu might want to add the path statement before e.g. your compiler path. GNU diff is _very_ powerful. - You might need to raise your stack value. I haven't checked this. I always use 32K for any shell and I'm fine. - Set up your timezone with e.g. "SetEnv TZ MET0" or "SetEnv TZ CST6". Please read "Special Notes" above! - Don't forget to copy ENV:TZ to ENVARC:TZ! - Before using it, read at least some of the docs in HWGRCS/MAN! Please report bugs, enhancement request etc. concerning HWGRCS to me: Heinz Wrobel Karlstr. 16 8035 Gauting Germany FAX + 49 89 850 51 25 heinz@edohwg.adsp.sub.org cbmehq!cbmger!edohwg!heinz@cbmvax.commodore.com Please note that I'm not related to C=! Well, have fun with it. Heinz Wrobel