Date: Thu, 1 Feb 1996 22:51:36 -0600 From: Richard Wackerbarth <rkw@dataplex.net> To: Poul-Henning Kamp <phk@critter.tfs.com>, haury@sagem.fr Cc: hackers@FreeBSD.org Subject: Re: CTM: evolutions of ctm Message-ID: <v02140b00ad373cd93dcd@[199.183.109.242]>
next in thread | raw e-mail | index | archive | help
haury@sagem.fr provided some patches to ctm to expant its functionality. First let me say "thanks" to him. >> possibility of local modifications to the tree : > >YEAHHH!!!! > >> before working on a file <name>, CTM first checks for the existence >> of the file <name>#ctm. If this file exists, CTM works on it instead. Poul-Henning Kamp replies: >Hmm, what if we make it .ctm then, would that be better ? Now I'll add my own opinion. 1) The ability to handle "local" modifications of a tree is extremely important. 2) However, maintaining multiple versions of a tree in the same location leads to problems. I am working of a scheme to allow the source to be on CD ROM and only the modified portions need to be on the HD. This approach can also work for the case that you are addressing with the kludge <name>#ctm. 3) Your proposed solution only allows for one derived version of the tree. I suggest that there is a good argument for avoiding that constraint. Instead of having one source tree, I advocate that we have (at least) two. The first is the "reference" which is maintained by ctm. However, this is a pure source tree. You NEVER modify it. The second tree is the "local" tree. It has all the modified sources (and the objects). The first way that I suggest to accomplish this is to "clone" the tree. It need not take up much space because you do it all with symbolic links. (See lndir) If we adopt this strategy,and I suggest that we do, everything looks cleaner. If you want links from your tree to the reference for your ease of access, they are easy to generate and do not affect the makefile logic. The "feature" that I would like to see is the ability to expand the clone tree as needed. Consider this senario. 1) Start with the CD ROM (on say /cdrom/FreeBSD/src) 2) Create your update tree ( mkdir /pub/FreeBSD/2.1) 3) Populate it with the source (ln -s /cdrom/FreeBSD/src /pub/FreeBSD/2.1) 4) Now maintain it with ctm (cd /pub/FreeBSD/2.1 ; ctm <xxxx) 5) When ctm realizes that it needs to modify src/usr.bin/someprog/main.c it will replace the symbolic link with a directory and populate that directory with the appropriate links. What do you think of that approach? ---- Richard Wackerbarth rkw@dataplex.net
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?v02140b00ad373cd93dcd>