CVSup Advanced Points | ||
---|---|---|
Prev |
If you specify eg tag=A in your supfile, cvsup will create a checkouts file called checkouts.cvs:A: for instance, if tag=RELENG_4, a checkouts file called checkouts.cvs:RELENG_4 is generated. This file will be used to retrieve and/or store information identifying your 4-STABLE sources.
When tracking src-all, if you wish to pass from tag=A to tag=B (A less/greater than B not making any difference) and if your checkouts file is checkouts.cvs:A, the following actions should be performed:
# mv checkouts.cvs:A checkouts.cvs:B (This provides the subsequent step with the appropriate checkouts file)
write a supfile whose collection line reads:
src-all tag=B
cvsup your sources using the new supfile.
The cvsup utility will look for checkouts.cvs:B--in that the target is B; that is, cvsup will make use of the information contained therein to correctly manage your sources.
The benefits:
the sources are dealt with correctly (in particular, no stale files)
less load is placed on the server, in that cvsup operates in the most efficient way.
For example, A=RELENG_4, B=.. The period in B=. means -CURRENT. This is a rather typical update, from 4-STABLE to -CURRENT. While it is straightforward to downgrade your sources (e.g., from -CURRENT to -STABLE), downgrading a system is quite another matter. You are STRONGLY advised not to attempt such an operation, unless you know exactly what you are doing.
If you wish to switch from tag=A to tag=A as of a different GMT date (say, date=D), you will execute the following:
write a supfile whose collection line reads:
src-all tag=A date=D
update your sources using the new supfile
Whether the new date precedes that of the last sync operation with tag=A or not, it is immaterial. For example, in order to specify the date August 27, 2000, 10:00:00 GMT you write the line:
src-all tag=RELENG_4 date=2000.08.27.10.00.00
Note: The format of a date is rigid. You have to specify all the components of the date: century (20, i.e., the 21st century, must be supplied whereas 19, the past century, can be omitted), year, month, day, hour, minutes, seconds--as shown in the above example. For more information, please see cvsup(1).
Whether or not a date is specified, the checkouts file is called checkouts.cvs:A (e.g., checkouts.cvs:RELENG_4). As a result, no particular action is needed in order to revert to the previous state: you have to modify the date in the supfile, and run csvup again.
If you want to sync your ports tree for the first time you should use a tag that matches your FreeBSD installation. E.g., if you have installed the Ports Collection during the installation of FreeBSD 5.3-RELEASE the following should be used:
ports-all tag=RELEASE_5_3_0The cvsup program will create a ports checkout file, which is precisely the goal of the first special sync operation. Now we can use the . tag to update the tree whenever we feel it should be updated:
ports-all tag=.All subsequent updates will be carried out smoothly.
If you have been reading the apparently nit-picking remarks in these sections, you will probably have recognized the potential for trouble in a source updating process. A number of people have actually run into problems. You have been warned. :-)