Finish initial pass through CTM chapter.
Sponsored by: iXsystems
This commit is contained in:
parent
23acfe3906
commit
29da518808
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=43887
1 changed files with 100 additions and 112 deletions
|
@ -148,7 +148,7 @@
|
||||||
to obtain up to three deltas per day for the most active
|
to obtain up to three deltas per day for the most active
|
||||||
branches. Update sizes are always kept as
|
branches. Update sizes are always kept as
|
||||||
small as possible and are typically less than 5K. About one in very ten
|
small as possible and are typically less than 5K. About one in very ten
|
||||||
update is 10-50K in size and rarely there will be an update
|
updates is 10-50K in size, and there will occasionally be an update
|
||||||
larger than 100K+.</para>
|
larger than 100K+.</para>
|
||||||
|
|
||||||
<para>When using <application>CTM</application> to track &os; development,
|
<para>When using <application>CTM</application> to track &os; development,
|
||||||
|
@ -172,8 +172,7 @@
|
||||||
email.</para>
|
email.</para>
|
||||||
|
|
||||||
<para><acronym>FTP</acronym> deltas can be obtained from the following mirror sites.
|
<para><acronym>FTP</acronym> deltas can be obtained from the following mirror sites.
|
||||||
Download the relevant directory and read its
|
When using anonymous <acronym>FTP</acronym> to obtain <application>CTM</application> deltas,
|
||||||
<filename>README</filename>. When using anonymous <acronym>FTP</acronym> to obtain <application>CTM</application> deltas,
|
|
||||||
select a geographically close mirror.
|
select a geographically close mirror.
|
||||||
In case of problems, contact the &a.ctm-users.name;
|
In case of problems, contact the &a.ctm-users.name;
|
||||||
mailing list.</para>
|
mailing list.</para>
|
||||||
|
@ -228,10 +227,10 @@
|
||||||
</variablelist>
|
</variablelist>
|
||||||
|
|
||||||
<para>To instead receive deltas through email, subscribe to one of the
|
<para>To instead receive deltas through email, subscribe to one of the
|
||||||
<application>CTM</application> distribution lists.
|
<literal>ctm-src</literal> distribution lists available from
|
||||||
&a.ctm-src-cur.name; supports the entire source tree,
|
<uri xlink:href="http://lists.freebsd.org/mailman/listinfo">http://lists.freebsd.org/mailman/listinfo</uri>. For example,
|
||||||
&a.ctm-src-cur.name; supports the HEAD of the development
|
&a.ctm-src-cur.name; supports the HEAD of the development
|
||||||
branch, and &a.ctm-src-9.name; supports the 9.X release branch.</para>
|
branch and &a.ctm-src-9.name; supports the 9.X release branch.</para>
|
||||||
|
|
||||||
<para>As
|
<para>As
|
||||||
<application>CTM</application> updates arrive through email,
|
<application>CTM</application> updates arrive through email,
|
||||||
|
@ -253,154 +252,142 @@
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
<sect2>
|
<sect2>
|
||||||
<title>Using <application>CTM</application> for the First
|
<title><application>CTM</application> Usage</title>
|
||||||
Time</title>
|
|
||||||
|
|
||||||
<para>Before <application>CTM</application>
|
<para>Before <application>CTM</application>
|
||||||
deltas can be used, a starting point for the
|
deltas can be used for the first time, a starting point
|
||||||
deltas must be produced from an <quote>empty</quote> directory.
|
must be produced.</para>
|
||||||
An initial <quote>Empty</quote> delta is used to start
|
|
||||||
the local <application>CTM</application>-supported tree.</para>
|
|
||||||
|
|
||||||
<para>Since the trees are many tens of megabytes, you should
|
<para>One method is to apply a <quote>starter</quote> delta to an
|
||||||
prefer to start from something already at hand. If you have a
|
empty directory. A
|
||||||
-RELEASE CD, you can copy or extract an initial source from
|
starter delta can be recognized by
|
||||||
it. This will save a significant transfer of data.</para>
|
the <filename>XEmpty</filename> in its name, such as
|
||||||
|
<filename>src-cur.3210XEmpty.gz</filename>.
|
||||||
<para>You can recognize these <quote>starter</quote> deltas by
|
|
||||||
the <literal>X</literal> appended to the number
|
|
||||||
(<filename>src-cur.3210XEmpty.gz</filename> for instance).
|
|
||||||
The designation following the <literal>X</literal> corresponds
|
The designation following the <literal>X</literal> corresponds
|
||||||
to the origin of your initial <quote>seed</quote>.
|
to the origin of the initial <quote>seed</quote>, where
|
||||||
<filename>Empty</filename> is an empty directory. As a rule a
|
<filename>Empty</filename> is an empty directory. As a rule, a
|
||||||
base transition from <literal>Empty</literal> is produced
|
base transition from <literal>Empty</literal> is produced
|
||||||
every 100 deltas. By the way, they are large! 70 to 80
|
every 100 deltas. Be aware that starter deltas are large and
|
||||||
|
70 to 80
|
||||||
Megabytes of <command>gzip</command>'d data is common for the
|
Megabytes of <command>gzip</command>'d data is common for the
|
||||||
<filename>XEmpty</filename> deltas.</para>
|
<filename>XEmpty</filename> deltas.</para>
|
||||||
|
|
||||||
<para>Once you have picked a base delta to start from, you will
|
<para>Another method is to copy or extract an initial source from
|
||||||
also need all deltas with higher numbers following it.</para>
|
a
|
||||||
</sect2>
|
RELEASE media as this can
|
||||||
|
save a significant transfer of data from the Internet.</para>
|
||||||
|
|
||||||
<sect2>
|
<para>Once a base delta has been created, apply
|
||||||
<title>Using <application>CTM</application> in Your Daily
|
all deltas with higher numbers. To apply the deltas:</para>
|
||||||
Life</title>
|
|
||||||
|
|
||||||
<para>To apply the deltas, simply say:</para>
|
<screen>&prompt.root; <userinput>cd /directory/to/store/the/stuff</userinput>
|
||||||
|
&prompt.root; <userinput>ctm -v -v /directory/which/stores/the/deltas/src-xxx.*</userinput></screen>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>cd /where/ever/you/want/the/stuff</userinput>
|
<para>Multiple deltas can be applied at one time as they
|
||||||
&prompt.root; <userinput>ctm -v -v /where/you/store/your/deltas/src-xxx.*</userinput></screen>
|
will be processed one at a time and any deltas that are already
|
||||||
|
applied will be ignored. <application>CTM</application> understands deltas which
|
||||||
<para><application>CTM</application> understands deltas which
|
have been put through <command>gzip</command>, which saves disk
|
||||||
have been put through <command>gzip</command>, so you do not
|
|
||||||
need to <command>gunzip</command> them first, this saves disk
|
|
||||||
space.</para>
|
space.</para>
|
||||||
|
|
||||||
<para>Unless it feels very secure about the entire process,
|
<para>To
|
||||||
<application>CTM</application> will not touch your tree. To
|
verify a delta without applying it, include <option>-c</option>.
|
||||||
verify a delta you can also use the <option>-c</option> flag
|
<application>CTM</application> will not actually touch
|
||||||
and <application>CTM</application> will not actually touch
|
the local tree but will instead verify the integrity of the delta
|
||||||
your tree; it will merely verify the integrity of the delta
|
to see if it would apply cleanly. Refer to &man.ctm.1; for
|
||||||
and see if it would apply cleanly to your current tree.</para>
|
more information about available switches and an overview of
|
||||||
|
the process <application>CTM</application> uses when applying
|
||||||
|
deltas.</para>
|
||||||
|
|
||||||
<para>There are other options to <application>CTM</application>
|
<para>To keep the local source tree up-to-date, every time a
|
||||||
as well, see the manual pages or look in the sources for more
|
new delta becomes available, apply it through <application>CTM</application>.</para>
|
||||||
information.</para>
|
|
||||||
|
|
||||||
<para>That is really all there is to it. Every time you get a
|
<para>Once applied, it is recommended to not delete the deltas if it is a burden to download
|
||||||
new delta, just run it through <application>CTM</application>
|
them again. This way, a local copy is available in case
|
||||||
to keep your sources up to date.</para>
|
something bad happens.</para>
|
||||||
|
|
||||||
<para>Do not remove the deltas if they are hard to download
|
|
||||||
again. You just might want to keep them around in case
|
|
||||||
something bad happens. Even if you only have floppy disks,
|
|
||||||
consider using <command>fdwrite</command> to make a
|
|
||||||
copy.</para>
|
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
<sect2>
|
<sect2>
|
||||||
<title>Keeping Your Local Changes</title>
|
<title>Keeping Local Changes</title>
|
||||||
|
|
||||||
<para>As a developer one would like to experiment with and
|
<para>Developers often experiment with and
|
||||||
change files in the source tree.
|
change files in thier local source tree.
|
||||||
<application>CTM</application> supports local modifications in
|
<application>CTM</application> supports local modifications in
|
||||||
a limited way: before checking for the presence of a file
|
a limited way: before checking for the presence of a file,
|
||||||
<filename>foo</filename>, it first looks for
|
it first looks for a file with the same name and a
|
||||||
<filename>foo.ctm</filename>. If this file exists,
|
<filename>.ctm</filename> extension. If this file exists,
|
||||||
<application>CTM</application> will operate on it instead of
|
<application>CTM</application> will operate on it instead of the
|
||||||
<filename>foo</filename>.</para>
|
original filename.</para>
|
||||||
|
|
||||||
<para>This behavior gives us a simple way to maintain local
|
<para>This behavior provides a simple way to maintain local
|
||||||
changes: simply copy the files you plan to modify to the
|
changes. Before modifying a file, make a copy with a
|
||||||
corresponding file names with a <filename>.ctm</filename>
|
<filename>.ctm</filename>
|
||||||
suffix. Then you can freely hack the code, while
|
suffix. Make any changes to the original filename, knowing that
|
||||||
<application>CTM</application> keeps the
|
<application>CTM</application> will only apply updates to the file with the
|
||||||
<filename>.ctm</filename> file up-to-date.</para>
|
<filename>.ctm</filename> suffix.</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
<sect2>
|
<sect2>
|
||||||
<title>Other Interesting <application>CTM</application>
|
<title>Other <application>CTM</application>
|
||||||
Options</title>
|
Options</title>
|
||||||
|
|
||||||
<sect3>
|
<variablelist>
|
||||||
<title>Finding Out Exactly What Would Be Touched by an
|
<varlistentry>
|
||||||
Update</title>
|
<term>Finding Out Exactly What Would Be Touched by an
|
||||||
|
Update</term>
|
||||||
|
|
||||||
<para>You can determine the list of changes that
|
<listitem>
|
||||||
<application>CTM</application> will make on your source
|
<para>To determine the list of changes that
|
||||||
repository using the <option>-l</option> option to
|
<application>CTM</application> will make to the local source
|
||||||
<application>CTM</application>.</para>
|
repository, use <option>-l</option>. This option is useful for creating logs of the
|
||||||
|
changes or when performing pre- or post-processing on any of the modified files.</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
<para>This is useful if you would like to keep logs of the
|
<varlistentry>
|
||||||
changes, pre- or post- process the modified files in any
|
<term>Making Backups Before Updating</term>
|
||||||
manner, or just are feeling a tad paranoid.</para>
|
|
||||||
</sect3>
|
|
||||||
|
|
||||||
<sect3>
|
<listitem>
|
||||||
<title>Making Backups Before Updating</title>
|
<para>To backup all of the files that
|
||||||
|
|
||||||
<para>Sometimes you may want to backup all the files that
|
|
||||||
would be changed by a <application>CTM</application>
|
would be changed by a <application>CTM</application>
|
||||||
update.</para>
|
update, specify <option>-B backup-file</option>. This option
|
||||||
|
tells <application>CTM</application> to backup all files
|
||||||
<para>Specifying the <option>-B backup-file</option> option
|
touched by the applied
|
||||||
causes <application>CTM</application> to backup all files
|
|
||||||
that would be touched by a given
|
|
||||||
<application>CTM</application> delta to
|
<application>CTM</application> delta to
|
||||||
<filename>backup-file</filename>.</para>
|
<filename>backup-file</filename>.</para>
|
||||||
</sect3>
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
<sect3>
|
<varlistentry>
|
||||||
<title>Restricting the Files Touched by an Update</title>
|
<term>Restricting the Files Touched by an Update</term>
|
||||||
|
|
||||||
<para>Sometimes you would be interested in restricting the
|
<listitem>
|
||||||
|
<para>To restrict the
|
||||||
scope of a given <application>CTM</application> update, or
|
scope of a given <application>CTM</application> update, or
|
||||||
may be interested in extracting just a few files from a
|
to extract just a few files from a
|
||||||
sequence of deltas.</para>
|
sequence of deltas,
|
||||||
|
filtering regular expressions can be specified using
|
||||||
<para>You can control the list of files that
|
<option>-e</option>, which specifies which files to process, or <option>-x</option>, which specifies which files to ignore.</para>
|
||||||
<application>CTM</application> would operate on by
|
|
||||||
specifying filtering regular expressions using the
|
|
||||||
<option>-e</option> and <option>-x</option> options.</para>
|
|
||||||
|
|
||||||
<para>For example, to extract an up-to-date copy of
|
<para>For example, to extract an up-to-date copy of
|
||||||
<filename>lib/libc/Makefile</filename> from your collection
|
<filename>lib/libc/Makefile</filename> from a collection
|
||||||
of saved <application>CTM</application> deltas, run the
|
of saved <application>CTM</application> deltas:</para>
|
||||||
commands:</para>
|
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>cd /where/ever/you/want/to/extract/it/</userinput>
|
<screen>&prompt.root; <userinput>cd /directory/to/extract/to/</userinput>
|
||||||
&prompt.root; <userinput>ctm -e '^lib/libc/Makefile' ~ctm/src-xxx.*</userinput></screen>
|
&prompt.root; <userinput>ctm -e '^lib/libc/Makefile' /directory/which/stores/the/deltas/src-xxx.*</userinput></screen>
|
||||||
|
|
||||||
<para>For every file specified in a
|
<para>For every file specified in a
|
||||||
<application>CTM</application> delta, the
|
<application>CTM</application> delta,
|
||||||
<option>-e</option> and <option>-x</option> options are
|
<option>-e</option> and <option>-x</option> are
|
||||||
applied in the order given on the command line. The file is
|
applied in the order given on the command line. A file is
|
||||||
processed by <application>CTM</application> only if it is
|
processed by <application>CTM</application> only if it is
|
||||||
marked as eligible after all the <option>-e</option> and
|
marked as eligible after all <option>-e</option> and
|
||||||
<option>-x</option> options are applied to it.</para>
|
<option>-x</option> options are applied.</para>
|
||||||
</sect3>
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
</variablelist>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
<!--
|
||||||
|
Comment out for now until these can be verified.
|
||||||
<sect2>
|
<sect2>
|
||||||
<title>Future Plans for <application>CTM</application></title>
|
<title>Future Plans for <application>CTM</application></title>
|
||||||
|
|
||||||
|
@ -425,6 +412,7 @@
|
||||||
<literal>ports</literal> collection too, but interest has not
|
<literal>ports</literal> collection too, but interest has not
|
||||||
been all that high yet.</para>
|
been all that high yet.</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
-->
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
<sect1 xml:id="svn">
|
<sect1 xml:id="svn">
|
||||||
|
|
Loading…
Reference in a new issue