File: cvsutils.1

package info (click to toggle)
cvsutils 0.0.20020311-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 248 kB
  • ctags: 34
  • sloc: perl: 686; sh: 354; makefile: 88
file content (157 lines) | stat: -rw-r--r-- 5,274 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
.TH CVSUTILS 1 "February 27, 2002"
.SH NAME
cvsutils \- CVS utilities for use in working directories
.SH SYNOPSIS
.BR cvsu " [" options ]
.br
.B cvsco " [" options ]
.br
.B cvsdiscard " [" options ]
.br
.B cvspurge " [" options ]
.br
.B cvstrim " [" options ]
.br
.B cvschroot " [" options ]
.br
.B cvsrmadm " [" options ]
.br
.B cvsdo " [" options ]
.SH DESCRIPTION
The idea of
.B cvsutils
is to facilitate working with the files in the working directory of a
developer using CVS (Concurrent Versions System).
.PP
From the point of view of CVS, working directories have low value,
since they can easily be recreated using the
.B "cvs checkout"
command.
Also the
.B "cvs update"
command will show the status of the files, i.e. whether they have been
modified, added or removed.
.PP
CVS in it's current state is a client-server system that does most of its
work on the server side. CVS provides only few (if any) means for managing
the working directory without communicating with the server.
.PP
There are, however, several reasons why such means are necessary:
.IP *
There is enough information on the client side to create fast tools
for sorting and purging the working directory without contacting the CVS
server.
.IP *
Checking out a big module over a slow line can take too much time.
.IP *
There should be support for disconnected operations.
.IP *
CVS poses certain unnecessary restrictions on read-only users, e.g.
.B "cvs add"
command doesn't work for them.
.SH CVSU
.B cvsu
is "cvs update offline". It lists the files found in the current directory
(or in the directories which you specify). Following is taken into account:
.IP *
Attributes of the file.
.IP *
Information about the file in CVS/Entries.
.IP *
Timestamp of the file compared to the timestamp stored in CVS/Entries.
.PP
Run
.B "cvsu --help"
to see supported command line options. The options can be abbreviated.
This functionality is provided by Perl, and can vary from one machine
to another.
.SH CVSCO
.B cvsco
is a "cruel checkout". In other words, it removes results of compilation
and discards local changes. It deletes all the files except listed
unmodified ones and checks out everything which seems to be missing.
Please note, that
.B cvsco
doesn't update files which haven't been modified locally. It only reloads
missing files and files which it erases.
.SH CVSDISCARD
.B cvsdiscard
is "discard my changes". In other words, it discards local changes but
keeps results of compilation. It works like
.BR cvsco ,
but it only deletes files which are likely to cause merge conflicts.
.SH CVSPURGE
.B cvspurge
is cvs-based "make maintainer-clean". In other words, it removes results
of compilation but keeps local changes intact. It removes unknown files,
but keeps changes in the files known to CVS. Unknown directories are also kept.
.SH CVSTRIM
.B cvstrim
removes files and directories unknown to CVS. Files listed in
.B .cvsignore
are not removed. The idea is to remove the files that are not resulted
from the normal build process - backups, coredumps etc.
.B cvstrim
relies on
.B .cvsignore
files being correct. Note that the backups for modified files are removed.
.SH CVSCHROOT
.B cvschroot
makes it possible to change CVS/Root in all subdirectories to the given
value. Currently the only argument accepted is the new CVSROOT value.
Old-style CVS/Repository files that contain the full path to the repository
are updated to reflect the change. New-style CVS/Repository don't need to
be changed. If the environment variable CVSROOT is defined, it overrides
the contents of CVS/Root. In other words, it is treated as the
.B old
CVS root.
.SH CVSRMADM
.B cvsrmadm
removes all CVS directories in the project. It is safer if you occasionally
make mistakes in the "find" commands.
.SH CVSDO
.B cvsdo
simulates some of the CVS commands (currently add, remove and diff) without
any access to the CVS server. Using
.B "cvsdo add"
and
.B "cvsdo remove"
allows you to create diffs with
.BR "cvs diff -N" ,
and all removed and added files will appear in the diff correctly, as if you
had used
.B "cvs add"
and
.B "cvs remove"
respectively.
.PP
.B "cvsdo diff"
tries to locate the backup copies of the modified files. If they can be
found, they are compared with the current version using
.BR diff .
Only those backup copies are used that have the modification date equal
the date listed in CVS/Entries for the modified file.
.B "cvsdo diff"
patches the diff output to make it more robust to apply. An exception is
made for files named "ChangeLog" - in this case
.B diff
will be instructed to omit all context lines, so that the patch can be applied
even if other changes have been written to the ChangeLog. Also the added
files are handled properly. The header of the
.B diff
output is patched in such way that at least GNU patch will create a new
file when the resulting patch is applied and remove that file when the
patch is reverted.
.SH BUGS
Please report any bugs you find to Pavel Roskin <proski@gnu.org>.
.SH LICENCE
.B cvsutils
is covered by the GNU General Public License (GPL).
.SH SEE ALSO
.BR cvs (1),
.BR cvs2cl (1).
.SH AUTHOR
Pavel Roskin <proski@gnu.org>
.PP
This manual page was written by Uwe Hermann <uwe@debian.org>,
for the Debian GNU/Linux system (but may be used by others).