version 1.28, 2005/05/22 18:00:10 |
version 1.29, 2006/05/30 02:58:00 |
|
|
you will need for generated files during a build, i.e. compiling the sources. |
you will need for generated files during a build, i.e. compiling the sources. |
|
|
<p> |
<p> |
If you just get the source tree, you will need to deal with local |
|
modifications. One way to do this is to use the <b>union</b> filesystem, |
|
(see <a href="http://www.openbsd.org/cgi-bin/man.cgi?query=mount_union&sektion=8">mount_union(8)</a>) |
|
although there have been reports that the <b>union</b> filesystem can be |
|
unstable if both the upper and lower layers reside on the same physical |
|
filesystem. If you place your upper and lower layers on separate |
|
filesystems you should have no problems. A sample of this is as follows: |
|
|
|
<p> |
|
Suppose your CTM-updated tree is in <tt><b>/usr/src-ctm</b></tt>, and |
|
your real source tree, the one you make your modifications to and do |
|
your builds from, is in <tt><b>/usr/src</b></tt>. |
|
<tt><b>/usr/src</b></tt> should be initially an empty directory. The |
|
following command will set up the union mount: |
|
|
|
<pre> |
|
mount -t union -o -b /usr/src-ctm /usr/src |
|
</pre> |
|
|
|
<p> |
|
Modifications made to files in <tt><b>/usr/src</b></tt> will become a |
|
file contained within <tt><b>/usr/src</b></tt>, hiding the one in |
|
<tt><b>src-ctm</b></tt>. If changes are made via CTM to the |
|
underlying <tt><b>src-ctm</b></tt> tree, those changes will <b>not</b> |
|
be seen if there is a file in the upper layer hiding it. |
|
|
|
<p> |
|
You should periodically unmount the |
|
union and search for files which are local to the union filesystem. |
|
|
|
<pre> |
|
umount /usr/src |
|
find /usr/src -type f |
|
</pre> |
|
|
|
<p> |
|
The commands <tt><b>ls -W</b></tt> and <tt><b>rm -W</b></tt> will be |
|
useful too, as objects named "whiteouts" in <tt><b>/usr/src</b></tt> |
|
will also hide files in <tt><b>src-ctm</b></tt>. |
|
|
|
<p> |
|
If you get the CVS repository, you can use the <tt><b>cvs checkout</b></tt> |
If you get the CVS repository, you can use the <tt><b>cvs checkout</b></tt> |
command to check out a source tree from it. Each time you update |
command to check out a source tree from it. Each time you update |
with CTM you can use the <tt><b>cvs update</b></tt> command to |
with CTM you can use the <tt><b>cvs update</b></tt> command to |