Xref: utzoo comp.unix.xenix:9323 comp.unix.questions:18792 Path: utzoo!utgpu!jarvis.csri.toronto.edu!clyde.concordia.ca!uunet!mcsun!ukc!dcl-cs!aber-cs!pcg From: pcg@aber-cs.UUCP (Piercarlo Grandi) Newsgroups: comp.unix.xenix,comp.unix.questions Subject: Maintaining releases (Re: XBBS version 7.82) Summary: using RCS is good for you... Message-ID: <1565@aber-cs.UUCP> Date: 5 Jan 90 17:09:43 GMT Reply-To: pcg@cs.aber.ac.uk (Piercarlo Grandi) Organization: Dept of CS, UCW Aberystwyth (Disclaimer: my statements are purely personal) Lines: 69 In article <11683@megatest.UUCP> palowoda@megatest.UUCP (Bob Palowoda) writes: One the same subject how does one go about makeing incremental patches to a large project with patch? i.e. How did they automate the patching of 'elm' with so many patches comeing in etc. Has anyone done script files to do this or in the makefile? You just use RCS ci and co every time you modify a files, then you can get all the patches by saying rcsdiff -c *,v >myownpatch 2>&1 My suggestion for using RCS: checkin the sources you receive at the appropriate release level, then create branches for *your* upodates, and keep the baseline trunk updated. AN EXTENDED EXAMPLE For example, suppose that you want to work on files in emacs18.54/src; when you receive it, you do: cd emacs18.54/src chmod a-w * # No accidental modifications Now you want to update emacs.c; you do: ci -l -u18.54 emacs.c # Initial revision is 18.54 and then repeat, as often as you want: emacs.c # Make your changes ci -l -u18.54.1 emacs.c # Your first changes go in as 18.54.1.1 You may even create a new major sublevel, for example 18.54.2.1; Suppose you have done modifications up to 18.54.2.4. If you receive an "official" patch to release 18.55, you do: rcsdiff -c -r18.54 emacs.c >patch.54.2 2>&1 # Save your own patches Having thus defined your own patches, you apply the "official" one to the baseline: co -l -u18.54 emacs.c # Retrieve baseline 18.54 patch -c -N emacs.c# emacs.c # Manually resolve any conflicts. rm emacs.c# # Delete the failed mods log then finalize your mods to the new baseline level: ci -l -u18.55.1 emacs.c # New branch 18.55.1.1 At this point you or may not want to close the 18.54.2.4 branch; see the rcs(1) command on how to do this. -- Piercarlo "Peter" Grandi | ARPA: pcg%cs.aber.ac.uk@nsfnet-relay.ac.uk Dept of CS, UCW Aberystwyth | UUCP: ...!mcvax!ukc!aber-cs!pcg Penglais, Aberystwyth SY23 3BZ, UK | INET: pcg@cs.aber.ac.uk