C.7 Ignoring files via cvsignore
There are certain file names that frequently occur
inside your working copy, but that you don't want to
put under CVS control. Examples are all the object
files that you get while you compile your sources.
Normally, when you run `cvs update', it prints a
line for each file it encounters that it doesn't know
about (see section update output).
CVS has a list of files (or sh(1) file name patterns)
that it should ignore while running update
,
import
and release
.
This list is constructed in the following way.
-
The list is initialized to include certain file name
patterns: names associated with CVS
administration, or with other common source control
systems; common names for patch files, object files,
archive files, and editor backup files; and other names
that are usually artifacts of assorted utilities.
Currently, the default list of ignored file name
patterns is:
| RCS SCCS CVS CVS.adm
RCSLOG cvslog.*
tags TAGS
.make.state .nse_depinfo
*~ #* .#* ,* _$* *$
*.old *.bak *.BAK *.orig *.rej .del-*
*.a *.olb *.o *.obj *.so *.exe
*.Z *.elc *.ln
core
|
-
The per-repository list in
`$CVSROOT/CVSROOT/cvsignore' is appended to
the list, if that file exists.
-
The per-user list in `.cvsignore' in your home
directory is appended to the list, if it exists.
-
Any entries in the environment variable
$CVSIGNORE
is appended to the list.
-
Any `-I' options given to CVS is appended.
-
As CVS traverses through your directories, the contents
of any `.cvsignore' will be appended to the list.
The patterns found in `.cvsignore' are only valid
for the directory that contains them, not for
any sub-directories.
In any of the 5 places listed above, a single
exclamation mark (`!') clears the ignore list.
This can be used if you want to store any file which
normally is ignored by CVS.
Specifying `-I !' to cvs import
will import
everything, which is generally what you want to do if
you are importing files from a pristine distribution or
any other source which is known to not contain any
extraneous files. However, looking at the rules above
you will see there is a fly in the ointment; if the
distribution contains any `.cvsignore' files, then
the patterns from those files will be processed even if
`-I !' is specified. The only workaround is to
remove the `.cvsignore' files in order to do the
import. Because this is awkward, in the future
`-I !' might be modified to override
`.cvsignore' files in each directory.
Note that the syntax of the ignore files consists of a
series of lines, each of which contains a space
separated list of filenames. This offers no clean way
to specify filenames which contain spaces, but you can
use a workaround like `foo?bar' to match a file
named `foo bar' (it also matches `fooxbar'
and the like). Also note that there is currently no
way to specify comments.