=================================================================== RCS file: /cvsrepo/anoncvs/cvs/www/Attic/ctm.html,v retrieving revision 1.12 retrieving revision 1.13 diff -c -r1.12 -r1.13 *** www/Attic/ctm.html 2000/11/17 19:11:33 1.12 --- www/Attic/ctm.html 2001/01/01 22:01:21 1.13 *************** *** 6,12 ****
! Ctm uses very low bandwidth for distributing the changes to the ! tree, and compresses them using gzip -9.
! Ctm uses very low bandwidth for distributing the changes to the tree, ! and compresses them using gzip -9. In contrast to CVSup, ctm is written in plain C and therefore ! available for every platform supported by OpenBSD.
! You begin with a base set against which later deltas are patched. ! To begin using ctm you must grab the latest base set and all deltas ! after that; once you have processed those you can process later ! deltas you receive on the mailing list. The base sets are split ! into pieces of 1400k each for easier downloading over bad lines ! and you can even put them onto floppies this way.
! Bases are generated approximately once every 100 relative deltas, so you never ! have to grab more than 100 deltas to catch up.
! As mentioned above, the base set contains a full source tree in TAR format, ! and is thus quite large. You must obtain the base set and all relative ! deltas up to present via ftp from the site listed below. Sizes are:
Larger ctm updates are rare, though, usually occurring only after a major ! import of something like binutils, perl, etc.
! You begin with a base set, against which later deltas are patched. To ! begin using ctm you download the latest base set and all deltas ! generated after that. Once you have processed those you can process ! later deltas you receive from the mailing list. The base sets are split ! into pieces of 1400kB each for easier downloading over bad lines, and ! you can even put them onto floppies this way.
! Base sets are generated once every 50 relative deltas, so you never ! have to grab more than 50 deltas to catch up. +
+ There are currently two kinds of base delta. For quite a while we + were making tar.gz files manually, but we are + switching back to real ctm base deltas. The latter contain md5 + checksums and are generated automatically, thus are a bit safer. You + can distinguish these two kinds of base delta by their filename. An + example for a tar.gz file is + OpenBSD-cvs.1450.tar.gz, whereas a ctm base delta + would be named OpenBSD-cvs.1500A.gz. See below for + detailed instructions. +
! You obtain the base set and all relative deltas up to the recent one ! via ftp from the sites listed below. Sizes are:
Larger ctm updates are rare, though, usually occurring only after a major ! import of something like binutils, perl, gcc, etc.
There are several mailing lists related to ctm. There is a list for ! updates to the updates to cvs tree, a list for the source tree, a list ! for the X11 part of both and one for the ports tree plus ! a list for seeing log messages from the ctm delta generator runs.
The following commands will subscribe you to the appropriate lists:
!
! For the cvs tree (without the X11 part):
! echo subscribe OpenBSD-cvs | mail majordomo@OpenBSD.org
! For the X11 part of the cvs tree:
! echo subscribe OpenBSD-cvs-x11 | mail majordomo@OpenBSD.org
! For the source tree (without the X11 part):
! echo subscribe OpenBSD-src | mail majordomo@OpenBSD.org
! For the X11 part of the source tree:
! echo subscribe OpenBSD-src-x11 | mail majordomo@OpenBSD.org
! For the ports tree:
! echo subscribe OpenBSD-ports-ctm | mail majordomo@OpenBSD.org
! For the ctm log list:
! echo subscribe ctm-log | mail majordomo@OpenBSD.org
!
!
!
! It is no longer necessary to keep these files around, if you're sure ! you've got a complete tree. However, be sure to note the number of the ! base, before continuing.
! You now need to grab the deltas which have been generated since the base
! was generated. Go to the ftp site below in the subdirectory
! OpenBSD-cvs or OpenBSD-src for instance and grab
! every file whose number is
! The addresses for the base and deltas are:
! Note: The examples below just cover OpenBSD-cvs for clarity. The ! other source sets are handled in the same fashion. ! !! cat split/OpenBSD-cvs.1500A.gz.* > OpenBSD-cvs.1500A.gz ! cd target ! ctm -v -v -v .../OpenBSD-cvs.1500A.gz !
+ or !
! cat split/OpenBSD-cvs.1500.tar.gz.* > OpenBSD-cvs.1500.tar.gz ! cd target ! tar -xzvf .../OpenBSD-cvs.1500.tar.gz !!
! where split is the directory in which you have ! placed the files you downloaded and target is the ! place you have chosen for the source set. !
! It is not necessary to keep these files around, if you're sure you've ! got a complete tree. But you can keep the base set file(s) for backup ! purposes. However, be sure to note the number of the base set before ! continuing.
!
+ cd target + ctm -v -v -v deltas/OpenBSD-cvs.* ++
! where target is the directory where your source set ! tree is, and deltas is where you have stored the ! deltas.
!
!
+
+ ctm_rmail -p /tmp -d deltas -b target folder ++ +
+ where folder is the mail folder containing the delta + mail. This will decode the ctm delta and save it in the + deltas directory. The delta will be a file of the + form OpenBSD-cvs.XXXX.gz, where XXXX + is the number of the delta. Then the delta will be applied to the + directory tree located at target, the place where you + unpacked the base delta. + +
+ Repeat this last step every time you receive a delta from the + mailing list. If you like you can automate this step using procmail + or any similar program. +
+ The addresses for the deltas are: +
!
!
! It will take some time to run all of the deltas, but the daily invocations ! of ctm_rmail and ctm will not take nearly as long. ! -
! This depends on your diskspace, among other factors. Since ctm doesn't ! yet deal with files which have been modified outside of the ctm process, ! the "better" choice is probably the cvs-tree. Then you can check out ! your working source tree from your cvs-tree, and keep your local mods ! in your source tree, leaving only ctm to touch your cvs tree.
The drawback, however, is the amount of diskspace it takes. A checked-out ! source tree takes about 300Mb or so, but if you have your own cvs tree you ! need 400Mb or so for it, plus another 300Mb for the checked out tree.
! This doesn't count the 100Mb or more you will need to do a build (depending ! on the architecture).
If you just get the source tree, you will need to deal with local --- 223,250 ----
! NOTE: I'm very interested in finding other sites around the world ! that would like to mirror these deltas.
!
! This depends on your diskspace, among other factors. Since ctm ! doesn't deal with files which have been modified locally, the "better" ! choice is probably the CVS tree. You then can check out your working ! source tree from your CVS tree, and keep your local modifications in ! your source tree, because cvs is smart enough to merge in your local ! changes.
The drawback, however, is the amount of diskspace it takes. A checked-out ! source tree takes about 350MB or so, but if you have your own cvs tree you ! need about 1Gb for it, plus another 350MB for the checked out tree.
! This doesn't count the 100MB or more (depending on the architecture) ! you will need to do a build, i.e. compile the sources.
If you just get the source tree, you will need to deal with local *************** *** 201,215 **** you should have no problems. A sample of this is as follows:
! Suppose your ctm-updated tree is in /usr/src-ctm, and your real
! source tree, the one you make your modifications to and do your builds from,
! is in /usr/src. /usr/src should be initially an empty
! directory. The following command will set up the union mount:
!
!
! mount -t union -o -b /usr/src-ctm /usr/src
!
!
Modifications made to files in /usr/src will become a file contained within
/usr/src, hiding the one in src-ctm. If changes are made via ctm to the
underlying src-ctm tree, those changes will not be seen if there is
--- 255,271 ----
you should have no problems. A sample of this is as follows:
! Suppose your ctm-updated tree is in /usr/src-ctm, and ! your real source tree, the one you make your modifications to and do ! your builds from, is in /usr/src. ! /usr/src should be initially an empty directory. The ! following command will set up the union mount: ! !
! mount -t union -o -b /usr/src-ctm /usr/src !! !
Modifications made to files in /usr/src will become a file contained within /usr/src, hiding the one in src-ctm. If changes are made via ctm to the underlying src-ctm tree, those changes will not be seen if there is *************** *** 218,258 ****
You should periodically unmount the
union and search for files which are local to the union filesystem.
-
-
- umount /usr/src
- find /usr/src -type f
-
-
- The commands ls -W and rm -W will be useful too, as objects
- named "whiteouts" in /usr/src will also hide files in src-ctm.
! If you get the cvs-tree, you can use the "cvs checkout" command to check
! out a source tree from it, and each time you update with ctm you can use
! the "cvs update" command to update your source tree.
!
! To get an initial src tree:
!
! cd /usr
! cvs -qd YOUR_CVS_TREE checkout src
!
! and after each ctm update:
!
! cd /usr/src
! cvs -q update -PAd
!
Summary:
*************** *** 278,326 ****
! I will make any important notes and announcements about ctm in:
- NOTE: If you use ctm for OpenBSD, please send me email so I - know how many people are using it!
! Important notes and announcements about ctm will be posted to:
! Good luck! !
! t -
! For any problems, suggestions, reports and questions regarding ctm ! contact the ctm maintainer ! Hans Günter Weigand. !
OpenBSD/CTM logo designed for the OpenBSD Project by Phillip F Knaack.