Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!cs.utexas.edu!uunet!mcvax!ukc!stl!pgh From: pgh@stl.stc.co.uk (Peter Hamer) Newsgroups: comp.software-eng Subject: Re: Source Code Control Message-ID: <1554@stl.stc.co.uk> Date: 27 Jun 89 11:22:39 GMT References: <791@redsox.bsw.com> <357@umigw.MIAMI.EDU> <793@redsox.bsw.com> Sender: news@stl.stc.co.uk Reply-To: "Peter Hamer" Organization: STC Technology Limited, London Road, Harlow, Essex, UK Lines: 39 In article <793@redsox.bsw.com> campbell@redsox.UUCP (Larry Campbell) writes: > Ideally, we'd like to be able to say something like: > > This is rev 2.4 of foo.c, and it belongs to: > Product A version 1.05 > Product B version 2.06 > Product C version 1.34 > >I can't think of any good way (short of building an add-on wart) to do >this in either RCS or SCCS. I haven't done it [yet] but surely you could do something based on the -n [or -N] option of RCS? Something like ... rcs -nProduct_A_1v05:2.4 foo.c,v rcs -nProduct_B_2v06:2.4 foo.c,v rcs -nProduct_C_1v34:2.4 foo.c,v A rlog foo.c will then include the information symbolic names: Product_C_1v34: 2.4; Product_B_2v06: 2.4; Product_A_1v05: 2.4; You can then check out the appropriate version with commands like co -rProduct_A_1v05 foo.c,v or even co -rProduct_A_1v05 *.c,v if you want to check out all source for this release. P.S. Thanks to those contributing to this discussion. It has certainly encouraged me to take another look at the facilities offered by SCCS/RCS. P.P.S. Comp.source.unix distributed a make-oid called cake a year or two back which might also be of interest. Its main attractions were: a MUCH more general way of specifying rules; allowing intermediate files to be deleted (eg if ~.a is used to generate ~.b, which is used to generate ~.c, then if ~.b has been deleted cake will notice that ~.c is older than ~.a and infer that it doesn't need to re-make either ~.b or ~.c); dependencies need to be hard-coded into the 'makefile', but determined at run time by use of a scanning utility (handy for $includes, etc).