The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Поиск:  Каталог документации / Документация по FreeBSD / Руководства по FreeBSD на английском

4 Examples of more advanced source management

4.1 How to safely change tags when updating src-all

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:

  1. # mv checkouts.cvs:A checkouts.cvs:B (This provides the subsequent step with the appropriate checkouts file)

  2. write a supfile whose collection line reads:

        src-all tag=B
  3. 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:

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

4.2 Updating to the same tag as of a different date

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:

  1. write a supfile whose collection line reads:

        src-all tag=A date=D
  2. 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.

Note: The format of a date is rigid. You have to specify all the components of the date: century (20, ie the 20th 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 (eg 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.

4.3 Updating your ports collection for the first time

Since ports are tagged ``.'' (ie -CURRENT), you can correctly ``sync'' them for the first time by adding the date keyword (cf cvsup(1) for the exact format): you should specify a date as close as possible to that of ``shipping'' of your ports tree. After cvsup has correctly created the ports checkouts file, which is precisely the goal of this first special sync operation, the date field must be removed; 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. :-)

This, and other documents, can be downloaded from

For questions about FreeBSD, read the documentation before contacting <>.
For questions about this documentation, e-mail <>.

Inferno Solutions
Hosting by

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру