1 |
Changes since 1.11.21: |
2 |
********************** |
3 |
|
4 |
Changes from 1.11.20 to 1.11.21: |
5 |
******************************** |
6 |
|
7 |
BUG FIXES |
8 |
|
9 |
* Thanks to Serguei E. Leontiev <lse@CryptoPro.ru>, CVS with Kerberos 5 GSSAPI |
10 |
should automatically link on FreeBSD 5.x. (bug #14639). |
11 |
|
12 |
* Thanks to Rahul Bhargava <rahul@wandisco.com>, heavily loaded systems |
13 |
suffering from a disk crash or power failure will not lose data they claimed |
14 |
to have committed. |
15 |
|
16 |
* CVS server now handles conflict markers in Entry requests as documented. |
17 |
|
18 |
* CVS now remembers that binary file merge conflicts occurred until the |
19 |
timestamp of the updated binary file changes. |
20 |
|
21 |
* CVS client now saves some bandwidth by not sending the contents of files |
22 |
with conflicts to the server when it isn't needed. |
23 |
|
24 |
* CVS now does correct locking during import. |
25 |
|
26 |
* A problem where the server could block indefinitely waiting for an EOF from |
27 |
the client when compression was enabled has been fixed. |
28 |
|
29 |
* `cvs diff' no longer splits its arguments on spaces. |
30 |
|
31 |
* Thanks to an old report and patch from Stewart Brodie <stewart@eh.org>, a |
32 |
potential crash in response to a corrupt RCS file has been fixed. |
33 |
|
34 |
* CVS now locks the history and val-tags files before writing to them. |
35 |
Especially with large repositories, users should no longer see new warnings |
36 |
about corrupt history records when using the `cvs history' command. Existing |
37 |
corrupt history records will still need to be removed manually. val-tags |
38 |
corruption should have had less obvious effects, but removing the |
39 |
CVSROOT/val-tags file and allowing a 1.11.21 or later version of CVS to |
40 |
regenerate it may eliminate a few odd behaviors and possibly cause a slight |
41 |
speed up of read transactions in large repositories over time. |
42 |
|
43 |
BUILD ISSUES |
44 |
|
45 |
* The RPM spec file works again with the most modern versions of `rpm'. |
46 |
|
47 |
DEVELOPER ISSUES |
48 |
|
49 |
* We've standardized on Automake 1.9.6 to get some at new features that make |
50 |
our jobs easier. See the HACKING file for more on using the autotools with |
51 |
CVS. |
52 |
|
53 |
Changes from 1.11.19 to 1.11.20: |
54 |
******************************** |
55 |
|
56 |
SERVER SECURITY FIXES |
57 |
|
58 |
* Thanks to a report from Alen Zukich <alen.zukich@klocwork.com>, several minor |
59 |
security issues have been addressed. One was a buffer overflow that is |
60 |
potentially serious but which may not be exploitable, assigned CAN-2005-0753 |
61 |
by the Common Vulnerabilities and Exposures Project |
62 |
<http://www.cve.mitre.org>. Other fixes resulting from Alen's report include |
63 |
repair of an arbitrary free with no known exploit and several plugged memory |
64 |
leaks and potentially freed NULL pointers which may have been exploitable for |
65 |
a denial of service attack. |
66 |
|
67 |
* Thanks to a report from Craig Monson <craig@malachiarts.com>, minor |
68 |
potential vulnerabilities in the contributed Perl scripts have been fixed. |
69 |
The confirmed vulnerability could allow the execution of arbitrary code on |
70 |
the CVS server, but only if a user already had commit access and if one of |
71 |
the contrib scripts was installed improperly, a condition which should have |
72 |
been quickly visible to any administrator. The complete description of the |
73 |
problem is here: <https://ccvs.cvshome.org/issues/show_bug.cgi?id=224>. If |
74 |
you were making use of any of the contributed trigger scripts on a CVS |
75 |
server, you should probably still replace them with the new versions, to be |
76 |
on the safe side. |
77 |
|
78 |
Unfortunately, our fix is incomplete. Taint-checking has been enabled in all |
79 |
the contributed Perl scripts intended to be run as trigger scripts, but no |
80 |
attempt has been made to ensure that they still run in taint mode. You will |
81 |
most likely have to tweak the scripts in some way to make them run. Please |
82 |
send any patches you find necessary back to <bug-cvs@nongnu.org> so that we |
83 |
may again ship fully enabled scripts in the future. |
84 |
|
85 |
You should also make sure that any home-grown Perl scripts that you might |
86 |
have installed as CVS triggers also have taint-checking enabled. This can be |
87 |
done by adding `-T' on the scripts' #! lines. Please try running |
88 |
`perldoc perlsec' if you would like more information on general Perl security |
89 |
and taint-checking. |
90 |
|
91 |
BUG FIXES |
92 |
|
93 |
* Thanks to a report and a patch from Georg Scwharz <georg.scwarz@freenet.de> |
94 |
CVS now builds without error on IRIX 5.3 |
95 |
|
96 |
DEVELOPER ISSUES |
97 |
|
98 |
* We've standardized on Automake 1.9.5 to get some at new features that make |
99 |
our jobs easier. See the HACKING file for more on using the autotools with |
100 |
CVS. |
101 |
|
102 |
Changes from 1.11.18 to 1.11.19: |
103 |
******************************** |
104 |
|
105 |
BUG FIXES |
106 |
|
107 |
* Thanks to a patch from Jim Hyslop <jhyslop@ieee.org>, issuing |
108 |
'cvs watch on' or 'cvs watch off' in an empty directory no longer |
109 |
clears any watchers in that directory. |
110 |
|
111 |
* An intermittant assertion failure in checkout has been fixed. |
112 |
|
113 |
* Thanks to a report from Chris Bohn <cbohn@rrinc.com>, all the source files |
114 |
needed for the Windows "red file" fix are actually included in the |
115 |
distribution. |
116 |
|
117 |
* Misc bug and documentation fixes. |
118 |
|
119 |
Changes from 1.11.17 to 1.11.18: |
120 |
******************************** |
121 |
|
122 |
BUG FIXES |
123 |
|
124 |
* Thanks to a report from Gottfried Ganssauge <gotti@cvshome.org>, CVS no |
125 |
longer exits when it encounters links pointing to paths containing more |
126 |
than 128 characters. |
127 |
|
128 |
* Thanks to a report from Dan Peterson <dbpete@aol.com>, error messages from |
129 |
GSSAPI servers are no longer truncated. |
130 |
|
131 |
* Thanks to a report from Dan Peterson <dbpete@aol.com>, attempts to resurrect |
132 |
a file on the trunk that was added on a branch no longer causes an assertion |
133 |
failure. |
134 |
|
135 |
* Thanks to a report from Dan Peterson <dbpete@aol.com>, imports to branches |
136 |
like "1.1." no longer create corrupt RCS archives. |
137 |
|
138 |
* Thanks to a report from Chris Bohn <cbohn@rrinc.com>, links from J.C. Hamlin |
139 |
<jchamlin@ibsys.com>, and code posted by Jonathan Gilligan, we think we have |
140 |
finally corrected the Windows "red-file" (daylight savings time) bug once and |
141 |
for all. |
142 |
|
143 |
* Thanks to a patch from Jeroen Ruigrok/asmodai <asmodai@wxs.nl>, the |
144 |
log_accum.pl script should no longer elicit warnings from Perl 5.8.5. |
145 |
|
146 |
* The r* commands (rlog, rls, etc.) can once again handle requests to run |
147 |
against the entire repository (e.g. `cvs rlog .'). Thanks go to Dan Peterson |
148 |
<dbpete@aol.com> for the report. |
149 |
|
150 |
* A problem where the attempted access of files via tags beginning with spaces |
151 |
could cause the CVS server to hang has been fixed. This was a particular |
152 |
problem with WinCVS clients because users would sometimes accidentally |
153 |
include spaces in tags pasted into a dialog box. This fix also altered some |
154 |
of the error messages generated by the use of invalid tags. Thanks go to Dan |
155 |
Peterson <dbpete@aol.com> for the report. |
156 |
|
157 |
* Thanks to James E Wilson <wilson@specifixinc.com> for a bug fix to |
158 |
modules processing "gcc-core -a !gcc/f gcc" will no longer exclude |
159 |
gcc/fortran by mistake. |
160 |
|
161 |
* Thanks to Conrad Pino <conrad@pino.com>, the Windows build works once again. |
162 |
|
163 |
* Misc updates to the manual. |
164 |
|
165 |
DEVELOPER ISSUES |
166 |
|
167 |
* We've standardized on Automake 1.9.3 to get some at new features that make |
168 |
our jobs easier. See the note below on the Autoconf upgrade for more |
169 |
details. |
170 |
|
171 |
* We've standardized on Autoconf version 2.59 to get presumed bug fixes and |
172 |
features, but nothing specific. Mostly, once we decide to upgrade one of the |
173 |
autotools we just figure it'll save time later to grab the most current |
174 |
versions of the others too. See the HACKING file for more on using the |
175 |
autotools with CVS. |
176 |
|
177 |
Changes from 1.11.16 to 1.11.17: |
178 |
******************************** |
179 |
|
180 |
SERVER SECURITY FIXES |
181 |
|
182 |
* Thanks to Stefan Esser & Sebastian Krahmer, several potential security |
183 |
problems have been fixed. The ones which were considered dangerous enough |
184 |
to catalogue were assigned issue numbers CAN-2004-0416, CAN-2004-0417, & |
185 |
CAN-2004-0418 by the Common Vulnerabilities and Exposures Project. Please |
186 |
see <http://www.cve.mitre.org> for more information. |
187 |
|
188 |
* A potential buffer overflow vulnerability in the server has been fixed. |
189 |
This addresses the Common Vulnerabilities and Exposures Project's issue |
190 |
#CAN-2004-0414. Please see <http://www.cve.mitre.org> for more information. |
191 |
|
192 |
Changes from 1.11.15 to 1.11.16: |
193 |
******************************** |
194 |
|
195 |
SERVER SECURITY FIXES |
196 |
|
197 |
* A potential buffer overflow vulnerability in the server has been fixed. |
198 |
Prior to this patch, a malicious client could potentially use carefully |
199 |
crafted server requests to run arbitrary programs on the CVS server machine. |
200 |
This addresses the Common Vulnerabilities and Exposures Project's issue |
201 |
#CAN-2004-0396. Please see <http://www.cve.mitre.org> for more information. |
202 |
|
203 |
BUG FIXES |
204 |
|
205 |
* The Microsoft Visual C++ workspace and project files have been repaired and |
206 |
regenerated with MSVC++ 6.0. |
207 |
|
208 |
* The cvs.1 man page is now generated automatically from a section of the CVS |
209 |
Manual. |
210 |
|
211 |
* Thanks to a report from Mark Andrews at the Internet Systems Consortium, the |
212 |
:ext: connection method no longer relies on a transparent transport that uses |
213 |
an argument processor that can handle arbitrary ordering of options and other |
214 |
arguments when using a username other than the caller's. |
215 |
|
216 |
* Thanks to Ken Raeburn at MIT, directory deletion, whether via `cvs release' |
217 |
or empty directory pruning, now works on network shares under Windows XP. |
218 |
|
219 |
Changes from 1.11.14 to 1.11.15: |
220 |
******************************** |
221 |
|
222 |
SERVER SECURITY ISSUES |
223 |
|
224 |
* Piped checkouts of paths above $CVSROOT no longer work. Previously, clients |
225 |
could have requested the contents of RCS archive files anywhere on a CVS |
226 |
server. This addresses CVE issue CAN-2004-0405. Please see |
227 |
<http://www.cve.mitre.org> for more information. |
228 |
|
229 |
CLIENT SECURITY ISSUES |
230 |
|
231 |
* Clients now check paths from the server to verify that they are within one of |
232 |
the sandboxes the user requested be updated. Previously, a trojan server |
233 |
could have written or overwritten files anywhere the user had access, |
234 |
presenting a serious security risk. This addresses CVE issue CAN-2004-1080. |
235 |
Please see <http://www.cve.mitre.org> for more information. |
236 |
|
237 |
GENERAL USER ISSUES |
238 |
|
239 |
* Method options (used by WinCVS & CVS 1.12.7+) in CVSROOTs are ignored. |
240 |
|
241 |
* Configure no longer checks the $TMPDIR, $TMP, & $TEMP variables to set the |
242 |
default temporary directory. |
243 |
|
244 |
* CVS on Cygwin correctly handles X:\ style paths. |
245 |
|
246 |
* Import now uses backslash rather than slash on Windows when checking for |
247 |
"CVS" directories to ignore in import commands. |
248 |
|
249 |
* Relative paths containing up-references (`..') should now work in |
250 |
client/server mode (client fix). |
251 |
|
252 |
* A race condition between the ordering of messages from CVS and messages from |
253 |
called scripts in client/server mode has been removed (server fix). |
254 |
|
255 |
* Resurrected files now get their modes and timestamps set correctly and a |
256 |
longstanding bug involving resurrection of an uncommitted removal has been |
257 |
fixed (server fix). |
258 |
|
259 |
* Some resurrection (cvs add) status messages have changed slightly. |
260 |
|
261 |
* `cvs release' now works with Kerberos or GSSAPI encryption enabled (server |
262 |
fix). |
263 |
|
264 |
* File resurrection from a previously existing revision no longer just reports |
265 |
that it works (server fix). |
266 |
|
267 |
* Misc error & status message corrections. |
268 |
|
269 |
* Diffing of locally added files against arbitrary revisions in an RCS archive |
270 |
is now allowed when a file of the same name exists or used to exist on some |
271 |
branch (server fix). |
272 |
|
273 |
* Misc documentation fixes. |
274 |
|
275 |
Changes from 1.11.13 to 1.11.14: |
276 |
******************************** |
277 |
|
278 |
GENERAL USER ISSUES |
279 |
|
280 |
* Imports will now always ignore directories and files named `CVS' to avoid |
281 |
violating assumptions made by other parts of CVS. |
282 |
|
283 |
* A problem with `cvs release' of subdirs that could corrupt CVS/Entries files |
284 |
has been fixed (client/server). |
285 |
|
286 |
* The CVS server's protocol check for unused data from the client is no longer |
287 |
called automatically at program exit in order to avoid potential recursive |
288 |
calls to error when the first close is due to memory allocation or similar |
289 |
problems that cause calls to error() to fail. The check is still made when |
290 |
the server program exits normally. |
291 |
|
292 |
* The spec file has been updated to work with more recent versions of RPM. |
293 |
|
294 |
* Several memory leaks have been plugged (client/server). |
295 |
|
296 |
DEVELOPER ISSUES |
297 |
|
298 |
* Misc cosmetic, readability, and commenting fixes. |
299 |
|
300 |
Changes from 1.11.12 to 1.11.13: |
301 |
******************************** |
302 |
|
303 |
GENERAL USER ISSUES |
304 |
|
305 |
* Several memory leaks have been plugged. |
306 |
|
307 |
* Thanks to Ville Skyttä the man page has a few less spelling errors and is |
308 |
slightly more accurate. |
309 |
|
310 |
* An unlikely potential segfault when using the :fork: connection method has |
311 |
been fixed. |
312 |
|
313 |
* The CVS server has had the protocol check for unused data from the client |
314 |
partially restored. |
315 |
|
316 |
* A fix has been included that should avoid a very rare race condition that |
317 |
could cause a CVS server to exit with a "broken pipe" message. |
318 |
|
319 |
* A minor problem with the nmake build file that was preventing the source from |
320 |
compiling under Windows has been fixed. |
321 |
|
322 |
* Tests have been added to the test suite. |
323 |
|
324 |
DEVELOPER ISSUES |
325 |
|
326 |
* Misc cosmetic, readability, and commenting fixes. |
327 |
|
328 |
Changes from 1.11.11 to 1.11.12: |
329 |
******************************** |
330 |
|
331 |
GENERAL USER ISSUES |
332 |
|
333 |
* Infinite alias loops in the modules file are now checked for and avoided. |
334 |
|
335 |
* Clients on case insensitive systems now preserve the case of directories in |
336 |
CVS/Entries, in addition to files, for use in communications with the CVS |
337 |
server. |
338 |
|
339 |
* Some previously untested behavior is now being tested. |
340 |
|
341 |
* Server support for case insensitive clients has been removed in favor of the |
342 |
server relying on the client to preserve the case of checked out files, as |
343 |
per the CVS client/server protocol spec. This is not as drastic as it may |
344 |
sound, as all of the current tests still pass without modification when run |
345 |
from a case insensitive client to a case sensitive server. This change |
346 |
disables little previous functionality, enables access to more of the |
347 |
possible namespace to users on systems with case insensitive file systems, |
348 |
fixes a few bugs, and in the end this should provide a major stability |
349 |
improvement. |
350 |
|
351 |
* Thanks to Ville Skyttä the man page is a bit more accurate. |
352 |
|
353 |
* Thanks to Ville Skyttä some unused variables were removed from the log_accum |
354 |
Perl script in contrib. |
355 |
|
356 |
* Thanks to Alexey Mahotkin, a bug that prevented CVS from being compiled with |
357 |
Kerberos 4 authentication enabled has been fixed. |
358 |
|
359 |
* A minor bug that caused CVS to fail to report an inifinte alias loop in the |
360 |
modules file when portions of the alias definition contained trailing slashes |
361 |
has been fixed. |
362 |
|
363 |
* A bug in the gzip code that could cause heap corruption and segfaults in CVS |
364 |
servers talking to clients less than 1.8 and some modern third-party CVS |
365 |
clients has been fixed. |
366 |
|
367 |
* mktemp.sh is now included with the source distribution so that the rcs2log |
368 |
and cvsbug executables may be run on systems which do not contain an |
369 |
implementation of mktemp. |
370 |
|
371 |
* Misc documentation fixes. |
372 |
|
373 |
Changes from 1.11.10 to 1.11.11: |
374 |
******************************** |
375 |
|
376 |
SERVER SECURITY ISSUES |
377 |
|
378 |
* pserver can no longer be configured to run as root via the |
379 |
$CVSROOT/CVSROOT/passwd file, so if your passwd file is compromised, it no |
380 |
longer leads directly to a root hack. Attempts to root will also be logged |
381 |
via the syslog. |
382 |
|
383 |
Changes from 1.11.9 to 1.11.10: |
384 |
******************************* |
385 |
|
386 |
SERVER SECURITY ISSUES |
387 |
|
388 |
* Malformed module requests could cause the CVS server to attempt to create |
389 |
directories and possibly files at the root of the filesystem holding the CVS |
390 |
repository. Filesystem permissions usually prevent the creation of these |
391 |
misplaced directories, but nevertheless, the CVS server now rejects the |
392 |
malformed requests. |
393 |
|
394 |
GENERAL USER ISSUES |
395 |
|
396 |
* Case insensitive clients using a case sensitive server can now use a |
397 |
`cvs rm -f file; cvs add FILE' command sequence to add a file with the same |
398 |
name in a new case. |
399 |
|
400 |
* CVSROOTs which contain a symlink to a real repository should work. |
401 |
|
402 |
* The configure script now tests whether it is building CVS on a case |
403 |
insensitive file system. If it is, CVS assumes that all file systems on this |
404 |
platform will be case insensitive. This is useful for getting the case |
405 |
insensitivity flag set correctly when compiling on Mac OS X and under Cygwin |
406 |
on Windows. Autodetection can be overridden using the |
407 |
--disable-case-sensitivity and --enable-case-sensitivity arguments to |
408 |
configure. |
409 |
|
410 |
* A behavior change in `cvs up -jrev1 -jrev2' for modified files with a base |
411 |
revision of rev2 (ie, checked-out version matches rev2 and file has been |
412 |
modified). The operation is no longer ignored and instead is passed to |
413 |
diff3. This will potentially re-apply the diffs between the two revisions to |
414 |
a modified local file. Status messages like from a standard merge have also |
415 |
been added when the file would not or does not change due to this merge |
416 |
request ("[file] already contains the changes between [revisions]..."). |
417 |
|
418 |
* A bug which could stop `cvs admin -mTAG:message' from recursing has been |
419 |
fixed. |
420 |
|
421 |
* Misc documentation cleanup and fixes. |
422 |
|
423 |
* Some of the contrib scripts, some of the documentation, and sanity.sh were |
424 |
modified to use and recommend more portable commands rather than using and |
425 |
recommending commands which were not compatible with the POSIX 1003.1-2001 |
426 |
specification. |
427 |
|
428 |
DEVELOPER ISSUES |
429 |
|
430 |
* A new set of tests to test issues specific to case insensitive clients and |
431 |
servers has also been added. |
432 |
|
433 |
* Support has been added to the test suite to support testing over a :ext: link |
434 |
to another machine, subject to some stringent requirements. This support can |
435 |
be used, for instance, to test the operation of a case insensitive client |
436 |
against a case sensitive server. Please see the comments in TEST and the |
437 |
src/sanity.sh test script itself for more. |
438 |
|
439 |
* We've standardized on Automake 1.7.9 to get a bug fix. See the note below |
440 |
on the Autoconf upgrade for more details. |
441 |
|
442 |
* We've standardized on Autoconf version 2.58 to avoid a bug and get at a few |
443 |
new macros. Again, this should only really affect developers, though it is |
444 |
possible that CVS will now compile on a few new platforms. Please see the |
445 |
section of the INSTALL file about using the autotools if you are compiling |
446 |
CVS yourself. |
447 |
|
448 |
Changes from 1.11.8 to 1.11.9: |
449 |
|
450 |
* CVS now knows how to report, as well as record, `P' record types. |
451 |
|
452 |
* When running the `cvs history' command, clients will now send the |
453 |
long-accepted `-e' option, for all records, rather than explicitly requesting |
454 |
`P' record types, a request which servers prior to 1.11.7 will reject with a |
455 |
fatal error message. |
456 |
|
457 |
* A problem with locating files requested by case insensitive clients which was |
458 |
accidentally introduced in 1.11.6 as part of a fix for a data loss problem |
459 |
involving `cvs add's from case insensitive clients has been fixed. The |
460 |
relevant error message was `cvs [<command> aborted]: filE,v is ambiguous; |
461 |
could mean FILE,v or file,v'. |
462 |
|
463 |
* Attempts to use the global `-l' option, removed from both client and server |
464 |
as of version 1.11.6, will now elicit a warning rather than a fatal error |
465 |
from the server. |
466 |
|
467 |
Changes from 1.11.7 to 1.11.8: |
468 |
|
469 |
* A problem in the CVS getpass library that could cause passwords to echo on |
470 |
some systems has been fixed. |
471 |
|
472 |
Changes from 1.11.6 to 1.11.7: |
473 |
|
474 |
* A segfault that could occur in very rare cases where the stat of a file |
475 |
failed during a diff has been fixed. |
476 |
|
477 |
* Any user with write privleges to the CVSROOT/checkoutlist file could pass |
478 |
arbitrary format strings directly through to a printf function. This was |
479 |
probably bad and has been fixed. White space at the beginning of error strings |
480 |
in checkoutlist is now ignored properly. |
481 |
|
482 |
* In client/server mode, most messages from CVS now contain the actual |
483 |
command name rather than the generic "server". |
484 |
|
485 |
* A long-standing bug that prevented most client/server updates from being |
486 |
logged in the history file has been fixed. |
487 |
|
488 |
* Updates done via a patch ("P" status) are now logged in the history file |
489 |
by default and the corresponding "P" history record type is now documented. |
490 |
If you're setting the LogHistory option in your CVSROOT/config file, you may |
491 |
want to add "P" to the list of record types. |
492 |
|
493 |
* CVS now will always compile and its own getpass() function (originally from |
494 |
GNULIB) in favor of any system one that may exist. This avoids some problems |
495 |
with long passwords on some systems and updates us to POSIX.2 compliance, since |
496 |
getpass() was removed from the POSIX.2 specification. |
497 |
|
498 |
* A bug that allowed a write lock to be created in a directory despite |
499 |
there being existing read locks when using LockDir in CVSROOT/config has |
500 |
been fixed. |
501 |
|
502 |
* A bug with short patches (`rdiff -s') which caused rdiff to sometimes report |
503 |
differences that did not exist has been fixed. |
504 |
|
505 |
* Some minor corrections were made to the diff code to keep diff & rdiff from |
506 |
printing diff headers with empty change texts when two files have different |
507 |
revision numbers but the same content. |
508 |
|
509 |
* The global '-l' option, which suppressed history logging, has been removed |
510 |
from both client and server. |
511 |
|
512 |
Changes from 1.11.5 to 1.11.6: |
513 |
|
514 |
* A warning message is now issued if an administrative file contains |
515 |
more than one DEFAULT entry. |
516 |
|
517 |
* An error running a verifymsg script (such as referencing an unset user |
518 |
variable or the script not existing) now causes the verification to |
519 |
fail. |
520 |
|
521 |
* Errors in administrative files commands (like unset user variables) |
522 |
are no longer reported unless the command is actually executed. |
523 |
|
524 |
* When a file is initially checked out, its last access time is now set |
525 |
to the current time rather than being set to the time the file was last |
526 |
checked in like the modification time is. |
527 |
|
528 |
* The Checkin.prog and Update.prog functionality has been removed. This |
529 |
fuctionality previously allowed executables to be specified in the modules file |
530 |
to be run at update and checkin time, but users could edit these files on a per |
531 |
workspace basis, creating a security hole. |
532 |
|
533 |
* contrib/rcs2log and src/cvsbug now use the BSD mktemp program to create |
534 |
their temp files and directories on systems which provide it. |
535 |
|
536 |
* Corrected the path in a failed write error message. |
537 |
|
538 |
* Autoconf and Automake are no longer run automatically unless you run |
539 |
configure with --enable-maintainer-mode. Accordingly, noautomake.sh is |
540 |
no longer needed and has been removed. |
541 |
|
542 |
* We've standardized on Automake version 1.7.5 and Autoconf version 2.57 to get |
543 |
at a few new macros. Again, this should only really affect developers. See |
544 |
the section of the INSTALL file about using the autotools if you are compiling |
545 |
CVS yourself. |
546 |
|
547 |
Changes from 1.11.4 to 1.11.5: |
548 |
|
549 |
* Fixed a security hole in the CVS server by which users with read only access |
550 |
could gain write access. This issue does not affect client builds. The |
551 |
Common Vulnerabilities and Exposures project (cve.mitre.org) has assigned the |
552 |
name CAN-2003-0015 to this issue. See |
553 |
<http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2003-0015> for more |
554 |
information. |
555 |
|
556 |
* Fixed some bugs where revision numbers starting with 0 (like 0.3) |
557 |
weren't correctly handled. (CVS doesn't normally use such revision |
558 |
numbers, but users may be able to force it to do so and old RCS files |
559 |
might.) |
560 |
|
561 |
Changes from 1.11.3 to 1.11.4: |
562 |
|
563 |
* Some minor changes to allow the code to compile on Windows platforms. |
564 |
|
565 |
Changes from 1.11.2 to 1.11.3: |
566 |
|
567 |
* The tag/rtag code has been fixed to once again lock just a single |
568 |
directory at a time. |
569 |
|
570 |
* There was a bug where certain error conditions could cause the server |
571 |
to go into an infinite loop. There was also a bug that caused a |
572 |
compressed connection from an older client to hang on shutdown. These |
573 |
bugs have been fixed. |
574 |
|
575 |
* Fixed a bug that caused the server to reject most watch commands. |
576 |
|
577 |
* When waiting for another user's lock, the message timestamps are now |
578 |
in UTC rather than the server's local time. |
579 |
|
580 |
* The options.h file is no longer used. This fixes a bug that occurred when |
581 |
1.11.2 was compiled on Windows platforms. |
582 |
|
583 |
* We've standardized on Automake version 1.6.3 and Autoconf version 2.53. |
584 |
They are cleaner, less bug prone, and will hopfully allow me to start updating |
585 |
sanity.sh to use Autotest and Autoshell. Again, this should only really affect |
586 |
developers. See the section of the INSTALL file about using the autotools if |
587 |
you are compiling CVS yourself. |
588 |
|
589 |
* Fixed a bug in the log/rlog code when a revision range crosses a |
590 |
branch point. |
591 |
|
592 |
* Fixed a bug where filenames starting with - would be misinterpreted as |
593 |
options when using client/server mode. |
594 |
|
595 |
Changes from 1.11.1p1 to 1.11.2: |
596 |
|
597 |
* There is a new feature, enabled by RereadLogAfterVerify in CVSROOT/config, |
598 |
which tells CVS to reread the log message after running the verifymsg |
599 |
script. This allows the verifymsg script to reformat or otherwise |
600 |
modify the log message. |
601 |
|
602 |
* The interpretation of revision ranges using :: in "log" and "rlog" |
603 |
has changed: a::b now excludes the log message from revision a but |
604 |
includes the log message from revision b. Also, revision ranges that |
605 |
cross branch points should now work. |
606 |
|
607 |
* zlib has been updated to version 1.4. There is a security advisory |
608 |
out in regards to 1.3. This should fix that problem. |
609 |
|
610 |
* The "log" and "rlog" commands now have a -S option to suppress the |
611 |
header information when no revisions are selected. |
612 |
|
613 |
* A serious error that allowed read-only users to tag files has been |
614 |
corrected. |
615 |
|
616 |
* The "annotate" command will no longer annotate binary files unless |
617 |
you specify the new -F option. |
618 |
|
619 |
* The "tag" and "rtag" commands will no longer move or delete branch |
620 |
tags unless you use the new -B option. (This prevents accidental |
621 |
changes to branch tags that are hard to undo.) |
622 |
|
623 |
* We've standardized on the 1.5 Automake release for the moment. Again, this |
624 |
should only really affect developers. See the section of the INSTALL file |
625 |
about using the autotools if you are compiling CVS yourself. |
626 |
|
627 |
Changes from 1.11.1 to 1.11.1p1: |
628 |
|
629 |
* Read only access was broken - now fixed. |
630 |
|
631 |
Changes from 1.11 to 1.11.1: |
632 |
|
633 |
* There was a locking bug in the tag/rtag code that could lose changes |
634 |
made to a file while the tag operation was in progress. This has been |
635 |
fixed, but all of the directories being tagged are now locked for the |
636 |
entire duration of the tag operation rather than only one directory at a |
637 |
time. |
638 |
|
639 |
* The "cvs diff" command now accepts the -y/--side=by-side and -T/ |
640 |
--initial-tab options. (To use these options with a remote repository, |
641 |
both the client and the server must support them.) |
642 |
|
643 |
* The expansion of the loginfo format string has changed slightly. |
644 |
Previously, the expansion was surrounded by single quotes ('); if a file |
645 |
name contained a single quote character, the string would not be parsed |
646 |
as a single entity by the Unix shell (and it would not be possible to |
647 |
parse it unambiguously). Now the expansion is surrounded by double |
648 |
quotes (") and any embedded dollar signs ($), backticks (`), backslashes |
649 |
(\), and double quotes are preceded by a backslash. This is parsed as a |
650 |
single entity by the shell reguardless of content. This change should |
651 |
not be noticable unless you're not using a Unix shell or you have |
652 |
embedded the format string inside a double quoted string. |
653 |
|
654 |
* There was a bug in the diff code which sometimes caused conflicts to |
655 |
be flagged which shouldn't have been. This has been fixed. |
656 |
|
657 |
* New "cvs rlog" and "cvs rannotate" commands have been added to get log |
658 |
messages and annotations without having to have a checked-out copy. |
659 |
|
660 |
* Exclusive revision ranges have been added to "cvs log" using :: |
661 |
(similar to "cvs admin -o"). |
662 |
|
663 |
* The VMS client now accepts wildcards if you're running VMS 7.x. |
664 |
|
665 |
* ZLIB has been updated to version 1.1.3, the most current version. This |
666 |
includes mostly some optimizations and minor bug fixes. |
667 |
|
668 |
* The ~/.cvspass file has a slightly modified format. CVSROOTs are now |
669 |
stored in a new canonical form - hostnames are now case insensitive and |
670 |
port numbers are always stored in the new format. Until a new login for |
671 |
a particular CVSROOT is performed with the new version of CVS, new and |
672 |
old versions of CVS should interoperate invisibly. After that point, an |
673 |
extra login using the old version of CVS may be necessary to continue to |
674 |
allow the new and old versions of CVS to interoperate using the same |
675 |
~/.cvspass file and CVSROOT. The exception to this rule occurs when the |
676 |
CVSROOTs used with the different versions use case insensitively |
677 |
different hostnames, for example, "empress", and "empress.2-wit.com". |
678 |
|
679 |
* A password and a port number may now be specified in CVSROOT for |
680 |
pserver connections. The new format is: |
681 |
|
682 |
:pserver:[[user][:password]@]host[:[port]]/path |
683 |
|
684 |
Note that passwords specified in a checkout command will be saved in the |
685 |
clear in the CVS/Root file in each created directory, so this is not |
686 |
recommended, except perhaps when accessing anonymous repositories or the |
687 |
like. |
688 |
|
689 |
* The distribution has been converted to use Automake. This shouldn't |
690 |
affect most users except to ease some portability concerns, but if you |
691 |
are building from the repository and encounter problems with the |
692 |
makefiles, you might try running ./noautomake.sh after a fresh update |
693 |
-AC. |
694 |
|
695 |
Changes from 1.10 to 1.11: |
696 |
|
697 |
* The "cvs update" command has a new -C option to get clean copies from |
698 |
the repository, abandoning any local changes. |
699 |
|
700 |
* The new "cvs version" command gives a short version message. If |
701 |
the repository is remote, both the client and server versions are |
702 |
reported. |
703 |
|
704 |
* "cvs admin -t" now works correctly in client/server mode. |
705 |
|
706 |
* The "cvs history" command output format has changed -- the date |
707 |
now includes the year and is given is ISO 8601 format (yyyy-mm-dd). |
708 |
Also, the new LogHistory option in CVSROOT/config can be used to |
709 |
control what information gets recorded in the log file and code has |
710 |
been added to record file removals. |
711 |
|
712 |
* The buggy PreservePermissions code has been disabled. |
713 |
|
714 |
* Anonymous read-only access can now be done without requiring a |
715 |
password. On the server side, simply give that user (presumably |
716 |
`anonymous') an empty password in the CVSROOT/passwd file, and then |
717 |
any received password will authenticate successfully. |
718 |
|
719 |
* There is a new access method :fork: which is similar to :local: |
720 |
except that it is implemented via the CVS remote protocol, and thus |
721 |
has a somewhat different set of quirks and bugs. |
722 |
|
723 |
* The -d command line option no longer updates the CVS/Root file. For |
724 |
one thing, the CVS 1.9/1.10 behavior never had updated CVS/Root in |
725 |
subdirectories, and for another, it didn't seem that popular in |
726 |
general. So this change restores the CVS 1.8 behavior (which is also |
727 |
the CVS 1.9/1.10 behavior if the environment variable |
728 |
CVS_IGNORE_REMOTE_ROOT is set; with this change, |
729 |
CVS_IGNORE_REMOTE_ROOT no longer has any effect). |
730 |
|
731 |
* It is now possible for a single CVS command to recurse into several |
732 |
CVS roots. This includes roots which are located on several servers, |
733 |
or which are both remote and local. CVS will make connections to as |
734 |
many servers as necessary. |
735 |
|
736 |
* It is now possible to put the CVS lock files in a directory |
737 |
set by the new LockDir option in CVSROOT/config. The default |
738 |
continues to be to put the lock files in the repository itself. |
739 |
|
740 |
Changes from 1.9 to 1.10: |
741 |
|
742 |
* A bug was discovered in the -t/-f wrapper support that can cause |
743 |
serious data loss. Because of this (and also the fact that it doesn't |
744 |
work at all in client/server mode), the -t/-f wrapper code has been |
745 |
disabled until it can be fixed. |
746 |
|
747 |
* There is a new feature, enabled by TopLevelAdmin in CVSROOT/config, |
748 |
which tells CVS to modify the behavior of the "checkout" command. The |
749 |
command now creates a CVS directory at the top level of the new |
750 |
working directory, in addition to CVS directories created within |
751 |
checked-out directories. See the Cederqvist for details. |
752 |
|
753 |
* There is an optional set of features, enabled by PreservePermissions |
754 |
in CVSROOT/config, which allow CVS to store unix-specific file |
755 |
information such as permissions, file ownership, and links. See the |
756 |
Cederqvist for details. |
757 |
|
758 |
* One can now authenticate and encrypt using the GSSAPI network |
759 |
security interface. For details see the Cederqvist's description of |
760 |
specifying :gserver: in CVSROOT, and the -a global option. |
761 |
|
762 |
* All access to RCS files is now implemented internally rather than by |
763 |
calling RCS programs. The main user-visible consequence of this is |
764 |
that there is no need to worry about making sure that CVS finds the |
765 |
correct version of RCS. The -b global option and the RCSBIN setting |
766 |
in CVSROOT/config are still accepted but don't do anything. The |
767 |
$RCSBIN internal variable in administrative files is no longer |
768 |
accepted. |
769 |
|
770 |
* There is a new syntax, "cvs admin -orev1::rev2", which collapses the |
771 |
revisions between rev1 and rev2 without deleting rev1 or rev2 |
772 |
themselves. |
773 |
|
774 |
* There is a new administrative file CVSROOT/config which allows one |
775 |
to specify miscellaneous aspects of CVS configuration. Currently |
776 |
supported here: |
777 |
|
778 |
- SystemAuth, allows you to prevent pserver from checking for system |
779 |
usernames/passwords. |
780 |
|
781 |
For more information see the "config" section of cvs.texinfo. |
782 |
|
783 |
* When setting up the pserver server, one now must specify the |
784 |
allowable CVSROOT directories in inetd.conf. See the Password |
785 |
authentication server section of cvs.texinfo for details. Note that |
786 |
this implies that everyone who is running a pserver server must edit |
787 |
inetd.conf when upgrading their CVS. |
788 |
|
789 |
* The client no longer needs an external patch program (assuming both |
790 |
the client and the server have been updated to the new version). |
791 |
|
792 |
* "cvs admin [options]" will now recurse. In previous versions of |
793 |
CVS, it was an error and one needed to specify "cvs admin [options] ." |
794 |
to recurse. This change brings admin in line with the other CVS |
795 |
commands. |
796 |
|
797 |
* New "logout" command to remove the password for a remote cvs |
798 |
repository from the cvspass file. |
799 |
|
800 |
* Read-only repository access is implemented for the |
801 |
password-authenticated server (other access methods are just governed |
802 |
by Unix file permissions, since they require login access to the |
803 |
repository machine anyway). See the "Repository" section of |
804 |
cvs.texinfo for details, including a discussion of security issues. |
805 |
Note that the requirement that read-only users be able to create locks |
806 |
and write the history file still applies. |
807 |
|
808 |
* There is a new administrative file verifymsg which is like editinfo |
809 |
but merely validates the message, rather than also getting it from the |
810 |
user. It therefore works with client/server CVS or if one uses the -m |
811 |
or -F options to commit. See the verifymsg section of cvs.texinfo for |
812 |
details. |
813 |
|
814 |
* The %s format formerly accepted in loginfo has been extended to |
815 |
formats such as %{sVv}, so that loginfo scripts have access to the |
816 |
version numbers being changed. See the Loginfo section of cvs.texinfo |
817 |
for details. |
818 |
|
819 |
* The postscript documentation (doc/cvs.ps) shipped with CVS is now |
820 |
formatted for US letter size instead of A4. This is not because we |
821 |
consider this size "better" than A4, but because we believe that the |
822 |
US letter version will print better on A4 paper than the other way |
823 |
around. |
824 |
|
825 |
* The "cvs export" command is now logged in the history file and there |
826 |
is a "cvs history -x E" command to select history file entries |
827 |
produced by export. |
828 |
|
829 |
* CVS no longer uses the CVS_PASSWORD environment variable. Storing |
830 |
passwords in cleartext in an environment variable is a security risk, |
831 |
especially since (on BSD variants) any user on the system can display |
832 |
any process's environment using 'ps'. Users should use the 'cvs |
833 |
login' command instead. |
834 |
|
835 |
|
836 |
Changes from 1.8 to 1.9: |
837 |
|
838 |
* Windows NT client should now work on Windows 95 as well. |
839 |
|
840 |
* New option "--help-synonyms" prints a list of all recognized command |
841 |
synonyms. |
842 |
|
843 |
* The "log" command is now implemented internally rather than via the |
844 |
RCS "rlog" program. The main user-visible consequence is that |
845 |
symbolic branch names now work (for example "cvs log -rbranch1"). |
846 |
Also, the date formats accepted by -d have changed. They previously |
847 |
had been a bewildering variety of poorly-documented date formats. Now |
848 |
they are the same as the date formats accepted by the -D options to |
849 |
the other CVS commands, which is also a (different) bewildering |
850 |
variety of poorly-documented date formats, but at least we are |
851 |
consistently bewildering :-). |
852 |
|
853 |
* Encryption is now supported over a Kerberos client/server |
854 |
connection. The new "-x" global option requests it. You must |
855 |
configure with the --enable-encryption option in order to enable |
856 |
encryption. |
857 |
|
858 |
* The format of the CVS commit message has changed slightly when |
859 |
committing changes on a branch. The tag on which the commit is |
860 |
ocurring is now reported correctly in all cases. |
861 |
|
862 |
* New flag -k in wrappers allows you to specify the keyword expansion |
863 |
mode for added files based on their name. For example, you can |
864 |
specify that files whose name matches *.exe are binary by default. |
865 |
See the Wrappers section of cvs.texinfo for more details. |
866 |
|
867 |
* Remote CVS with the "-z" option now uses the zlib library (included |
868 |
with CVS) to compress all communication between the client and the |
869 |
server, rather than invoking gzip on each file separately. This means |
870 |
that compression is better and there is no need for an external gzip |
871 |
program (except to interoperate with older version of CVS). |
872 |
|
873 |
* The "cvs rlog" command is deprecated and running it will print a |
874 |
warning; use the synonymous "cvs log" command instead. It is |
875 |
confusing for rlog to mean the same as log because some other CVS |
876 |
commands are in pairs consisting of a plain command which operates on |
877 |
a working directory and an "r" command which does not (diff/rdiff; |
878 |
tag/rtag). |
879 |
|
880 |
* "cvs diff" has a bunch of new options, mostly long options. Most of |
881 |
these work only if rcsdiff and diff support them, and are named the |
882 |
same as the corresponding options to diff. |
883 |
|
884 |
* The -q and -Q command options to "cvs diff" were removed (use the |
885 |
global options instead). This brings "cvs diff" into line with the |
886 |
rest of the CVS commands. |
887 |
|
888 |
* The "annotate" command can now be used to annotate a revision other |
889 |
than the head revision on the trunk (see the -r, -D, and -f options in |
890 |
the annotate node of cvs.texinfo for details). |
891 |
|
892 |
* The "tag" command has a new option "-c" which checks that all files |
893 |
are not locally modified before tagging. |
894 |
|
895 |
* The -d command line option now overrides the cvsroot setting stored |
896 |
in the CVS/Root file in each working directory, and specifying -d will |
897 |
cause CVS/Root to be updated. |
898 |
|
899 |
* Local (non-client/server) CVS now runs on Windows NT. See |
900 |
windows-NT/README for details. |
901 |
|
902 |
* The CVSROOT variable specification has changed to support more |
903 |
access methods. In addition to "pserver," "server" (internal rsh |
904 |
client), "ext" (external rsh client), "kserver" (kerberos), and |
905 |
"local" (local filesystem access) can now be specified. For more |
906 |
details on each method, see cvs.texinfo (there is an index entry for |
907 |
:local: and each of the other access methods). |
908 |
|
909 |
* The "login" command no longer prompts the user for username and |
910 |
hostname, since one will have to provide that information via the `-d' |
911 |
flag or by setting CVSROOT. |
912 |
|
913 |
Changes from 1.7 to 1.8: |
914 |
|
915 |
* New "cvs annotate" command to display the last modification for each |
916 |
line of a file, with the revision number, user checking in the |
917 |
modification, and date of the modification. For more information see |
918 |
the `annotate' node in cvs.texinfo. |
919 |
|
920 |
* The cvsinit shell script has been replaced by a cvs init command. |
921 |
The cvs init command creates some example administrative files which |
922 |
are similar to the files found in the examples directory (and copied |
923 |
by cvsinit) in previous releases. |
924 |
|
925 |
* Added the patterns *.olb *.exe _$* *$ to default ignore list. |
926 |
|
927 |
* There is now a $USER internal variable for *info files. |
928 |
|
929 |
* There is no longer a separate `mkmodules' program; the functionality |
930 |
is now built into `cvs'. If upgrading an old repository, it is OK to |
931 |
leave in the lines in the modules file which run mkmodules (the |
932 |
mkmodules actions will get done twice, but that is harmless); you will |
933 |
probably want to remove them once you are no longer using the old CVS. |
934 |
|
935 |
* One can now specify user variables in *info files via the |
936 |
${=varname} syntax; there is a -s global option to set them. See the |
937 |
Variables node in cvs.texinfo for details. |
938 |
|
939 |
Changes from 1.6 to 1.7: |
940 |
|
941 |
* The default ignore list has changed slightly: *.obj has been added |
942 |
and CVS* has been changed to CVS CVS.adm. |
943 |
|
944 |
* CVS now supports password authentication when accessing remote |
945 |
repositories; this is useful for sites that can't use rsh (because of |
946 |
a firewall, for example), and also don't have kerberos. See node |
947 |
"Password authenticated" (in "Remote repositories", in |
948 |
doc/cvs.texinfo) for more details. Note: This feature requires both |
949 |
the client and server to be upgraded. |
950 |
|
951 |
* Using the -kb option to specify binary files now works--most cases |
952 |
did not work before. See the "Binary files" section of |
953 |
doc/cvs.texinfo for details. |
954 |
|
955 |
* New developer communication features. See the "Watches" section of |
956 |
doc/cvs.texinfo for details. |
957 |
|
958 |
* RCS keyword "Name" supported for "cvs update -r <tag>" and "cvs |
959 |
checkout -r <tag>". |
960 |
|
961 |
* If there is a group whose name matches a compiled in value which |
962 |
defaults to "cvsadmin", only members of that group can use "cvs |
963 |
admin". This replaces the CVS_NOADMIN option. |
964 |
|
965 |
* CVS now sets the modes of files in the repository based on the |
966 |
CVSUMASK environment variable or a compiled in value defaulting to |
967 |
002. This way other developers will be able to access the files in |
968 |
the repository regardless of the umask of the developer creating them. |
969 |
|
970 |
* The command names in .cvsrc now match the official name of the |
971 |
command, not the one (possibly an alias) by which it was invoked. If |
972 |
you had previously relied on "cvs di" and "cvs diff" using different |
973 |
options, instead use a shell function or alias (for example "alias |
974 |
cvsdi='cvs diff -u'"). You also can specify global CVS options (like |
975 |
"-z") using the command name "cvs". |
976 |
|
977 |
Changes from 1.5 to 1.6: |
978 |
|
979 |
* Del updated the man page to include all of the new features |
980 |
of CVS 1.6. |
981 |
|
982 |
* "cvs tag" now supports a "-r | -D" option for tagging an already |
983 |
tagged revision / specific revision of a file. |
984 |
|
985 |
* There is a "taginfo" file in CVSROOT that supports filtering and |
986 |
recording of tag operations. |
987 |
|
988 |
* Long options support added, including --help and --version options. |
989 |
|
990 |
* "cvs release" no longer cares whether or not the directory being |
991 |
released has an entry in the `modules' file. |
992 |
|
993 |
* The modules file now takes a -e option which is used instead of -o |
994 |
for "cvs export". If your modules file has a -o option which you want |
995 |
to be used for "cvs export", change it to specify -e as well as -o. |
996 |
|
997 |
* "cvs export" now takes a -k option to set RCS keyword expansion. |
998 |
This way you can export binary files. If you want the old behavior, |
999 |
you need to specify -kv. |
1000 |
|
1001 |
* "cvs update", "cvs rdiff", "cvs checkout", "cvs import", "cvs |
1002 |
release", "cvs rtag", and "cvs tag" used to take -q and -Q options |
1003 |
after the command name (e.g. "cvs update -q"). This was confusing |
1004 |
because other commands, such as "cvs ci", did not. So the options |
1005 |
after the command name have been removed and you must now specify, for |
1006 |
example, "cvs -q update", which has been supported since CVS 1.3. |
1007 |
|
1008 |
* New "wrappers" feature. This allows you to set a hook which |
1009 |
transforms files on their way in and out of cvs (apparently on the |
1010 |
NeXT there is some particular usefulness in tarring things up in the |
1011 |
repository). It also allows you to declare files as merge-by-copy |
1012 |
which means that instead of trying to merge the file, CVS will merely |
1013 |
copy the new version. There is a CVSROOT/cvswrappers file and an |
1014 |
optionsl ~/.cvswrappers file to support this feature. |
1015 |
|
1016 |
* You can set CVSROOT to user@host:dir, not just host:dir, if your |
1017 |
username on the server host is different than on the client host. |
1018 |
|
1019 |
* VISUAL is accepted as well as EDITOR. |
1020 |
|
1021 |
* $CVSROOT is expanded in *info files. |
1022 |
|
1023 |
Changes from 1.4A2 to 1.5: |
1024 |
|
1025 |
* Remote implementation. This is very helpful when collaborating on a |
1026 |
project with someone across a wide-area network. This release can |
1027 |
also be used locally, like other CVS versions, if you have no need for |
1028 |
remote access. |
1029 |
|
1030 |
Here are some of the features of the remote implementation: |
1031 |
- It uses reliable transport protocols (TCP/IP) for remote repository |
1032 |
access, not NFS. NFS is unusable over long distances (and sometimes |
1033 |
over short distances) |
1034 |
- It transfers only those files that have changed in the repository or |
1035 |
the working directory. To save transmission time, it will transfer |
1036 |
patches when appropriate, and can compress data for transmission. |
1037 |
- The server never holds CVS locks while waiting for a reply from the client; |
1038 |
this makes the system robust when used over flaky networks. |
1039 |
|
1040 |
The remote features are documented in doc/cvsclient.texi in the CVS |
1041 |
distribution, but the main doc file, cvs.texinfo, has not yet been |
1042 |
updated to include the remote features. |
1043 |
|
1044 |
* Death support. See src/README-rm-add for more information on this. |
1045 |
|
1046 |
* Many speedups, especially from jtc@cygnus.com. |
1047 |
|
1048 |
* CVS 1.2 compatibility code has been removed as a speedup. If you |
1049 |
have working directories checked out by CVS 1.2, CVS 1.3 or 1.4A2 will |
1050 |
try to convert them, but CVS 1.5 and later will not (if the working |
1051 |
directory is up to date and contains no extraneous files, you can just |
1052 |
remove it, and then check out a new working directory). Likewise if |
1053 |
your repository contains a CVSROOT.adm directory instead of a CVSROOT |
1054 |
directory, you need to rename it. |
1055 |
|
1056 |
Fri Oct 21 20:58:54 1994 Brian Berliner <berliner@sun.com> |
1057 |
|
1058 |
* Changes between CVS 1.3 and CVS 1.4 Alpha-2 |
1059 |
|
1060 |
* A new program, "cvsbug", is provided to let you send bug reports |
1061 |
directly to the CVS maintainers. Please use it instead of sending |
1062 |
mail to the info-cvs mailing list. If your build fails, you may |
1063 |
have to invoke "cvsbug" directly from the "src" directory as |
1064 |
"src/cvsbug.sh". |
1065 |
|
1066 |
* A new User's Guide and Tutorial, written by Per Cederqvist |
1067 |
<ceder@signum.se> of Signum Support. See the "doc" directory. A |
1068 |
PostScript version is included as "doc/cvs.ps". |
1069 |
|
1070 |
* The Frequesntly Asked Questions file, FAQ, has been added to the |
1071 |
release. Unfortunately, its contents are likely out-of-date. |
1072 |
|
1073 |
* The "cvsinit" shell script is now installed in the $prefix/bin |
1074 |
directory like the other programs. You can now create new |
1075 |
CVS repositories with great ease. |
1076 |
|
1077 |
* Index: lines are now printed on output from 'diff' and 'rdiff', |
1078 |
in order to facilitate application of patches to multiple subdirs. |
1079 |
|
1080 |
* Support for a ~/.cvsrc file, which allows you to specify options |
1081 |
that are always supposed to be given to a specific command. This |
1082 |
feature shows the non-orthogonality of the option set, since while |
1083 |
there may be an option to turn something on, the option to turn |
1084 |
that same thing off may not exist. |
1085 |
|
1086 |
* You can now list subdirectories that you wish to ignore in a |
1087 |
modules listing, such as: |
1088 |
|
1089 |
gcc -a gnu/gcc, !gnu/gcc/testsuites |
1090 |
|
1091 |
which will check out everything underneath gnu/gcc, except |
1092 |
everything underneath gnu/gcc/testsuites. |
1093 |
|
1094 |
* It is now much harder to accidentally overwrite an existing tag |
1095 |
name, since attempting to move a tag name will result in a error, |
1096 |
unless the -F (force) flag is given to the tag subcommands. |
1097 |
|
1098 |
* Better error checking on matching of the repository used to |
1099 |
check code out from against the repository the current cvs |
1100 |
commnands would use. (Thanks to Mark Baushke <mdb@cisco.com>) |
1101 |
|
1102 |
* Better support for sites with multiple CVSROOT repositories has |
1103 |
been contributed. The file "CVS/Root" in your working directory |
1104 |
is created to hold the full path to the CVS repository and a |
1105 |
simple check is made against your current CVSROOT setting. |
1106 |
|
1107 |
* You can now specify an RCS keyword substitution value when you |
1108 |
import files into the repository. |
1109 |
|
1110 |
* Uses a much newer version of Autoconf, and conforms to the GNU |
1111 |
coding standards much more closely. No, it still doesn't have |
1112 |
long option names. |
1113 |
|
1114 |
* Code cleanup. Many passes through gcc -Wall helped to identify |
1115 |
a number of questionable constructs. Most arbitrary length limits |
1116 |
were removed. |
1117 |
|
1118 |
* Profiling to determine bottlenecks helped to identify the best |
1119 |
places to spend time speeding up the code, which was then done. A |
1120 |
number of performance enhancements in filename matching have sped |
1121 |
up checkouts. |
1122 |
|
1123 |
* Many more contributions have been added to the "contrib" |
1124 |
directory. See the README file in that directory for more |
1125 |
information. |
1126 |
|
1127 |
* "cvs commit" will try harder to not change the file's |
1128 |
modification time after the commit. If the file does not change |
1129 |
as a result of the commit operation, CVS will preserve the |
1130 |
original modification time, thus speeding up future make-type |
1131 |
builds. |
1132 |
|
1133 |
* "cvs commit" now includes any removed files in the (optional) |
1134 |
pre-commit checking program that may be invoked. Previously, only |
1135 |
added and modified files were included. |
1136 |
|
1137 |
* It is now possible to commit a file directly onto the trunk at a |
1138 |
specific revision level by doing "cvs commit -r3.0 file.c", where |
1139 |
"3.0" specifies the revision you wish to create. The file must be |
1140 |
up-to-date with the current head of the trunk for this to succeed. |
1141 |
|
1142 |
* "cvs commit" will now function with a pre-commit program that |
1143 |
has arguments specified in the "commitinfo" file. |
1144 |
|
1145 |
* The "mkmodules" program will now look within the |
1146 |
$CVSROOT/CVSROOT/checkoutlist" file for any additional files that |
1147 |
should be automatically checked out within CVSROOT; mkmodules also |
1148 |
tries harder to preserve any execute bits the files may have |
1149 |
originally had. |
1150 |
|
1151 |
* "cvs diff" is much more accurate about its exit status now. It |
1152 |
now returns the maximum exit status of any invoked diff. |
1153 |
|
1154 |
* The "-I !" option is now supported for the import and update |
1155 |
commands correctly. It will properly clear the ignore list now. |
1156 |
|
1157 |
* Some problems with "cvs import" handling of .cvsignore have been |
1158 |
fixed; as well, some rampant recursion problems with import have |
1159 |
also been fixed. |
1160 |
|
1161 |
* "cvs rdiff" (aka "cvs patch") now tries to set the modify time |
1162 |
of any temporary files it uses to match those specified for the |
1163 |
particular revision. This allows a more accurate patch image to |
1164 |
be created. |
1165 |
|
1166 |
* "cvs status" has improved revision descriptions. "Working |
1167 |
revision" is used for the revision of the working file that you |
1168 |
edit directly; "Repository revision" is the revision of the file |
1169 |
with the $CVSROOT source repository. Also, the output is clearer |
1170 |
with regard to sticky and branch revisions. |
1171 |
|
1172 |
* CVS no longer dumps core when given a mixture of directories and |
1173 |
files in sub-directories (as in "cvs ci file1 dir1/file2"). |
1174 |
Instead, arguments are now clumped into their respective directory |
1175 |
and operated on in chunks, together. |
1176 |
|
1177 |
* If the CVSEDITOR environment variable is set, that editor is |
1178 |
used for log messages instead of the EDITOR environment variable. |
1179 |
This makes it easy to substitute intelligent programs to make more |
1180 |
elaborate log messages. Contributed by Mark D Baushke |
1181 |
(mdb@cisco.com). |
1182 |
|
1183 |
* Command argument changes: |
1184 |
cvs: The "-f" option has been added to ignore |
1185 |
the ~/.cvsrc file. |
1186 |
commit: Renamed the "-f logfile" option to the |
1187 |
"-F logfile" option. Added the "-f" |
1188 |
option to force a commit of the specified |
1189 |
files (this disables recursion). |
1190 |
history: Added "-t timezone" option to force any |
1191 |
date-specific output into the specified |
1192 |
timezone. |
1193 |
import: Added "-d" option to use the file's |
1194 |
modification time as the time of the |
1195 |
import. Added "-k sub" option to set the |
1196 |
default RCS keyword substitution mode for |
1197 |
newly-created files. |
1198 |
remove: Added "-f" option to force the file's |
1199 |
automatic removal if it still exists in |
1200 |
the working directory (use with caution). |
1201 |
rtag: Added "-F" option to move the tag if it |
1202 |
already exists -- new default is to NOT |
1203 |
move tags automatically. |
1204 |
tag: Added "-F" option to move the tag if it |
1205 |
already exists -- new default is to NOT |
1206 |
move tags automatically. |
1207 |
|
1208 |
Tue Apr 7 15:55:25 1992 Brian Berliner (berliner at sun.com) |
1209 |
|
1210 |
* Changes between CVS 1.3 Beta-3 and official CVS 1.3! |
1211 |
|
1212 |
* A new shell script is provided, "./cvsinit", which can be run at |
1213 |
install time to help setup your $CVSROOT area. This can greatly |
1214 |
ease your entry into CVS usage. |
1215 |
|
1216 |
* The INSTALL file has been updated to include the machines on |
1217 |
which CVS has compiled successfully. I think CVS 1.3 is finally |
1218 |
portable. Thanks to all the Beta testers! |
1219 |
|
1220 |
* Support for the "editinfo" file was contributed. This file |
1221 |
(located in $CVSROOT/CVSROOT) can be used to specify a special |
1222 |
"editor" to run on a per-directory basis within the repository, |
1223 |
instead of the usual user's editor. As such, it can verify that |
1224 |
the log message entered by the user is of the appropriate form |
1225 |
(contains a bugid and test validation, for example). |
1226 |
|
1227 |
* The manual pages cvs(1) and cvs(5) have been updated. |
1228 |
|
1229 |
* The "mkmodules" command now informs you when your modules file |
1230 |
has duplicate entries. |
1231 |
|
1232 |
* The "add" command now preserves any per-directory sticky tag when |
1233 |
you add a new directory to your checked-out sources. |
1234 |
|
1235 |
* The "admin" command is now a fully recursive interface to the |
1236 |
"rcs" program which operates on your checked-out sources. It no |
1237 |
longer requires you to specify the full path to the RCS file. |
1238 |
|
1239 |
* The per-file sticky tags can now be effectively removed with |
1240 |
"cvs update -A file", even if you had checked out the whole |
1241 |
directory with a per-directory sticky tag. This allows a great |
1242 |
deal of flexibility in managing the revisions that your checked-out |
1243 |
sources are based upon (both per-directory and per-file sticky |
1244 |
tags). |
1245 |
|
1246 |
* The "cvs -n commit" command now works, to show which files are |
1247 |
out-of-date and will cause the real commit to fail, or which files |
1248 |
will fail any pre-commit checks. Also, the "cvs -n import ..." |
1249 |
command will now show you what it would've done without actually |
1250 |
doing it. |
1251 |
|
1252 |
* Doing "cvs commit modules" to checkin the modules file will no |
1253 |
properly run the "mkmodules" program (assuming you have setup your |
1254 |
$CVSROOT/CVSROOT/modules file to do so). |
1255 |
|
1256 |
* The -t option in the modules file (which specifies a program to |
1257 |
run when you do a "cvs rtag" operation on a module) now gets the |
1258 |
symbolic tag as the second argument when invoked. |
1259 |
|
1260 |
* When the source repository is locked by another user, that user's |
1261 |
login name will be displayed as the holder of the lock. |
1262 |
|
1263 |
* Doing "cvs checkout module/file.c" now works even if |
1264 |
module/file.c is in the Attic (has been removed from main-line |
1265 |
development). |
1266 |
|
1267 |
* Doing "cvs commit */Makefile" now works as one would expect. |
1268 |
Rather than trying to commit everything recursively, it will now |
1269 |
commit just the files specified. |
1270 |
|
1271 |
* The "cvs remove" command is now fully recursive. To schedule a |
1272 |
file for removal, all you have to do is "rm file" and "cvs rm". |
1273 |
With no arguments, "cvs rm" will schedule all files that have been |
1274 |
physically removed for removal from the source repository at the |
1275 |
next "cvs commit". |
1276 |
|
1277 |
* The "cvs tag" command now prints "T file" for each file that was |
1278 |
tagged by this invocation and "D file" for each file that had the |
1279 |
tag removed (as with "cvs tag -d"). |
1280 |
|
1281 |
* The -a option has been added to "cvs rtag" to force it to clean |
1282 |
up any old, matching tags for files that have been removed (in the |
1283 |
Attic) that may not have been touched by this tag operation. This |
1284 |
can help keep a consistent view with your tag, even if you re-use |
1285 |
it frequently. |
1286 |
|
1287 |
Sat Feb 29 16:02:05 1992 Brian Berliner (berliner at sun.com) |
1288 |
|
1289 |
* Changes between CVS 1.3 Beta-2 and CVS 1.3 Beta-3 |
1290 |
|
1291 |
* Many portability fixes, thanks to all the Beta testers! With any |
1292 |
luck, this Beta release will compile correctly on most anything. |
1293 |
Hey, what are we without our dreams. |
1294 |
|
1295 |
* CVS finally has support for doing isolated development on a |
1296 |
branch off the current (or previous!) revisions. This is also |
1297 |
extremely nice for generating patches for previously released |
1298 |
software while development is progressing on the next release. |
1299 |
Here's an example of creating a branch to fix a patch with the 2.0 |
1300 |
version of the "foo" module, even though we are already well into |
1301 |
the 3.0 release. Do: |
1302 |
|
1303 |
% cvs rtag -b -rFOO_2_0 FOO_2_0_Patch foo |
1304 |
% cvs checkout -rFOO_2_0_Patch foo |
1305 |
% cd foo |
1306 |
[[ hack away ]] |
1307 |
% cvs commit |
1308 |
|
1309 |
A physical branch will be created in the RCS file only when you |
1310 |
actually commit the change. As such, forking development at some |
1311 |
random point in time is extremely light-weight -- requiring just a |
1312 |
symbolic tag in each file until a commit is done. To fork |
1313 |
development at the currently checked out sources, do: |
1314 |
|
1315 |
% cvs tag -b Personal_Hack |
1316 |
% cvs update -rPersonal_Hack |
1317 |
[[ hack away ]] |
1318 |
% cvs commit |
1319 |
|
1320 |
Now, if you decide you want the changes made in the Personal_Hack |
1321 |
branch to be merged in with other changes made in the main-line |
1322 |
development, you could do: |
1323 |
|
1324 |
% cvs commit # to make Personal_Hack complete |
1325 |
% cvs update -A # to update sources to main-line |
1326 |
% cvs update -jPersonal_Hack # to merge Personal_Hack |
1327 |
|
1328 |
to update your checked-out sources, or: |
1329 |
|
1330 |
% cvs checkout -jPersonal_Hack module |
1331 |
|
1332 |
to checkout a fresh copy. |
1333 |
|
1334 |
To support this notion of forked development, CVS reserves |
1335 |
all even-numbered branches for its own use. In addition, CVS |
1336 |
reserves the ".0" and ".1" branches. So, if you intend to do your |
1337 |
own branches by hand with RCS, you should use odd-numbered branches |
1338 |
starting with ".3", as in "1.1.3", "1.1.5", 1.2.9", .... |
1339 |
|
1340 |
* The "cvs commit" command now supports a fully functional -r |
1341 |
option, allowing you to commit your changes to a specific numeric |
1342 |
revision or symbolic tag with full consistency checks. Numeric |
1343 |
tags are useful for bringing your sources all up to some revision |
1344 |
level: |
1345 |
|
1346 |
% cvs commit -r2.0 |
1347 |
|
1348 |
For symbolic tags, you can only commit to a tag that references a |
1349 |
branch in the RCS file. One created by "cvs rtag -b" or from |
1350 |
"cvs tag -b" is appropriate (see below). |
1351 |
|
1352 |
* Roland Pesch <pesch@cygnus.com> and K. Richard Pixley |
1353 |
<rich@cygnus.com> were kind enough to contribute two new manual |
1354 |
pages for CVS: cvs(1) and cvs(5). Most of the new CVS 1.3 features |
1355 |
are now documented, with the exception of the new branch support |
1356 |
added to commit/rtag/tag/checkout/update. |
1357 |
|
1358 |
* The -j options of checkout/update have been added. The "cvs join" |
1359 |
command has been removed. |
1360 |
|
1361 |
With one -j option, CVS will merge the changes made between the |
1362 |
resulting revision and the revision that it is based on (e.g., if |
1363 |
the tag refers to a branch, CVS will merge all changes made in |
1364 |
that branch into your working file). |
1365 |
|
1366 |
With two -j options, CVS will merge in the changes between the two |
1367 |
respective revisions. This can be used to "remove" a certain delta |
1368 |
from your working file. E.g., If the file foo.c is based on |
1369 |
revision 1.6 and I want to remove the changes made between 1.3 and |
1370 |
1.5, I might do: |
1371 |
|
1372 |
% cvs update -j1.5 -j1.3 foo.c # note the order... |
1373 |
|
1374 |
In addition, each -j option can contain on optional date |
1375 |
specification which, when used with branches, can limit the chosen |
1376 |
revision to one within a specific date. An optional date is |
1377 |
specified by adding a colon (:) to the tag, as in: |
1378 |
|
1379 |
-jSymbolic_Tag:Date_Specifier |
1380 |
|
1381 |
An example might be what "cvs import" tells you to do when you have |
1382 |
just imported sources that have conflicts with local changes: |
1383 |
|
1384 |
% cvs checkout -jTAG:yesterday -jTAG module |
1385 |
|
1386 |
which tells CVS to merge in the changes made to the branch |
1387 |
specified by TAG in the last 24 hours. If this is not what is |
1388 |
intended, substitute "yesterday" for whatever format of date that |
1389 |
is appropriate, like: |
1390 |
|
1391 |
% cvs checkout -jTAG:'1 week ago' -jTAG module |
1392 |
|
1393 |
* "cvs diff" now supports the special tags "BASE" and "HEAD". So, |
1394 |
the command: |
1395 |
|
1396 |
% cvs diff -u -rBASE -rHEAD |
1397 |
|
1398 |
will effectively show the changes made by others (in unidiff |
1399 |
format) that will be merged into your working sources with your |
1400 |
next "cvs update" command. "-rBASE" resolves to the revision that |
1401 |
your working file is based on. "-rHEAD" resolves to the current |
1402 |
head of the branch or trunk that you are working on. |
1403 |
|
1404 |
* The -P option of "cvs checkout" now means to Prune empty |
1405 |
directories, as with "update". The default is to not remove empty |
1406 |
directories. However, if you do "checkout" with any -r options, -P |
1407 |
will be implied. I.e., checking out with a tag will cause empty |
1408 |
directories to be pruned automatically. |
1409 |
|
1410 |
* The new file INSTALL describes how to install CVS, including |
1411 |
detailed descriptions of interfaces to "configure". |
1412 |
|
1413 |
* The example loginfo file in examples/loginfo has been updated to |
1414 |
use the perl script included in contrib/log.pl. The nice thing |
1415 |
about this log program is that it records the revision numbers of |
1416 |
your change in the log message. |
1417 |
|
1418 |
Example files for commitinfo and rcsinfo are now included in the |
1419 |
examples directory. |
1420 |
|
1421 |
* All "#if defined(__STDC__) && __STDC__ == 1" lines have been |
1422 |
changed to be "#if __STDC__" to fix some problems with the former. |
1423 |
|
1424 |
* The lib/regex.[ch] files have been updated to the 1.3 release of |
1425 |
the GNU regex package. |
1426 |
|
1427 |
* The ndbm emulation routines included with CVS 1.3 Beta-2 in the |
1428 |
src/ndbm.[ch] files has been moved into the src/myndbm.[ch] files |
1429 |
to avoid any conflict with the system <ndbm.h> header file. If |
1430 |
you had a previous CVS 1.3 Beta release, you will want to "cvs |
1431 |
remove ndbm.[ch]" form your copy of CVS as well. |
1432 |
|
1433 |
* "cvs add" and "cvs remove" are a bit more verbose, telling you |
1434 |
what to do to add/remove your file permanently. |
1435 |
|
1436 |
* We no longer mess with /dev/tty in "commit" and "add". |
1437 |
|
1438 |
* More things are quiet with the -Q option set. |
1439 |
|
1440 |
* New src/config.h option: If CVS_BADROOT is set, CVS will not |
1441 |
allow people really logged in as "root" to commit changes. |
1442 |
|
1443 |
* "cvs diff" exits with a status of 0 if there were no diffs, 1 if |
1444 |
there were diffs, and 2 if there were errors. |
1445 |
|
1446 |
* "cvs -n diff" is now supported so that you can still run diffs |
1447 |
even while in the middle of committing files. |
1448 |
|
1449 |
* Handling of the CVS/Entries file is now much more robust. |
1450 |
|
1451 |
* The default file ignore list now includes "*.so". |
1452 |
|
1453 |
* "cvs import" did not expand '@' in the log message correctly. It |
1454 |
does now. Also, import now uses the ignore file facility |
1455 |
correctly. |
1456 |
|
1457 |
Import will now tell you whether there were conflicts that need to |
1458 |
be resolved, and how to resolve them. |
1459 |
|
1460 |
* "cvs log" has been changed so that you can "log" things that are |
1461 |
not a part of the current release (in the Attic). |
1462 |
|
1463 |
* If you don't change the editor message on commit, CVS now prompts |
1464 |
you with the choice: |
1465 |
|
1466 |
!)reuse this message unchanged for remaining dirs |
1467 |
|
1468 |
which allows you to tell CVS that you have no intention of changing |
1469 |
the log message for the remainder of the commit. |
1470 |
|
1471 |
* It is no longer necessary to have CVSROOT set if you are using |
1472 |
the -H option to get Usage information on the commands. |
1473 |
|
1474 |
* Command argument changes: |
1475 |
checkout: -P handling changed as described above. |
1476 |
New -j option (up to 2 can be specified) |
1477 |
for doing rcsmerge kind of things on |
1478 |
checkout. |
1479 |
commit: -r option now supports committing to a |
1480 |
numeric or symbolic tags, with some |
1481 |
restrictions. Full consistency checks will |
1482 |
be done. |
1483 |
Added "-f logfile" option, which tells |
1484 |
commit to glean the log message from the |
1485 |
specified file, rather than invoking the |
1486 |
editor. |
1487 |
rtag: Added -b option to create a branch tag, |
1488 |
useful for creating a patch for a previous |
1489 |
release, or for forking development. |
1490 |
tag: Added -b option to create a branch tag, |
1491 |
useful for creating a patch for a previous |
1492 |
release, or for forking development. |
1493 |
update: New -j option (up to 2 can be specified) |
1494 |
for doing rcsmerge kind of things on |
1495 |
update. |
1496 |
|
1497 |
Thu Jan 9 10:51:35 MST 1992 Jeff Polk (polk at BSDI.COM) |
1498 |
|
1499 |
* Changes between CVS 1.3 Beta-1 and CVS 1.3 Beta-2 |
1500 |
|
1501 |
* Thanks to K. Richard Pixley at Cygnus we now have function |
1502 |
prototypes in all the files |
1503 |
|
1504 |
* Some small changes to configure for portability. There have |
1505 |
been other portability problems submitted that have not been fixed |
1506 |
(Brian will be working on those). Additionally all __STDC__ |
1507 |
tests have been modified to check __STDC__ against the constant 1 |
1508 |
(this is what the Second edition of K&R says must be true). |
1509 |
|
1510 |
* Lots of additional error checking for forked processes (run_exec) |
1511 |
(thanks again to K. Richard Pixley) |
1512 |
|
1513 |
* Lots of miscellaneous bug fixes - including but certainly not |
1514 |
limited to: |
1515 |
various commit core dumps |
1516 |
various update core dumps |
1517 |
bogus results from status with numeric sticky tags |
1518 |
commitprog used freed memory |
1519 |
Entries file corruption caused by No_Difference |
1520 |
commit to revision broken (now works if branch exists) |
1521 |
ignore file processing broken for * and ! |
1522 |
ignore processing didn't handle memory reasonably |
1523 |
miscellaneous bugs in the recursion processor |
1524 |
file descriptor leak in ParseInfo |
1525 |
CVSROOT.adm->CVSROOT rename bug |
1526 |
lots of lint fixes |
1527 |
|
1528 |
* Reformatted all the code in src (with GNU indent) and then |
1529 |
went back and fixed prototypes, etc since indent gets confused. The |
1530 |
rationale is that it is better to do it sooner than later and now |
1531 |
everything is consistent and will hopefully stay that way. |
1532 |
The basic options to indent were: "-bad -bbb -bap -cdb -d0 -bl -bli0 |
1533 |
-nce -pcs -cs -cli4 -di1 -nbc -psl -lp -i4 -ip4 -c41" and then |
1534 |
miscellaneous formatting fixes were applied. Note also that the |
1535 |
"-nfc1" or "-nfca" may be appropriate in files where comments have |
1536 |
been carefully formatted (e.g, modules.c). |
1537 |
|
1538 |
Sat Dec 14 20:35:22 1991 Brian Berliner (berliner at sun.com) |
1539 |
|
1540 |
* Changes between CVS 1.2 and CVS 1.3 Beta are described here. |
1541 |
|
1542 |
* Lots of portability work. CVS now uses the GNU "configure" |
1543 |
script to dynamically determine the features provided by your |
1544 |
system. It probably is not foolproof, but it is better than |
1545 |
nothing. Please let me know of any portability problems. Some |
1546 |
file names were changed to fit within 14-characters. |
1547 |
|
1548 |
* CVS has a new RCS parser that is much more flexible and |
1549 |
extensible. It should read all known RCS ",v" format files. |
1550 |
|
1551 |
* Most of the commands now are fully recursive, rather than just |
1552 |
operating on the current directory alone. This includes "commit", |
1553 |
which makes it real easy to do an "atomic" commit of all the |
1554 |
changes made to a CVS hierarchy of sources. Most of the commands |
1555 |
also correctly handle file names that are in directories other than |
1556 |
".", including absolute path names. Commands now accept the "-R" |
1557 |
option to force recursion on (though it is always the default now) |
1558 |
and the "-l" option to force recursion off, doing just "." and not |
1559 |
any sub-directories. |
1560 |
|
1561 |
* CVS supports many of the features provided with the RCS 5.x |
1562 |
distribution - including the new "-k" keyword expansion options. I |
1563 |
recommend using RCS 5.x (5.6 is the current official RCS version) |
1564 |
and GNU diff 1.15 (or later) distributions with CVS. |
1565 |
|
1566 |
* Checking out files with symbolic tags/dates is now "sticky", in |
1567 |
that CVS remembers the tag/date used for each file (and directory) |
1568 |
and will use that tag/date automatically on the next "update" call. |
1569 |
This stickyness also holds for files checked out with the the new |
1570 |
RCS 5.x "-k" options. |
1571 |
|
1572 |
* The "cvs diff" command now recognizes all of the rcsdiff 5.x |
1573 |
options. Unidiff format is available by installing the GNU |
1574 |
diff 1.15 distribution. |
1575 |
|
1576 |
* The old "CVS.adm" directories created on checkout are now called |
1577 |
"CVS" directories, to look more like "RCS" and "SCCS". Old CVS.adm |
1578 |
directories are automagically converted to CVS directories. The |
1579 |
old "CVSROOT.adm" directory within the source repository is |
1580 |
automagically changed into a "CVSROOT" directory as well. |
1581 |
|
1582 |
* Symbolic links in the source repository are fully supported ONLY |
1583 |
if you use RCS 5.6 or later and (of course) your system supports |
1584 |
symlinks. |
1585 |
|
1586 |
* A history database has been contributed which maintains the |
1587 |
history of certain CVS operations, as well as providing a wide array |
1588 |
of querying options. |
1589 |
|
1590 |
* The "cvs" program has a "-n" option which can be used with the |
1591 |
"update" command to show what would be updated without actually |
1592 |
doing the update, like: "cvs -n update". All usage statements |
1593 |
have been cleaned up and made more verbose. |
1594 |
|
1595 |
* The module database parsing has been rewritten. The new format |
1596 |
is compatible with the old format, but with much more |
1597 |
functionality. It allows modules to be created that grab pieces or |
1598 |
whole directories from various different parts of your source |
1599 |
repository. Module-relative specifications are also correctly |
1600 |
recognized now, like "cvs checkout module/file.c". |
1601 |
|
1602 |
* A configurable template can be specified such that on a "commit", |
1603 |
certain directories can supply a template that the user must fill |
1604 |
before completing the commit operation. |
1605 |
|
1606 |
* A configurable pre-commit checking program can be specified which |
1607 |
will run to verify that a "commit" can happen. This feature can be |
1608 |
used to restrict certain users from changing certain pieces of the |
1609 |
source repository, or denying commits to the entire source |
1610 |
repository. |
1611 |
|
1612 |
* The new "cvs export" command is much like "checkout", but |
1613 |
establishes defaults suitable for exporting code to others (expands |
1614 |
out keywords, forces the use of a symbolic tag, and does not create |
1615 |
"CVS" directories within the checked out sources. |
1616 |
|
1617 |
* The new "cvs import" command replaces the deprecated "checkin" |
1618 |
shell script and is used to import sources into CVS control. It is |
1619 |
also much faster for the first-time import. Some algorithmic |
1620 |
improvements have also been made to reduce the number of |
1621 |
conflicting files on next-time imports. |
1622 |
|
1623 |
* The new "cvs admin" command is basically an interface to the |
1624 |
"rcs" program. (Not yet implemented very well). |
1625 |
|
1626 |
* Signal handling (on systems with BSD or POSIX signals) is much |
1627 |
improved. Interrupting CVS now works with a single interrupt! |
1628 |
|
1629 |
* CVS now invokes RCS commands by direct fork/exec rather than |
1630 |
calling system(3). This improves performance by removing a call to |
1631 |
the shell to parse the arguments. |
1632 |
|
1633 |
* Support for the .cvsignore file has been contributed. CVS will |
1634 |
now show "unknown" files as "? filename" as the result of an "update" |
1635 |
command. The .cvsignore file can be used to add files to the |
1636 |
current list of ignored files so that they won't show up as unknown. |
1637 |
|
1638 |
* Command argument changes: |
1639 |
cvs: Added -l to turn off history logging. |
1640 |
Added -n to show what would be done without actually |
1641 |
doing anything. |
1642 |
Added -q/-Q for quiet and really quiet settings. |
1643 |
Added -t to show debugging trace. |
1644 |
add: Added -k to allow RCS 5.x -k options to be specified. |
1645 |
admin: New command; an interface to rcs(1). |
1646 |
checkout: Added -A to reset sticky tags/date/options. |
1647 |
Added -N to not shorten module paths. |
1648 |
Added -R option to force recursion. |
1649 |
Changed -p (prune empty directories) to -P option. |
1650 |
Changed -f option; forcing tags match is now default. |
1651 |
Added -p option to checkout module to standard output. |
1652 |
Added -s option to cat the modules db with status. |
1653 |
Added -d option to checkout in the specified directory. |
1654 |
Added -k option to use RCS 5.x -k support. |
1655 |
commit: Removed -a option; use -l instead. |
1656 |
Removed -f option. |
1657 |
Added -l option to disable recursion. |
1658 |
Added -R option to force recursion. |
1659 |
If no files specified, commit is recursive. |
1660 |
diff: Now recognizes all RCS 5.x rcsdiff options. |
1661 |
Added -l option to disable recursion. |
1662 |
Added -R option to force recursion. |
1663 |
history: New command; displays info about CVS usage. |
1664 |
import: Replaces "checkin" shell script; imports sources |
1665 |
under CVS control. Ignores files on the ignore |
1666 |
list (see -I option or .cvsignore description above). |
1667 |
export: New command; like "checkout", but w/special options |
1668 |
turned on by default to facilitate exporting sources. |
1669 |
join: Added -B option to join from base of the branch; |
1670 |
join now defaults to only joining with the top two |
1671 |
revisions on the branch. |
1672 |
Added -k option for RCS 5.x -k support. |
1673 |
log: Supports all RCS 5.x options. |
1674 |
Added -l option to disable recursion. |
1675 |
Added -R option to force recursion. |
1676 |
patch: Changed -f option; forcing tags match is now default. |
1677 |
Added -c option to force context-style diffs. |
1678 |
Added -u option to support unidiff-style diffs. |
1679 |
Added -V option to support RCS specific-version |
1680 |
keyword expansion formats. |
1681 |
Added -R option to force recursion. |
1682 |
remove: No option changes. It's a bit more verbose. |
1683 |
rtag: Equivalent to the old "cvs tag" command. |
1684 |
No option changes. It's a lot faster for re-tag. |
1685 |
status: New output formats with more information. |
1686 |
Added -l option to disable recursion. |
1687 |
Added -R option to force recursion. |
1688 |
Added -v option to show symbolic tags for files. |
1689 |
tag: Functionality changed to tag checked out files |
1690 |
rather than modules; use "rtag" command to get the |
1691 |
old "cvs tag" behaviour. |
1692 |
update: Added -A to reset sticky tags/date/options. |
1693 |
Changed -p (prune empty directories) to -P option. |
1694 |
Changed -f option; forcing tags match is now default. |
1695 |
Added -p option to checkout module to standard output. |
1696 |
Added -I option to add files to the ignore list. |
1697 |
Added -R option to force recursion. |
1698 |
|
1699 |
Major Contributors: |
1700 |
|
1701 |
* Jeff Polk <polk@bsdi.com> rewrote most of the grody code of CVS |
1702 |
1.2. He made just about everything dynamic (by using malloc), |
1703 |
added a generic hashed list manager, re-wrote the modules database |
1704 |
parsing in a compatible - but extended way, generalized directory |
1705 |
hierarchy recursion for virtually all the commands (including |
1706 |
commit!), generalized the loginfo file to be used for pre-commit |
1707 |
checks and commit templates, wrote a new and flexible RCS parser, |
1708 |
fixed an uncountable number of bugs, and helped in the design of |
1709 |
future CVS features. If there's anything gross left in CVS, it's |
1710 |
probably my fault! |
1711 |
|
1712 |
* David G. Grubbs <dgg@odi.com> contributed the CVS "history" and |
1713 |
"release" commands. As well as the ever-so-useful "-n" option of |
1714 |
CVS which tells CVS to show what it would do, without actually |
1715 |
doing it. He also contributed support for the .cvsignore file. |
1716 |
|
1717 |
* Paul Sander, HaL Computer Systems, Inc. <paul@hal.com> wrote and |
1718 |
contributed the code in lib/sighandle.c. I added support for |
1719 |
POSIX, BSD, and non-POSIX/non-BSD systems. |
1720 |
|
1721 |
* Free Software Foundation contributed the "configure" script and |
1722 |
other compatibility support in the "lib" directory, which will help |
1723 |
make CVS much more portable. |
1724 |
|
1725 |
* Many others have contributed bug reports and enhancement requests. |
1726 |
Some have even submitted actual code which I have not had time yet |
1727 |
to integrate into CVS. Maybe for the next release. |
1728 |
|
1729 |
* Thanks to you all! |
1730 |
|
1731 |
Wed Feb 6 10:10:58 1991 Brian Berliner (berliner at sun.com) |
1732 |
|
1733 |
* Changes from CVS 1.0 Patchlevel 1 to CVS 1.0 Patchlevel 2; also |
1734 |
known as "Changes from CVS 1.1 to CVS 1.2". |
1735 |
|
1736 |
* Major new support with this release is the ability to use the |
1737 |
recently-posted RCS 5.5 distribution with CVS 1.2. See below for |
1738 |
other assorted bug-fixes that have been thrown in. |
1739 |
|
1740 |
* ChangeLog (new): Added Emacs-style change-log file to CVS 1.2 |
1741 |
release. Chronological description of changes between release. |
1742 |
|
1743 |
* README: Small fixes to installation instructions. My email |
1744 |
address is now "berliner@sun.com". |
1745 |
|
1746 |
* src/Makefile: Removed "rcstime.h". Removed "depend" rule. |
1747 |
|
1748 |
* src/partime.c: Updated to RCS 5.5 version with hooks for CVS. |
1749 |
* src/maketime.c: Updated to RCS 5.5 version with hooks for CVS. |
1750 |
* src/rcstime.h: Removed from the CVS 1.2 distribution. |
1751 |
Thanks to Paul Eggert <eggert@twinsun.com> for these changes. |
1752 |
|
1753 |
* src/checkin.csh: Support for RCS 5.5 parsing. |
1754 |
Thanks to Paul Eggert <eggert@twinsun.com> for this change. |
1755 |
|
1756 |
* src/collect_sets.c (Collect_Sets): Be quieter if "-f" option is |
1757 |
specified. When checking out files on-top-of other files that CVS |
1758 |
doesn't know about, run a diff in the hopes that they are really |
1759 |
the same file before aborting. |
1760 |
|
1761 |
* src/commit.c (branch_number): Fix for RCS 5.5 parsing. |
1762 |
Thanks to Paul Eggert <eggert@twinsun.com> for this change. |
1763 |
|
1764 |
* src/commit.c (do_editor): Bug fix - fprintf missing argument |
1765 |
which sometimes caused core dumps. |
1766 |
|
1767 |
* src/modules.c (process_module): Properly NULL-terminate |
1768 |
update_dir[] in all cases. |
1769 |
|
1770 |
* src/no_difference.c (No_Difference): The wrong RCS revision was |
1771 |
being registered in certain (strange) cases. |
1772 |
|
1773 |
* src/patch.c (get_rcsdate): New algorithm. No need to call |
1774 |
maketime() any longer. |
1775 |
Thanks to Paul Eggert <eggert@twinsun.com> for this change. |
1776 |
|
1777 |
* src/patchlevel.h: Increased patch level to "2". |
1778 |
|
1779 |
* src/subr.c (isdir, islink): Changed to compare stat mode bits |
1780 |
correctly. |
1781 |
|
1782 |
* src/tag.c (tag_file): Added support for following symbolic links |
1783 |
that are in the master source repository when tagging. Made tag |
1784 |
somewhat quieter in certain cases. |
1785 |
|
1786 |
* src/update.c (update_process_lists): Unlink the user's file if it |
1787 |
was put on the Wlist, meaning that the user's file is not modified |
1788 |
and its RCS file has been removed by someone else. |
1789 |
|
1790 |
* src/update.c (update): Support for "cvs update dir" to correctly |
1791 |
just update the argument directory "dir". |
1792 |
|
1793 |
* src/cvs.h: Fixes for RCS 5.5 parsing. |
1794 |
* src/version_number.c (Version_Number): Fixes for parsing RCS 5.5 |
1795 |
and older RCS-format files. |
1796 |
Thanks to Paul Eggert <eggert@twinsun.com> for these changes. |
1797 |
|
1798 |
* src/version_number.c (Version_Number): Bug fixes for "-f" option. |
1799 |
Bug fixes for parsing with certain branch numbers. RCS |
1800 |
revision/symbol parsing is much more solid now. |
1801 |
|
1802 |
Wed Feb 14 10:01:33 1990 Brian Berliner (berliner at sun.com) |
1803 |
|
1804 |
* Changes from CVS 1.0 Patchlevel 0 to CVS 1.0 Patchlevel 1; also |
1805 |
known as "Changes from CVS 1.0 to CVS 1.1". |
1806 |
|
1807 |
* src/patch.c (get_rcsdate): Portability fix. Replaced call to |
1808 |
timelocal() with call to maketime(). |
1809 |
|
1810 |
Mon Nov 19 23:15:11 1990 Brian Berliner (berliner at prisma.com) |
1811 |
|
1812 |
* Sent CVS 1.0 release to comp.sources.unix moderator and FSF. |
1813 |
|
1814 |
* Special thanks to Dick Grune <dick@cs.vu.nl> for his work on the |
1815 |
1986 version of CVS and making it available to the world. Dick's |
1816 |
version is available on uunet.uu.net in the |
1817 |
comp.sources.unix/volume6/cvs directory. |