stevens@hsi.UUCP (Richard Stevens) (03/10/88)
How do you maintain the source code files for your UNIX ?? We're running 4.3 BSD on a VAX and use RCS. What we've been doing for the last 4 years is to leave the BSD directories (/usr/src/...) exactly as-is from the release tape. When we modify something, say tar, we've been copying /usr/src/bin/tar.c into /usr/local/src/tar.c, RCS'ing it and modifying it. When we converted from 4.2 to 4.3 we just looked at /usr/local/src and were able to see what we had modified from the Berkeley release. I'm wondering if we should just go ahead and RCS everything in /usr/src, and make our local modifications there, as we'd still be able to get to the original distribution sources as RCS version 1.1. (For the kernel itself, we've already gone ahead and RCS'ed everything starting at /usr/src/sys, since we've tended to modify it more than we've modified anything else starting at /usr/src. However, we're about to install NFS, so we'll have to re-make almost everything in sight, so I'd like to get things set up "best" ahead of time.) Any ideas or comments as to how you're doing this ?? Richard Stevens Health Systems International, New Haven, CT { uunet | ihnp4 } ! hsi ! stevens
kcs@j.cc.purdue.edu (Kevin C. Smallwood) (03/11/88)
In article <874@hsi.UUCP> stevens@hsi.UUCP (Richard Stevens) writes: >How do you maintain the source code files for your UNIX ?? At the Purdue University Computing Center, we maintain the source code by checking all of the distributed source code in when we get it. For 4.3BSD UNIX, we checked everything in as revision "4.3" setting the "state" to "dist" (for distribution). At the same time, we also forced a check-in of the same file as revision 4.3.1.1 (on a side-branch). We might also set a symbolic name of something like "4_3BSD" as the 4.3 revision. Now all local modifications and fixes occur on the side-branch of the distributed version of the source file. Typically, we use the "state" (-s) to either "Local" or "Fix" or something else more meaningful than "exp" :-). When 4.4BSD UNIX (or whatever it will be called) comes out, we will probably check everything in as revision 4.4 and use the side-branch 4.4.1 for local modifications. BTW, we got this technique from Purdue's Engineering Computer Network (ECN); a technique they used for the kernel code. Another technique we are using is to actually track the revision that come from the source distributor. That is, if the source has an RCS or SCCS revision of "7.1", for example, we check-in the source file with this revision number. We still use side-branches to do the local work. Kevin C. Smallwood Internet: kcs@j.cc.purdue.edu Manager of UNIX Systems UUCP: ...!{pur-ee,purdue}!kcs Purdue University Computing Center
ggs@ulysses.homer.nj.att.com (Griff Smith) (03/14/88)
In article <874@hsi.UUCP>, stevens@hsi.UUCP (Richard Stevens) writes: > How do you maintain the source code files for your UNIX ?? > > We're running 4.3 BSD on a VAX and use RCS. What we've been doing > for the last 4 years is to leave the BSD directories (/usr/src/...) > exactly as-is from the release tape. When we modify something, say > tar, we've been copying /usr/src/bin/tar.c into /usr/local/src/tar.c, > RCS'ing it and modifying it. > ... > Any ideas or comments as to how you're doing this ?? > > Richard Stevens > Health Systems International, New Haven, CT > { uunet | ihnp4 } ! hsi ! stevens We read the source distribution tape into a separate filesystem, which we call /source; it contains src and sys. After cleaning up any objectionable ownerships and permissions, we mount the filesystem read-only. We then create directory trees called /usr/src and /usr/sys where all type 'f' files are replaced by symbolic links to the real files in /source. The first time we want to modify a file, we remove the link, copy the file into the working source tree, then edit the copy. This strategy satisfies a vocal "let freedom ring" contingent who would otherwise hack at the original source without leaving traces, and it simplifies audits for the rest of us. Whenever I want a summary of all local edits, I just use "diff -r /source/src/... /usr/src/...". -- Griff Smith AT&T (Bell Laboratories), Murray Hill Phone: 1-201-582-7736 UUCP: {allegra|ihnp4}!ulysses!ggs Internet: ggs@ulysses.att.com