1.de Id
2.ds Rv \\$3
3.ds Dt \\$4
4..
5.Id $FreeBSD$
6.ds r \&\s-1RCS\s0
7.if n .ds - \%--
8.if t .ds - \(em
9.TH RCSCLEAN 1 \*(Dt GNU
10.SH NAME
11rcsclean \- clean up working files
12.SH SYNOPSIS
13.B rcsclean
14.RI [ options "] [ " file " .\|.\|. ]"
15.SH DESCRIPTION
16.B rcsclean
17removes files that are not being worked on.
18.B "rcsclean \-u"
19also unlocks and removes files that are being worked on
20but have not changed.
21.PP
22For each
23.I file
24given,
25.B rcsclean
26compares the working file and a revision in the corresponding
27\*r file.  If it finds a difference, it does nothing.
28Otherwise, it first unlocks the revision if the
29.B \-u
30option is given,
31and then removes the working file
32unless the working file is writable and the revision is locked.
33It logs its actions by outputting the corresponding
34.B "rcs \-u"
35and
36.B "rm \-f"
37commands on the standard output.
38.PP
39Files are paired as explained in
40.BR ci (1).
41If no
42.I file
43is given, all working files in the current directory are cleaned.
44Pathnames matching an \*r suffix denote \*r files;
45all others denote working files.
46.PP
47The number of the revision to which the working file is compared
48may be attached to any of the options
49.BR \-n ,
50.BR \-q ,
51.BR \-r ,
52or
53.BR \-u .
54If no revision number is specified, then if the
55.B \-u
56option is given and the caller has one revision locked,
57.B rcsclean
58uses that revision; otherwise
59.B rcsclean
60uses the latest revision on the default branch, normally the root.
61.PP
62.B rcsclean
63is useful for
64.B clean
65targets in makefiles.
66See also
67.BR rcsdiff (1),
68which prints out the differences,
69and
70.BR ci (1),
71which
72normally reverts to the previous revision
73if a file was not changed.
74.SH OPTIONS
75.TP
76.BI \-k subst
77Use
78.I subst
79style keyword substitution when retrieving the revision for comparison.
80See
81.BR co (1)
82for details.
83.TP
84.BR \-n [\f2rev\fP]
85Do not actually remove any files or unlock any revisions.
86Using this option will tell you what
87.B rcsclean
88would do without actually doing it.
89.TP
90.BR \-q [\f2rev\fP]
91Do not log the actions taken on standard output.
92.TP
93.BR \-r [\f2rev\fP]
94This option has no effect other than specifying the revision for comparison.
95.TP
96.B \-T
97Preserve the modification time on the \*r file
98even if the \*r file changes because a lock is removed.
99This option can suppress extensive recompilation caused by a
100.BR make (1)
101dependency of some other copy of the working file on the \*r file.
102Use this option with care; it can suppress recompilation even when it is needed,
103i.e. when the lock removal
104would mean a change to keyword strings in the other working file.
105.TP
106.BR \-u [\f2rev\fP]
107Unlock the revision if it is locked and no difference is found.
108.TP
109.BI \-V
110Print \*r's version number.
111.TP
112.BI \-V n
113Emulate \*r version
114.IR n .
115See
116.BR co (1)
117for details.
118.TP
119.BI \-x "suffixes"
120Use
121.I suffixes
122to characterize \*r files.
123See
124.BR ci (1)
125for details.
126.TP
127.BI \-z zone
128Use
129.I zone
130as the time zone for keyword substitution;
131see
132.BR co (1)
133for details.
134.SH EXAMPLES
135.LP
136.RS
137.ft 3
138rcsclean  *.c  *.h
139.ft
140.RE
141.LP
142removes all working files ending in
143.B .c
144or
145.B .h
146that were not changed
147since their checkout.
148.LP
149.RS
150.ft 3
151rcsclean
152.ft
153.RE
154.LP
155removes all working files in the current directory
156that were not changed since their checkout.
157.SH FILES
158.B rcsclean
159accesses files much as
160.BR ci (1)
161does.
162.SH ENVIRONMENT
163.TP
164.B \s-1RCSINIT\s0
165options prepended to the argument list, separated by spaces.
166A backslash escapes spaces within an option.
167The
168.B \s-1RCSINIT\s0
169options are prepended to the argument lists of most \*r commands.
170Useful
171.B \s-1RCSINIT\s0
172options include
173.BR \-q ,
174.BR \-V ,
175.BR \-x ,
176and
177.BR \-z .
178.SH DIAGNOSTICS
179The exit status is zero if and only if all operations were successful.
180Missing working files and \*r files are silently ignored.
181.SH IDENTIFICATION
182Author: Walter F. Tichy.
183.br
184Manual Page Revision: \*(Rv; Release Date: \*(Dt.
185.br
186Copyright \(co 1982, 1988, 1989 Walter F. Tichy.
187.br
188Copyright \(co 1990, 1991, 1992, 1993 Paul Eggert.
189.SH "SEE ALSO"
190ci(1), co(1), ident(1), rcs(1), rcsdiff(1), rcsintro(1), rcsmerge(1), rlog(1),
191rcsfile(5)
192.br
193Walter F. Tichy,
194\*r\*-A System for Version Control,
195.I "Software\*-Practice & Experience"
196.BR 15 ,
1977 (July 1985), 637-654.
198.SH BUGS
199At least one
200.I file
201must be given in older Unix versions that
202do not provide the needed directory scanning operations.
203.br
204