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
|
=============
CurVeS README $Id: README,v 1.19 2001/03/25 18:09:17 elf Exp $
=============
by Marc Singer, elf@buici.com
25 March 2001 (last revision) for version <<version>>
This document serves as an orientation guide to CurVeS, a front-end
for CVS source control.
1. Introduction
Expect to find information about how to configure, compile, and use
the CurVeS program in this document. While it will explain
something about source control and specifically CVS, it is not
likely to be a good source for explaining the 'why' of source
control. Nor will it provide a tutorial on the more sophisticated
features of CVS and RCS, on which CurVeS is built, that are not
supported by the application itself.
This is an ALPHA release of the software. It is being developed on
a Debian-GNU/Linux x86 system as a text console application. If you
try it on other systems, please let me know how it works. The
source package comes with an autoconf script has not been well
tested on non Debian-GNU/Linux systems.
While this is an ALPHA release, it is not know to have any priority
one (crash/hang) bugs. I am using it to do all source control while
developing the program and so find that it supports a useful set of
features.
1.1. Copyright
The CurVeS program is Copyright (C) 1996-1998 by Marc Singer. It is
free software; you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free
Software Foundation; either version 2 of the License, or (at your
option) any later version.
1.2. Sources for related programs
o RCS, the Revision Control System, written by Walter Tichy
provides the base level software for this version control
system. You can find the sources here:
<URL:ftp://ftp.cs.purdue.edu/pub/RCS>
o CVS, the Concurrent Version System, originally written by Brian
Berliner provides the project level source management software.
It is presently maintained by Cyclic Software. The source can be
found here:
<URL:ftp://ftp.cyclic.com/pub/cvs>
They have a Web site <URL:http://www.cyclic.com> that has much
information about using CVS and about obtaining support for their
releases.
1.3 The most current source for CurVeS
The primary site for CurVeS source is on Netcom, but it tends to be
an unreliable FTP site. Send me mail if you are unable to download
the package.
<URL:ftp://ftp.netcom.com/pub/el/elf/curves>
1.4 Feedback and Bug Reports
Bug reports may be sent to the author at <elf@debian.org>. There is
a plan to incorporate some form of automatic bug report generation
within the application, but until that is available, e-mail is
likely to produce a response.
If you are having problems with the display. Please add these lines
to your ~/.curves preferences file, run curves, go to the place
where the problem occurs, and then quit the program. After
leaving curves, send the 'log' file to me by e-mail. Note that this
file will tend to contain binary data so you may need to uuencode it
to make it e-mail safe.
Debug = 0x403f
DebugOutput = log
1.5 Disclaimer
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
2.0 Building CurVeS from source
The project includes an AutoConf (GNU) script for configuration. It
is fully automatic. The first thing to do is run the script. It
generates a Makefile and a config.h file. Check the sizes of int's
and long's in config.h if you are cross-compiling. If everything is
OK, run make. That's it. There is one executable, `curves', and it
looks for the program `cvs' in the path.
I have received some input from users compiling on these targets to
make it build cleanly.
Redhat GNU/Linux 5.x x86
solaris-sparc
Debian build performed automatically
3.0 CurVes Binary Package for Debian -- curves_<<version>>_i386.deb
As of version 0.8.3, I am releasing CurVeS with a Debian binary
package as well as in source archive form. The current package is
for Debian 2.0 as it requires libc6.
4.0 Using CurVeS
This release has standard man pages for curves and for the
preferences file.
Briefly, the interface uses an admittedly clumsy menu scheme.
Typing the first letter of a menu item selects that item. ^G and
ESC cancel menus. The 'Q' command quits from the main menu. TAB
switches between the directory pane and the file pane. In the
directory pane, ENTER changes to the selected directory. In the
file pane, ENTER or SPACE toggles the selection mark for the current
file. CVS commands operate on the set of tagged files or on the
currently selected file if there are no tags set. The '/' and '?'
keys search forward and backward through the current pane's list of
files.
4.1 Preferences in ~/.curves
Some features of the program are already customizable from the
~/.curves file. The sample version, called options, describes the
CurVeS preferences and the default settings. Copy the options file
to ~/.curves and make changes as you wish. Note that some of the
options described therein are unimplemented. Refer to the man page
for detailed descriptions of the preference items.
4.2 Using CurVeS on Windows95, and Windows/NT
Future releases will support these operating systems [sic]. MSDOS
is not likely to be supported due to the lack of long filenames.
4.3 Performance
The first cvs operation that CurVeS performs is a status check on
each file in the current directory. This may be a lengthy first
step if a) the repository is available over a
high-latency/low-bandwidth link and/or b) many of the local
workfiles are modifed.
It helps to elaborate on the method used by cvs to determine file
status. This description is true as of version 1.10.1 of cvs. In
order to determine the status of a file, cvs sends at a minimum the
name and revision number of the local workfile for every controlled
file in the directory. If the timestamp on the workfile differs
from the timestamp stored in CVS/Entries for that file then cvs also
sends the contents of that file so that the server can determine if
the local copy has changed. While it is true that cvs can compress
the data stream between the client and the server, it is also true
that zlib compression seldom averages bettern than 2.6:1. Given
that 100K of source files has changed and we get 3:1 compression, we
need to send 33K of data to the server. On a 28.8Kb connection,
this will take at least 10 seconds.
The solution to this trouble is not clear at the moment. I'm
researching some alternatives and will make appropriate changes to
effect them. Note that on a reasonably fast machine or over a
10BaseT network, this limitation of cvs should not appear to be
significant.
4.4 The SSH access method for CVS
While there are no explicit features in CurVeS to supply an SSH
passphrase or password, SSH may be configured to operate without
needing them. Let LOCAL be the host running CurVeS and REMOTE be
the host with the CVS repository.
1) Remove the passphrase from your LOCAL SSH key if there is one.
2) Copy the public version of your LOCAL SSH key to your account
on REMOTE host. Add it to the .ssh/known_hosts file.
3) Add a .rhosts entry on REMOTE that permits password-less login
from LOCAL.
For more information about how to configure SSH for password-free
logins, refer to the SSH documentation. Note that your system may
be using OpenSSH and not the commercial SSH package.
5.0 About RCS and CVS
There will probably be more information here when I get around to
writing it.
6.0 Glossary
Sounds like a good name for section, eh?
;;; Local Variables: ***
;;; mode: indented-text ***
;;; End: ***
|