File: curves.1

package info (click to toggle)
curves 0.8.7
  • links: PTS
  • area: main
  • in suites: slink
  • size: 704 kB
  • ctags: 1,001
  • sloc: cpp: 6,197; ansic: 519; makefile: 270; sh: 192; fortran: 149
file content (380 lines) | stat: -rw-r--r-- 12,179 bytes parent folder | download | duplicates (3)
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
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
.TH curves 1 19-Aug-1998 Debian
.SH NAME
curves \- console UI to CVS source control
.SH SYNOPSIS
.B curves
[
.B \-\-debug=value
]

.SH DESCRIPTION

\fBcurves\fR provides a simple console UI to the CVS source control
program.  Its purpose is to simplify everyday source control tasks and
minimize the most frequent errors.  These errors include users
forgetting to add new files when committing, and adding binary files
without setting the 
.I \-kb 
switch that tells CVS to leave line endings alone and to suppress
substituting keywords.

.SH OPTIONS

.TP
.I "\-\-debug=value"
Sets the debug output value to \fIvalue\fR which may be either
decimal, or hexadecimal if prefixed with 0x.  The interesting settings
of the debug value may be found in the source.

.SH USAGE

The top line of the \fBcurves\fP screen describes the menu of
available commands.  Below the menu are two panes that list the
sub\-directories and files in the current directory.  Beneath these is
a status line describing either the current directory or file where
the cursor is pointing.  The bottom line is for user input.

The menu bar begins with the colon delimited name of the menu.  The
main menu is labeled \fICurVeS\fP while each sub-menu is labeled with
the name as it appears in the main menu.  Each menu command has one
capitalized letter.  Pressing this key invokes the respective command.
For example, when the main menu is active the \fIF\fP key invokes the
\fIFile\fP menu and the \fIQ\fP key quits \fBCurVeS\fP.

A right pointing arrow, \fI>\fP, indicates which of the two primary
panes is active.  Use the \fI<tab>\fP key to change the active pane.
While the directory pane is active, the up and down arrow keys move
through the directory list and \fI<enter>\fP changes to that
directory.  The status line reports the the name of the current
directory, the number of subdirectories in it, the number of files,
and the number of selected files in parenthesis.  While the file pane
is active, the arrow keys move around the list and either
\fI<space>\fP or \fI<enter>\fP toggles the selection mark for the
current file.  The selection mark is a usually grave accent \fB`\fP
but changes to an ampersand \fB&\fP when it coincides with the cursor.
The status line reports the name and size of the file, the time and
date it was last modified, and the most current status of the file.
Each filename also bears a prefix mark to indicate its current status
(see \fBFile Status and Marks\fP).

.SS "Menu Commands"

.TP
.I Cvs
Chooses the sub-menu of CVS commands.  These commands operate either
on the marked files or on the current file if none are marked.

.TP
.I CVS\->Add
Perform \fBcvs add\fP.  The current file or marked files are queued
for addition to the module for the current directory.  The output of
the command is displayed to the console.

.TP
.I CVS\->BinaryToggle
For uncontrolled files that are not excluded by .cvsignore,
.B CurVeS
attempts to determine if the file contains binary or ASCII data.  The
result of its analysis is shown in the status of the file, either 
.I "New Add (B)"
for binary or 
.I "New Add (T)"
for text.  This command toggles the status of the file in the unlikely
event that the heuristic failed.

Note that this status toggle persists only as long as the current
\fBCurVeS\fR session.  This information is passed to CVS only when the
file is added to the module.  See the \fBCVS->Add\fP menu command.

.TP
.I CVS\->Commit
Perform \fBcvs commit\fP.  The current file or marked files are
committed to CVS.
.B CurVeS
prompts the user for a commit comment using the preferred editor.  See
the
.B CommitCommentEditor 
preference in
.IR curves (5).

.TP
.I CVS\->Diff
Perform \fBcvs diff\fP.  Differences between the current file or
marked files and the most recent version in the CVS repository appear
on the console. 

.TP
.I CVS\->Log
Perform \fBcvs log\fP.  The CVS log for the current file or marked
files appears on the console. 

.TP
.I CVS\->Update
Perform \fBcvs update\fP.  This command synchronizes the current
directory with the CVS repository.  It is important to do this before
committing changes. 

.TP
.I File
Chooses the sub-menu for File commands.  These perform general file
operations pertaining to the operating system.

.TP
.I File\->Change dir
Prompts the user for a directory to make the current one.

.TP
.I File\->Options
Invokes the \fB$(EDITOR)\fP on the .curves program preferences file.

.TP
.I File\->View
Pipes the contents of the current or selected files to \fBless\fP.

.TP 
.I Mark
Chooses the sub-menu for Mark (select) commands.  These change the
file selection according to the class of each file.

.TP
.I Mark\->AddedNotYet
Marks/selects the not-yet-added files.  These are the files that
.B CurVeS
determines may be new to the project but have not been added.

.TP
.I Mark\->Clear
Clears all selection marks.

.TP
.I Mark\->Edited
Marks/selects files that are recognized by CVS source control and have
been modified in the current directory.

.TP
.I Mark\->Uncommitted
Marks/selects files that have either been edited, added, or removed
from the current directory and have not yet been committed.

.TP
.I Sort
Change the file sort criteria.  The menu bar changes to display the
key options and the user input area prompt for a new value.  The first
sort key is always used.  The second and successive keys are used to
break ties where the previous keys are ambiguous.  For example, an
alpha sort is unambiguous and will never use any other keys.  Usually,
there are many files in each class, so the class key usually requires
another key.  If an insufficient number of keys is given for an
unambiguous sort, a file 'a' alpha key is inferred.

The keys are as follows:
.RS
.TP 0.5i
.I a
sort alphabetically without regard to case.  Thus 'abe' sorts before 'AXE'.
.TP
.I A
sort alphabetically according to ASCII lexical order.  Thus 'AXE'
sorts before 'abe'.
.TP
.I c
sort by file classification mark.  The order of these marks is
defined internally to
.B CurVeS
and is from most interesting to least interesting.  Source controlled
files are more interesting than uncontrolled files.  Edited files are
more interesting that unedited, added, removed, or out-of-sync files.
.TP
.I n
sort newest files first.
.TP
.I o
sort oldest files first.
.TP
.I l
sort longest files first, those with the greatest file size.
.TP
.I s
sort shortest files first, those with the smallest file size.
.RE

.TP
.I Version
Display 
.B CurVeS 
version number in the user entry area.

.TP
.I Quit
terminates the program.

.SS "Search Commands"

.B CurVeS
provides a quick method to search for a particular name in
the current pane.  The solidus '/' key executes a simple forward
search command.  Enter a string and the cursor moves to the next
filename that contains that string.  The question mark '?' key
executes a simple reverse search.

.SS "File Status and Marks"

The status of each file is coded in three ways.  It is displayed in
the status area when the cursor points to the file.  The single
character prefix for each file indicates the file status.  When
available, each file is displayed in a color for it's status.

This table shows the name of the file status, the character prefix for
that status, the color used for the Linux console, and the color used
in X-Windows.

.TP
.I Added		'+'		Magenta / Red
File has been scheduled to be added to the module.  This addition will
propagate to the repository on commit.

.TP
.I Checkout		'='		Magenta / Red
File exists in the repository, but has never been checked-out into the
working directory.  This occurs in multi-developer projects when
others add a new files to a module.

.TP
.I Conflict		'*'		Red / Red
Changes committed to the repository conflict with local changes to the
file.  Look through the source file for 

.nf
<<<<<<< \fBfilename\fR
.I "... local changes"
=======
.I "... repository changes"
>>>>>>> \fBrevision\fR
.fi

where \fBfilename\fR is the name of the local file and \fBrevision\fR
is the number of the most recent revision comitted to the repository.

These conflicts must be resolved before committing local changes to
this file.

.TP
.I Edited		'>'		Yellow / Blue
File has been locally modified and no changes have been committed to
the file since it was checked-out.

.TP
.I Lost			'^'		Red / Red
The local copy of the file is missing even though it had been
checked-out at one time.  The 
.B CVS\->Update
command will restore the latest copy of this file.

.TP
.I NewAdd (T)	'?'		Green / Green
File has not been added to the module and is not excluded by any of
the cvsignore lists.  
.B CurVeS
has analyzed the file and determined it to be ASCII text.  This is the
normal mode for new files, but can be changed before it is added to
the module by using the \fBCVS->BinaryToggle\fP menu command.

.TP
.I NewAdd (B)	'?'		Green / Green
File has not been added to the project and is not excluded by any of
the cvsignore lists.  
.B CurVeS
has analyzed the file and determined it to contiain binary data.  When
added to the module, this file will not experience line-ending changes
nor will it have CVS keywords substituted.
.B CurVeS
sets the 
.I \-kb
CVS switch for binary files when adding them to a module.  This mode
may be changed before it is added to the module by using the
\fBCVS\->BinaryToggle\fP menu command. 

.TP
.I Merge		'!'		Magenta / Red
File has been locally modified and has had changes committed to the
repository.  The changes from the repository
.B must
be merged with the local file copy before CVS commit local changes.
Use the  
.B CVS\->Update
commands to merge the repository changes into the local copy of
this file.

.TP
.I Patch		'<'		Magenta / Red
Changes to this file have been committed to the repository since it
was last checked-out and no local modification have been made.  Use
the 
.B CVS\->Update
command to incorporate the repository changes into the local copy of
this file.

.TP
.I Removed		'-'		Magenta / Magenta
File has been scheduled to be removed from the repository.  The
removal will propagate on commit.

.TP
.I UpToDate		':'		Cyan / Cyan
File is controlled by CVS but has neither been changed locally nor
have changes been committed to the repository.


.SS "Built-in Line Editor"

When prompting the user for input,
.B CurVeS
uses simple, built-in line editor that emulates the most interesting
EMACS keystrokes.  If there is a default or current setting for the
prompt it is shown highlighted to show selection.  Typing a new value
will replace the selected value.  The left arrow or ^B move the cursor
to the left.  The right arrow or ^F move the cursor to the right.
HOME or ^A moves the cursor to the beginning of the line.  END or ^E
moves the cursor to the end of the line.  DELETE and ^D delete the
character under the cursor.  BACKSPACE and ^H delete the previous
character.  ^K deletes the character under the cursor and all
characters to the end of the line.  ESC and ^G cancel the input.
ENTER accepts the new value.

.SS "Terminal Emulation"

\fBCurVeS\fP does use the termcap and terminfo databases when
available, but it does not use either the curses or ncurses packages
to interpret them.  The program first looks in the terminfo database
for the current terminal type.  If it isn't found, it then looks for a
termcap entry.

.SH ENVIRONMENT VARIABLES

.B CurVeS
uses the TERM variable to select the correct terminal type.  It uses
EDITOR, or VISUAL if EDITOR value is empty, as the editor for the
preferences file.

.SH BUGS

.B CurVeS
always scans the current directory for the latest status for each
file.  If access to the repository has a high latency or the directory
is large, this scan may take much time.  In addition, if the
repository is remote and the user's access to it is through a dial-up
connection,
.B CurVeS
may initiate a dial-out.  The solution to this problem involves the
use of a cached (and potentially stale) view of the repository's
latest log entries.

.B CurVeS
has no method for working with trees of files.  It is not possible to
perform a commit on more than one directory at a time.

.SH AUTHOR
Marc Singer <elf@debian.org>

.SH "SEE ALSO"
.IR curves (5)