Xref: utzoo comp.unix.questions:14596 comp.emacs:6400 Path: utzoo!attcan!uunet!dino!sharkey!oxtrap!sendai!rich From: rich@sendai.sendai.ann-arbor.mi.us (K. Richard Magill) Newsgroups: comp.unix.questions,comp.emacs Subject: Re: SCCS vs RCS under emacs Message-ID: Date: 29 Jun 89 17:32:07 GMT References: <19885@adm.BRL.MIL> <4750022@hpirs.HP.COM> Sender: rich@sendai.UUCP Reply-To: rich@sendai.ann-arbor.mi.us Organization: Digital Works, Ltd. - Ann Arbor, MI Lines: 62 In-reply-to: wayne@dsndata.uucp's message of 27 Jun 89 19:58:54 GMT In article wayne@dsndata.uucp (Wayne Schlitt) writes: speaking of rcs/sccs and emacs, how do most people use rcs/sccs with emacs? do you have a system to automatically check in and out files and such? [...] i guess i am just interested in peoples experiences/opinions on how to use either of rcs or sccs with emacs. I presume you all edit on the same machine and use the emacs collision mechanism? We don't. we work on either a ring of suns, a sequent balance or symmetry, and (recently) a ring of decstations. We use rcs and emacs almost exclusively. we also use gnu make, grep, awk, and diff exclusively, and mostly gcc, bison, flex, and gdb. The reasons are mostly performance although debuggability and transportability are big issues as well. grep, diff, bison, flex are all virtually invisible changes for the users. gcc, awk, gdb, are a little more effort but not bad. RCS was also almost invisible. Our scheme works like this... we have a directory tree full of source, but the source is in RCS form. When one of us want to build it, we: mkdir mysrc cd mysrc ln -s ~realsource RCS make dirtree all gnu make looks for a makefile, seeing none, it looks for an RCS'd makefile and low and behold... it's there so it gets checked out, and executed for the target "dirtree" which knows about the subtrees to this one and digs those directories and creates the symbolic links to their realsource analogues. Then "make all" actually checks out current versions (although you can pass COFLAGS to a make instantiation to build other revisions, checkpoints, or branches) and builds. The typical scenario goes something like.... I run it, decide I want to change something, so I dired that directory, delete the file I want to change (which is currently read-only), C-x C-f (find file) that file (which doesn't currently exist so it trips a find file hook which is linked to a package I found on the net some time ago) and you are warned that the file doesn't exist and asked if you would like to check it out. if so, would you like to lock it. if so, you are now the proud owner of an rcs lock on that file. When you are done edit/compile/debug'ing (aka, emacs, M-x compi, M-x gdb), you M-x rcs (another package I found on the net some time ago) which puts you in a recursive emacs with a "pop up" buffer for editting the comments for this revision. exitting the recusion checks the changes back in. Not bad really. Not much more intrusive than the emacs file collision mechanism but it works across multiple machines (presuming they all mount the realsource tree). -- rich.