Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 2 Feb 1996 09:31:17 +0100 (MET)
From:      haury@sagem.fr
To:        hackers@FreeBSD.org
Subject:   Re: CTM: evolutions of ctm
Message-ID:   <199602020831.JAA02040@sagem.fr>
In-Reply-To: <v02140b00ad373cd93dcd@[199.183.109.242]> from "Richard Wackerbarth" at Feb 1, 96 10:51:36 pm

next in thread | previous in thread | raw e-mail | index | archive | help
This mail is an answer to Poul-Henning Kamp & Richard Wackerbarth mails about
CTM

Extract from my original mail (haury@sagem.fr) :

>       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 ?

It's not a bad idea.
You have just to be carefull because '.ctm' is already used as temp file
for edit process (Fn, FE) - since it's quite tricky, I have declared this
suffix with my '#ctm' one in ctm.h to avoid any problems in case of
future modification.
The chose of '#ctm' is yours (I fact you have spoken about '#CTM' in the
Handbook). What's true, it's not really easy to use '#ctm' into a Makefile
(you often need to escape # ).

Richard Wackerbarth wrote:

>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.

Normally the union file system is here to do that - Unfortunatly the union fs
does not work on FreeBSD (true in 2.1-R, I haven't test it again on -current)

>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).

It seems difficult to check "automagicalyr" if a file you have modified has
changed in the -current. The job is done with my top Makefile.

> [deleted]
>
>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.

Well, you need sometime to make local changes to get the -current official
tree to compile before having the official correction (the last time was the
'lsdev' problem : I have applied Thomas Neumann <tom@smart.ruhr.de> patches
before getting the official correction, now I have droped my local
modification).

>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?
>

Union fs should be the best choice for that. It's broken, the sources seems
to be not so "obvious" and I don't have enough time to check the problem. :-(

-- 
		=Christian Haury (Christian.Haury@sagem.fr)

	 ---------------------------------------------------------
	|   SAGEM Eragny - Avenue du Gros Chene - Eragny BP 51    |
	|             95612 Cergy Pontoise Cedex - France         |
	| phone   : +33 (1) 34 30 53 93 | telex   : 607387F       |
	| fax     : +33 (1) 34 30 50 28 | teletex : 933-130731770 |
	 ---------------------------------------------------------



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi? <199602020831.JAA02040>