bind9/doc/dev/cvs-usage
Ondřej Surý 2bf7921c7e Update the copyright information in all files in the repository
This commit converts the license handling to adhere to the REUSE
specification.  It specifically:

1. Adds used licnses to LICENSES/ directory

2. Add "isc" template for adding the copyright boilerplate

3. Changes all source files to include copyright and SPDX license
   header, this includes all the C sources, documentation, zone files,
   configuration files.  There are notes in the doc/dev/copyrights file
   on how to add correct headers to the new files.

4. Handle the rest that can't be modified via .reuse/dep5 file.  The
   binary (or otherwise unmodifiable) files could have license places
   next to them in <foo>.license file, but this would lead to cluttered
   repository and most of the files handled in the .reuse/dep5 file are
   system test files.

(cherry picked from commit 58bd26b6cf)
2022-01-11 12:22:09 +01:00

106 lines
3.1 KiB
Text

<!--
Copyright (C) Internet Systems Consortium, Inc. ("ISC")
SPDX-License-Identifier: MPL-2.0
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, you can obtain one at https://mozilla.org/MPL/2.0/.
See the COPYRIGHT file distributed with this work for additional
information regarding copyright ownership.
-->
Notes on CVS Usage
Accessing the repository
The recommended way of accessing the BIND 9 CVS repository is by ssh
to rc.isc.org, using the following environment settings:
CVSROOT=:ext:rc.isc.org:/proj/cvs/isc
CVS_RSH=ssh
Creating a release branch
Here's how the 9.0 release branch was created:
cvs rtag v9_0_base bind9
cvs rtag -b -r v9_0_base v9_0 bind9
Renaming files by repository copy
When you need to rename or move a file that is under CVS control, use
the "repository copy" method as described in the following text
borrowed from an ancient CVS FAQ:
2C.4 How do I rename a file?
CVS does not offer a way to rename a file in a way that CVS can
track later. See Section 4B for more information.
Here is the best way to get the effect of renaming, while
preserving the change log:
1. Copy the RCS (",v") file directly in the Repository.
cp $CVSROOT/<odir>/<ofile>,v $CVSROOT/<ndir>/<nfile>,v
2. Remove the old file using CVS.
By duplicating the file, you will preserve the change
history and the ability to retrieve earlier revisions of the
old file via the "-r <tag/rev>" or "-D <date>" options to
"checkout" and "update".
cd <working-dir>/<odir>
rm <ofile>
cvs remove <ofile>
cvs commit <ofile>
3. Retrieve <newfile> and remove all the Tags from it.
By stripping off all the old Tags, the "checkout -r" and
"update -r" commands won't retrieve revisions Tagged before
the renaming.
cd <working-dir>/<ndir>
cvs update <nfile>
cvs log <nfile> # Save the list of Tags
cvs tag -d <tag1> <nfile>
cvs tag -d <tag2> <nfile>
. . .
This technique can be used to rename files within one directory or
across different directories. You can apply this idea to
directories too, as long as you apply the above to each file and
don't delete the old directory.
Of course, you have to change the build system (e.g. Makefile) in
your <working-dir> to know about the name change.
Pulling up a newly added file to a release branch:
In a mainline working tree, do something like this:
cvs tag v9_0_base file
cvs tag -b -r v9_0_base v9_0 file
Importing contrib source from vendor release
As an example, here's how queryperf was imported:
cd /tmp
cvs -d shell.nominum.com:/proj/cvs/nominum export -rHEAD queryperf
cd queryperf
cvs -d rc.isc.org:/proj/cvs/isc import bind9/contrib/queryperf \
NOMINUM NOMINUM_20010710