Type manager to handle RCS keywords Updated Version (2001) Updated by: Christian Goetze (/cg@miaow.com/) /Thu Feb 15 12:16:52 PST 2001/ This is yet another update, this time to support the addition of specialized built in type managers supplied by Rational, in particular _html and _xml. The generalization is very straight-forward: we simply determine the parent type manager from the name of this type manager, for example: keyed_text_file_delta implies that the parent type manager is text_file_delta; keyed__html implies that the parent is _html. Also included are some minor bug fixes: * The trigger now works correctly after mkelem. * The limit on the number of arguments passed to the type manager has been substantially raised in order to avoid obscure crashes when long branches are deleted causing many many versions to be removed. Finally, since the old name (ktfdmgr) doesn't fit into this new convention, I simply changed the name of the executable to be "manager" and the name of the trigger to be "rcs_keywords". Documentation below has been updated accordingly. CAVEAT: Since I'm not an NT person, I left the NT stuff unchanged. Updated Version (1999) Updated by: David Boyce (/dsb@world.std.com/), and David Darby (/David.Darby@fm.com/) /Fri Sep 3 01:14:46 EDT 1999/ /This is an updated version of the original, described below. This new version is ported to Windows and also uses the newer syntax introduced in ClearCase 3.0. The trigger script was rewritten in Perl for Windows portability. / Full documentation for this new version is supplied in POD formatwithin the trigger script ("perldoc rcs_keywords") and in comments in the type manager source code ("vi manager.c"). Original Readme (1995) Original version by: David Kaelbling (/drk@x.org/) /Wed, 25 Oct 1995 15:26:21 -0400 (EDT)/ Several people have asked about using triggers to expand RCS keywords, and others have posted scripts to do that. Having unique identifiers in each version leads to two problems: automatic merges aren't possible (because unique version tags look like conflicting changes), and identical check-ins are not detected (because unique version tags are unique :-). Attached is a type manager we use to avoid these two problems. Note that you still need to use triggers to actually mangle your files. Doing it in the type manager makes ClearCase very unhappy (something to do with the database caching the size of files -- someone from Atria can give technical details, but trust me that you still want to expand the keyword values in triggers). We use this type manager as a wrapper around text_file_delta. It should work with any kind of text file manager, but we've only tried it with text_file_delta. During merge or xmerge clean versions of the contributors (ones with keyword values removed) are passed to the real merge tool. During check-in (a.k.a. create_version) the "files are identical" bit is set in real manager's return status if our special comparison routine detects no changes outside keyword values. All other operations are passed unchanged directly to the parent manager. A sketch of installation instructions is in the comments at the top of the file. We've used this manager successfully for a couple months on all of the platforms ClearCase 2.0.3 supports except aix3_power (we only have aix4_power machines around) and Windows/NT. Feel free to give this manager a try if your RCS keyword triggers are causing you problems. David PS: Note that this is not an official X Consortium product, although it has our standard "it's free" copyright. If you have problems you can send me mail and I might answer if Real Work(tm) gives me time, but I can't make any promises. -- David KAELBLING X Consortium 201 Broadway; Cambridge, MA 02139-1955 (617) 374-1000 x135