3
# This determines how "inventory ids", strings conveying
4
# logical file identity, are computed for each file, directory
9
# tagline: inventory ids may be set using add-id, or omitted
10
# (though tree-lint warns about omitted ids), or in
11
# text files, set in a comment line near the top or
12
# bottom of the file of a form like "<PUNCT> arch-tag: <STRING>".
13
# Renames of files with no id are treated as a combined
14
# add and delete (e.g., local changes can be lost).
16
# explicit: ids must be set using add-id. Files passing the naming
17
# conventions for source, but lacking add-id ids, are treated
18
# as unrecognized files (see below).
20
# names: ids are not used. All renames are treated as add+delete
22
# implicit: similar to tagline, but in addition, the id comment
23
# may be of the form "<PUNCT> <BASENAME> - <STRING>", where
24
# <BASENAME> is the basename of the file. This method
25
# is not recommended, but is retained for backwards
31
# disposition of untagged source files
33
# (NOTE: this option must follow the tagline/explicit/names/implicit
36
# By default, the explicit method treats untagged files matching the naming
37
# conventions for source files as unrecognized and the implicit and tagline
38
# methods treat such untagged files as source.
40
# You can override those default treatments of untagged files by specifying
41
# which inventory category (see below) should be used for files whose names
42
# suggest they are source but which lack ids.
44
# This feature may be especially convenient when importing sources that do
45
# not use file naming conventions that can be conveniently described with
48
# Uncomment one of these lines as appropriate to override the default:
50
# untagged-source source
51
# untagged-source precious
52
# untagged-source backup
53
# untagged-source junk
54
# untagged-source unrecognized
57
# naming convention regexps
59
# For various commands, arch traverses your project trees, categorizing
60
# the files found there. For example, when importing a project for
61
# the first time, this traversal determines which files are included
64
# The categories of greatest importance are defined in terms of three
67
# 1) If arch makes a local copy of this tree, should this file be included
70
# 2) Is it generally safe to remove this file based only on how it is named?
71
# For example, can it be safely clobbered by a new file of the same name?
73
# 3) Should this file be archived along with the project? For example,
74
# should it be included when importing the project for the first time?
76
# The primary categories are:
78
# category: copy locally? safe to clobber? archive?
85
# There are two additional categories, unrelated to those questions:
87
# excluded -- during a traversal by srcfind (aka inventory), this file (and,
88
# if a directory, its contents) are simply ignored unless the
89
# --all flag is specified. This category is usually used to
90
# omit arch's own control files from a listing.
92
# unrecognized -- a category for files whose name fits no other pattern.
93
# Usually, the presence of unrecognized files is treated as an
94
# error. You can use the naming conventions to define certain
95
# names as "deliberately unrecognized" -- i.e., filenames whose
96
# presence in a source tree you _want_ to be treated as an error
98
# The traveral algorithm is described here, along with lines you can edit to
99
# customize the naming conventions.
101
# Starting at "." within a project tree (usually at the root of the
102
# project tree) consider each filename in that directory.
104
# The files "." and ".." are simply ignored.
106
# Files containing "illegal characters" are characterized as unrecognized.
107
# If they are directories, traversal does _not_ descend into those directories.
108
# Currently, the illegal characters are *, ?, [, ], \, space, and tab.
109
# (The set of illegal characters may shrink in future releases.)
111
# In an interactive call to srcfind (aka inventory) _without_ the --all flag,
112
# names are next compared to the exclude regexp defined here. Those that
113
# are ignored and not descended below. (Most arch operations performing
114
# traversals internally, e.g. imprev (aka import), do not use this pattern
115
# and skip this step of the algorithm.
118
exclude ^(.arch-ids|\{arch\})$
120
# If the file has a name that begins with "++", it is categorized as
121
# _precious_. Names of this form are hard-wired and reserved for use by arch
122
# itself. Traversal does not descend into precious directories, but when a
123
# precious directory is copied, its contents are recursively copied.
125
# Files and directories that reach this stage and which arch recognizes as its
126
# own control files are classified at this step as source. Traversal _does_
127
# descend into source directories.
129
# If the file has a name that begins with ",,", it is categorized as _junk_.
130
# Names of this form are hard-wired and reserved for use by arch and other tools,
131
# and arch may clobber such files without warning. In a project tree, when no
132
# arch commands are running, it is safe for users to delete any ",," files.
133
# Although the general rule for junk files is that arch is free to clobber them,
134
# in fact, arch will only ever clobber files starting with ",,".
136
# Traversal does not descend into junk directories.
138
# For your convenience, at this step of the traversal, you can classify
139
# additional files as junk or precious:
144
precious ^(\+.*|\.gdbinit|\.#ckpts-lock|=build\.*|=install\.*|CVS|CVS\.adm|RCS|RCSLOG|SCCS|TAGS)$
146
# Files matching the following regexp are classified as backup files, and
147
# traversal does not descend into backup directories:
150
backup ^.*(~|\.~[0-9]+~|\.bak|\.orig|\.rej|\.original|\.modified|\.reject)$
152
# If you want to force certain filenames to be treated as errors when present,
153
# you can add them to the regexp for deliberately unrecognized files. Traversal
154
# does not descend into unrecognized directories.
156
unrecognized ^(.*\.(o|a|so|core|so(\.[[:digit:]]+)*)|core)$
158
# Files which match the following pattern are treated as source files.
159
# Traversal _does_ descend into source directories:
161
source ^[_=a-zA-Z0-9].*$
163
# Any files not classified by the above rules are classified as unrecognized.
164
# Traversal does not descend into unrecognized directories.