1 2008-03-10 Mark D. Baushke <mdb@gnu.org>
3 * mkmodules.c, parseinfo.c: Update copyright.
5 * parseinfo.c (parse_config): Add support for new
6 "IgnoreUnknownConfigKeys" configuration key.
7 * mkmodules.c (config_contents): Add text about the
8 "IgnoreUnknownConfigKeys" option.
9 * sanity.sh (config): Test that IgnoreUnknownConfigKeys=yes works.
11 2008-01-30 Derek R. Price <derek@ximbiot.com>
13 * update.c (join_file): Use local copy to detect deletion conflicts,
14 as opposed to the base revision. Restore freeing of rev2 to its
15 original location. Use simpler conflict message.
16 * sanity.sh: Update to compensate.
18 2008-01-29 Derek R. Price <derek@ximbiot.com>
20 * update.c (join_file): Remove trace that is no longer needed.
22 2008-01-29 Derek R. Price <derek@ximbiot.com>
23 Paul Edwards <fight.subjugation@gmail.com>
25 * update.c (join_file): Detect deletion conflicts.
26 * sanity.sh (join, join4): Adjusted for this fix.
27 (join8, join9): Add new tests for conflicts.
29 2008-01-27 Mark D. Baushke <mdb@gnu.org>
31 * filesubr.c (xreadlink): s/128/BUFSIZ/ avoid magic numbers.
33 * client.c (start_rsh_server): Use CVS_SSH for the :extssh:
34 method or fall back to "ssh" as set using the --with-ssh flag to
37 * client.h, log.c, main.c, recurse.c, root.c: Update copyright for
40 2008-01-24 Mark D. Baushke <mdb@gnu.org>
42 * log.c (cvslog): New -n option to revert the -N switch.
43 (log_usage): Add -n to the help string.
44 * main.c (cmds[]): Add "blame" as a synonym for the
46 * sanity.sh (cvs-log): New tests for 'cvs log -N -n' validation.
47 (ann-10w1blame): Test the 'cvs blame' synonym for annotate.
48 (Patch suggested by "David O'Brien" <obrien@FreeBSD.org>)
50 * edit.c (notify_check): Rename to...
51 (cvs_notify_check): ...this to avoid Mac OSX symbol conflicts.
52 * client.h, edit.h, recurse.c: Change all references.
54 * client.c (start_rsh_server): Use RSH_DFLT not a hardcoded "rsh"
55 * root.c (parse_cvsroot): Fix parsing for the :extssh: method.
57 * sanity.sh (expr_set_DASHDASH): Fix for non-POSIX expr
59 (CVSROOTDIR): Use 'cvsrootdir' instead of 'cvsroot' to
60 avoid problems on case preserving and/or case insensitive
61 filesystems (e.g., HFS+).
62 (CVSROOT_DIRNAME): Use ${TESTDIR}/${CVSROOTDIR} instead of
63 ${TESTDIR}/cvsroot to avoid filesystem case sensitivity problems.
64 (crerepos-extssh): Clone of crerepos tests, but use the :extssh:
67 2007-12-19 Larry Jones <lawrence.jones@siemens.com>
69 * client.c, import.c, lock.c, login.c, mkmodules.c, modules.c,
70 rcs.c, server.c: Fix gcc -Wall warnings.
72 2007-12-16 Larry Jones <lawrence.jones@siemens.com>
74 * rcs.c (HAVE_MMAP): Fall back to stdio if mmap fails.
76 2007-12-13 Larry Jones <lawrence.jones@siemens.com>
78 * rcs.c (rcsbuf_ftell): Avoid potential overflow.
80 2007-12-12 Larry Jones <lawrence.jones@siemens.com>
82 * vers_ts.c (time_stamp): Add warnings for [l]stat failures
83 other than no such file.
85 2007-08-26 Derek Price <derek@ximbiot.com>
87 * mkmodules.c (in_root): Rename to...
88 (in_repository): ...this.
90 2007-08-26 Larry Jones <lawrence.jones@ugs.com>
92 * mkmodules.c (in_root, init): Unmix declarations and code.
94 2007-08-22 Derek Price <derek@ximbiot.com>
96 * add.c (add): Check last component of argument paths instead of the
98 * sanity.sh (add-restricted): Test indirect paths to `CVS' dir with
101 * server.c (serve_init): Remove unnecessary argument to printf style
104 * mkmodules.c (in_root): New function.
105 (init): Verify that new roots are not created inside others.
106 * sanity.sh (init-3): New test for same.
108 2007-08-16 Derek Price <derek@ximbiot.com>
110 * root.c (root_allow_used): New function and...
111 * root.h (root_allow_used): ...its prototype.
112 * server.c (serve_root): Backport --allow-root test for `cvs server'.
113 * sanity.sh (server2-5, server2-6): New tests for the above.
115 2007-06-18 Derek Price <derek@ximbiot.com>
117 * client.c (send_repository): Don't attempt to send metadata from CVS
118 subdirectories when importing.
120 2007-06-15 Derek Price <derek@ximbiot.com>
122 * import.c (import): Check more carefully for files and directories
124 * sanity.sh (import-1b): New test for same.
125 (import-2): Test files named "CVS", in addition to directories.
127 2007-05-22 Larry Jones <lawrence.jones@ugs.com>
129 * rcs.c (RCS_fully_parse): Include revision in error message.
131 2007-05-07 Derek Price <derek@ximbiot.com>
133 * mkmodules.c (init): Assert that the server is not active.
134 * server.c (serve_init): Send error message when the init command is
135 received from a client.
137 * sanity.sh (*): Avoid using remote init.
138 (skip_always, localonly, restore_adm): New convenience functions.
140 2007-03-08 Larry Jones <lawrence.jones@ugs.com>
142 * rcs.c (findmagictag): Cast node->data before doing arithmetic
143 since it's now (void *).
145 2007-03-05 Larry Jones <lawrence.jones@ugs.com>
147 * rcs.c (RCS_delete_revs): When checking for tagged revisions,
148 include magic branch tags.
150 2007-03-01 Larry Jones <lawrence.jones@ugs.com>
152 * import.c (import_descend_dir): Correct error message.
153 * sanity.sh (pserver-3a): New test.
155 2006-09-14 Derek Price <derek@ximbiot.com>
157 * sanity.sh (server3, client2): New tests.
159 2006-09-07 Derek Price <derek@ximbiot.com>
162 * rcs.c (apply_rcs_changes): Improve comments. Restore repaired error
165 2006-09-06 Larry Jones <lawrence.jones@ugs.com>
167 * rcs.c (apply_rcs_changes): Improve linked list handling. Remove
168 unused variables and unreachable error handling code. Avoid unneeded
169 dynamic allocation of temp linevector. Minor stylistic code clean up.
171 2006-09-06 Derek Price <derek@ximbiot.com>
174 * rcs.c (apply_rcs_changes): Improve header block comment. Clean up
175 unused linevector on non-fatal error.
177 2006-09-06 Derek Price <derek@ximbiot.com>
180 * rcs.c (apply_rcs_changes): Remove an unecessary memcpy. Avoid some
181 other processing on error.
182 (linevector_delete): Remove - it's no longer used.
184 2006-09-06 Mark D. Baushke <mdb@gnu.org>
187 * rcs.c (apply_rcs_changes): Fix the merge algorithm from O(n^2)
189 (Based on a patch submitted by "Michael J. Smith"
190 <msmith@ideorlando.org>)
192 2006-08-28 Derek Price <derek@ximbiot.com>
194 * recurse.c (do_recursion): Remove misguided assertion.
195 * sanity.sh (dottedroot-3): Add test for the above.
196 (Thanks to report from Paul Eggert <eggert@CS.UCLA.EDU>.)
199 * classify.c (Classify_File): Use T_PATCH for changed keywords instead
200 of T_CHECKOUT to conserver bandwidth. Don't sticky check when marking
201 files for update anyhow.
202 * sanity.sh: Update to compensate (s/^U /[UP] /).
204 2006-08-25 Derek Price <derek@ximbiot.com>
207 * classify.c (Classify_file): Mark files with potential keyword
208 substitution changes as needing update.
209 * sanity.sh: Update to compensate.
210 (keyword, keywordname, serverpatch): Update to compensate, removing
211 the last few "checksum failed" tests.
213 * classify.c (Classify_File): Remove hacks which worked around checksum
214 failures from bug #17032.
216 2006-08-24 Derek Price <derek@ximbiot.com>
219 * update.c (patch_file): Correctly recreate client working files
220 containing the RCS `Name' keyword before generating patches.
221 * sanity.sh (keyword-23r): Merge with local case to compensate.
223 2006-08-17 Larry Jones <lawrence.jones@ugs.com>
225 * hash.h: Rename structs node and list to hashnode and hashlist
226 to avoid name clashes.
228 2006-07-25 Mark D. Baushke <mdb@gnu.org>
230 * login.c (free_cvs_password): New function to control freeing of
231 the static get_cvs_passwd() returned storage.
233 * cvs.h (free_cvs_password): Add prototype for it.
234 * client.c (auth_server): Call it.
235 [Alter the previous NetBSD coverity cid-3404 patch.]
237 2006-07-11 Larry Jones <lawrence.jones@ugs.com>
239 * log.c (log_usage): Fix misleading description of -b (it selects
240 revisions on the default branch *in addition to* revisions selected
243 2006-06-29 Derek Price <derek@ximbiot.com>
245 * client.c (is_arg_a_parent_or_listed_dir): Strip trailing slashes from
246 dir name defore searching for it. Partially addresses TODO #205.
247 * sanity.sh (trailingslashes): Update to compensate.
249 2006-06-28 Derek Price <derek@ximbiot.com>
252 * login.c (get_cvs_password): Return copy of global variable.
253 (Patch from <mbarabas@redhat.com>.)
255 2006-06-23 Larry Jones <lawrence.jones@ugs.com>
257 * server.c (do_cvs_command): Remove unused variable.
259 2006-06-22 Larry Jones <lawrence.jones@ugs.com>
261 * mkmodules.c (modules_contents): Remove defunct -i option.
263 2006-06-10 Derek Price <derek@ximbiot.com>
265 * sanity.sh (conflicts4): Don't expect specific file permissions. Use
268 2006-06-08 Derek Price <derek@ximbiot.com>
270 * sanity.sh (conflicts4): Test that the client honors Empty-conflicts.
272 * server.c (requests): Add "Empty-conflicts" marker.
273 * client.c (send_fileproc): Send contents of all files with conflicts
274 unless the server can handle the conflict marker in the Entry.
276 * sanity.sh (conflicts4): New tests.
277 (Original patch from Mark D. Baushke <mdb@gnu.org>.)
279 2006-06-07 Mark D. Baushke <mdb@gnu.org>
281 * modules.c (my_module): Remove unused variable xvalue.
282 [Fixes NetBSD coverity cid-705.]
284 2006-05-31 Mark D. Baushke <mdb@gnu.org>
286 * add.c (add): Fix memory leak.
287 [Fixes NetBSD coverity cid-3751.]
288 (add_directory): Fix memory leak.
289 [Fixes NetBSD coverity cid-3640.]
291 * checkin.c (Checkin): Avoid possible NULL dereference.
292 [Fixes NetBSD coverity cid-2425.]
294 * client.c (auth_server): Fix memory leak.
295 [Fixes NetBSD coverity cid-3404.]
297 * commit.c (remove_file): Fix memory leak.
298 [Fixes NetBSD coverity cid-3752.]
300 * rcs.c (RCS_checkin): Add assert (tip).
301 [Fixes NetBSD coverity cid-2424.]
303 2006-05-26 Mark D. Baushke <mdb@gnu.org>
305 * add.c (add): Do not leak memory.
306 [Fixes NetBSD coverity cid-2199.]
308 * edit.c (onoff_fileproc): Do not leak memory.
309 [Fixes NetBSD coverity cid-2201.]
311 * edit.c (onoff_filesdoneproc): Do not leak memory.
312 [Fixes NetBSD coverity cid-2202.]
314 * lock.c (readers_exist): Add assert (lockdir).
315 [Fixes NetBSD coverity cid-2411.]
317 * rcs.c (RCS_findlock_or_tip): Do not leak memory.
318 [Fixes NetBSD coverity cid-2198.]
320 * rcs.c (RCS_getdate): Avoid possible NULL dereference.
321 [Fixes NetBSD coverity cid-2412.]
323 * server.c (serve_sticky): Do not leak file descriptors.
324 [Fixes NetBSD coverity cid-2197.]
326 * server.c (do_cvs_command): Do not leak memory.
327 [Fixes NetBSD coverity cid-2204.]
329 * tag.c (add_to_val_tags): Do not leak memory.
330 [Fixes NetBSD coverity cid-2071.]
332 2006-05-25 Derek Price <derek@ximbiot.com>
334 * client.c (start_rsh_server): Default rsh client to RSH_DFLT. Remove
335 verbose comment attempting to justify the previous default.
337 2006-05-24 Larry Jones <lawrence.jones@ugs.com>
339 * sanity.sh: Add -v|--verbose option to echo test names. Clean
341 Remove val-tags files for cleanup instead of truncating since the
342 truncation code doesn't work right on Solaris. Always use -f when
345 2006-05-22 Derek Price <derek@ximbiot.com>
347 * rcs.c (RCS_reparsercsfile, RCS_fully_parse, RCS_checkout, RCS_deltas,
348 RCS_getdeltatext, RCS_copydeltas): Verify input revision numbers.
349 (rcs6): Update to compensate.
351 * sanity.sh (rcs6): New test.
353 2006-05-16 Derek Price <derek@ximbiot.com>
355 * main.c: Update copyright for 2006.
357 2006-05-12 Mark D. Baushke <mdb@gnu.org>
359 * log.c (log_expand_revlist): Add assert (r->first). It should
360 only be possible for both r->first == NULL && r->last == NULL
361 which would have been handled.
362 [Fixes NetBSD coverity cid-1063.]
364 * server.c (do_cvs_command): Protect close (dev_null_fd) against
365 invalid fd value in error_exit.
366 [Fixes NetBSD coverity cid-1307.]
368 * rcs.c (RCS_isdead): Assert that the first argument is not NULL.
369 [Fixes NetBSD coverity cid-1058.]
371 * commit.c (checkaddfile): Do not dereference NULL on call to
373 [Fixes NetBSD coverity cid-1061.]
375 * log.c (cvslog): Assert p->start && p->end instead of masking the
377 * server.c (server_updated): Assert findnode_fn results instead of
380 * add.c (add_directory): Revert previous change. The xstrdup()
381 function already deals a NULL argument.
382 * client.c (handle_mt): Ditto.
383 * entries.c (Entnode_Create): Ditto.
384 (Entries_Open): Ditto.
385 * logmsg.c (fmt_proc): Ditto.
386 * vers_ts.c (Version_TS): Ditto.
388 2006-05-11 Mark D. Baushke <mdb@gnu.org>
390 * add.c (add_directory): Protect tag from NULL dereference.
391 [Fixes NetBSD cid-1054.]
393 * client.c (handle_mt): Deal with missing text argument.
394 [Fixes NetBSD cid-924.]
396 * entries.c (Entnode_Create): Protect date, tag and ts_conflict
397 from possible NULL dereference.
398 [Fixes NetBSD coverity cid-994, cid-995, cid-1055, cid-1057.]
400 * entries.c (Entries_Open): Protect dirtag and dirdate from
401 possible NULL dereference.
402 [Fixes NetBSD coverity cid-996.]
404 * log.c (cvslog): Validate start and end args to
406 [Fixes NetBSD coverity cid-2427 and cid-2428.]
408 * logmsg.c (fmt_proc): Protect li->tag from NULL dereference.
409 [Fixes NetBSD coverity cid-997.]
411 * vers_ts.c (Version_TS): Protect tag and vers_ts->tag from NULL
413 [Fixes NetBSD coverity cid-1053.]
415 2006-05-04 Mark D. Baushke <mdb@gnu.org>
417 * filesubr.c (cvs_temp_file): Avoid keeping pointers to free()'d
418 storage laying around.
419 * commit.c (commit): Handle possible NULL filename values
420 returned from cvs_temp_file().
421 * filesubr.c (cvs_temp_name): Ditto.
422 * import.c (import): Ditto.
423 * login.c (password_entry_operation): Ditto.
424 * logmsg.c (do_verify): Ditto.
425 * patch.c (patch_fileproc): Ditto.
426 [Fixes NetBSD coverity cid-2545.]
428 * buffer.c (packetizing_buffer_output): Initialize outdata.
429 [Fixes NetBSD coverity cid-2474.]
431 * server.c (server_updated): Check for NULL return from
432 findnode_fn(). [Fixes NetBSD coverity cid-1352.]
434 2006-04-19 Larry Jones <lawrence.jones@ugs.com>
436 * history.c (sort_order): Back out previous change - not needed.
438 2006-04-15 Larry Jones <lawrence.jones@ugs.com>
440 * history.c (sort_order): Add prototype.
441 * server.c (template_proc): Add prototype and make args const.
442 * update.c (RegisterMerge): Make static to match prototype.
444 2006-04-07 Derek Price <derek@ximbiot.com>
446 * client.c (strto_file_size): New function which checks for errors when
447 parsing protocol input.
448 (read_counted_file, update_entries, handle_mbinary): Use new function.
450 (Thanks to a report from Brendan Harrison
451 <brendan.harrison@klocwork.com>.)
453 * client.c (send_a_repository): Add assertion.
454 (Thanks to an incorrect report from Brendan Harrison
455 <brendan.harrison@klocwork.com>.)
457 2006-04-06 Derek Price <derek@ximbiot.com>
459 * filesubr.c (last_component, expand_wild), rcs.c (RCS_deltas,
460 RCS_rewrite), server.c (server_checked_in): Add assertions.
461 (Thanks to an incorrect report from Brendan Harrison
462 <brendan.harrison@klocwork.com>.)
464 2006-03-31 Mark D. Baushke <mdb@gnu.org>
466 * cvsrc.c (read_cvsrc): Deal with \r\n (DOS) line endings in
469 2006-03-07 Derek Price <derek@ximbiot.com>
471 * tag.c (rtag_proc): Search the Attic when -F is used.
472 * sanity.sh (tests): Run death-rtag.
473 (death-rtag): Expect success.
475 * sanity.sh (death-rtag): Add failing force tag move test.
477 2006-03-06 Derek Price <derek@ximbiot.com>
479 * tag.c (rtag_proc): Always search in the attic when -r is used.
481 * sanity.sh (death-rtag): New test.
482 (Original report from C. Michael Pilato <cmpilato@collab.net>.)
484 2006-03-01 Derek Price <derek@ximbiot.com>
486 * sanity.sh: Set MALLOC_CHECK_ in hopes of exposing common memory
487 errors when CVS is linked with glibc 2.x.
489 2006-02-27 Derek Price <derek@ximbiot.com>
491 * lock.c (internal_lock): Back out previous change, we don't change
492 user visible output on stable unless absolutely necessary.
494 * lock.c (internal_lock): Improve error message.
496 2006-02-26 Derek Price <derek@ximbiot.com>
498 * client.c (call_in_directory): Remove unneeded code.
499 * sanity.sh (toplevel-12): Compensate by failing to expect a redundant
502 2006-02-24 Mark D. Baushke <mdb@gnu.org>
504 * client.c (gzip_level): Move to...
505 * main.c (gzip_level): ...here.
506 (main): Revert previous change in '-z' argument processing and
507 remove CLIENT_SUPPORT ifdef/endif.
508 * sanity.h (crerepos-6a): Deal with --disable-client output.
510 * main.c (main): Validate the gzip compression level for
511 --disable-client configurations.
513 2006-02-13 Derek Price <derek@ximbiot.com>
515 * server.c (do_cvs_command): Skip server_cleanup in the child process.
517 * sanity.sh (sshstdio-6): Rewrite using more portable sed script.
519 2006-02-02 Derek Price <derek@ximbiot.com>
521 * sanity.sh (sshstdio): Attempt to ignore spurious SSH output.
523 * main.c (main), release.c (release), server.c (do_cvs_command): Always
524 call the cleanup hooks before exit.
526 2006-02-01 Derek Price <derek@ximbiot.com>
528 * tag.c (add_to_val_tags): When a tag turns out to exist in the db when
529 it isn't expected, release the lock.
531 * history.c (save_user, save_file, save_mod, read_hrecs): Avoid
534 2006-01-30 Derek Price <derek@ximbiot.com>
536 * server.c (do_cvs_command): Set flow control pipe to blocking mode
537 before waiting for it to close.
538 (set_block_fd): New function.
539 (Original patch from Garrett Rooney <grooney@collab.net>.)
541 2006-01-13 Larry Jones <lawrence.jones@ugs.com>
543 * mkmodules.c (config_contents): Change SystemAuth to yes to match
544 the default value. Add missing newline in RereadLogAfterVerify.
546 2006-01-09 Larry Jones <lawrence.jones@ugs.com>
548 * commit.c (remove_file): Record correct revision in history file.
549 (Reported by Chris Reed <cr@progress.com>.)
551 2005-12-07 Derek Price <derek@ximbiot.com>
553 * client.c (start_server), root.c (method_names), root.h (CVSmethod):
554 Handle :extssh: as a kindness to Eclipse users.
555 (Suggestion from Joseph P. Skudlarek <Jskud@Jskud.com>.)
557 2005-12-06 Mark D. Baushke <mdb@gnu.org>
559 * buffer.c (stdio_buffer_shutdown): No longer assert() the
560 fstat(). Use error (0, ...) instead of error (1, ...) to avoid
561 infinite loops. (patch #4678)
562 Patch adapted from "Allan L. Bazinet" <allan.bazinet@gmail.com>
564 2005-11-10 Larry Jones <lawrence.jones@ugs.com>
566 * commit.c (commit): Complain about obsolete -n option if not in
569 2005-11-09 Derek Price <derek@ximbiot.com>
571 * sanity.sh (pserver-4.2): Accept a "no such sytem user" message when
572 a root attempt is made.
574 2005-09-30 Larry Jones <lawrence.jones@ugs.com>
576 * expand_path.c (expand_path): Fix memory leaks.
578 2005-09-29 Paul Eggert <eggert@CS.UCLA.EDU>
579 Derek Price <derek@ximbiot.com>
581 * client.c (handle_m, handle_e): Remove incomplete workaround for
582 O_NONBLOCK problem; no longer needed because of the fix below.
583 (start_rsh_server): We need the O_NONBLOCK fix, so pass 'true' to
584 piped_child to enable the workaround.
585 * cvs.h (piped_child): New bool argument saying whether O_NONBLOCK
586 fix is needed. All uses changed.
587 * run.c (work_around_openssh_glitch): New function.
588 (piped_child): Use it if the fix is requested. Avoid call call to
589 vfork with undefined behavior.
591 2005-09-26 Conrad T. Pino <Conrad@Pino.com>
593 * rcs.c: Use "#ifdef HAVE_FSYNC" just like every where else.
595 2005-09-25 Derek Price <derek@ximbiot.com>
597 * rcs.c (rcs_internal_unlockfile): Fsync files before renaming them.
598 Patch from Rahul Bhargava <rahul@wandisco.com>.
600 2005-09-24 Derek Price <derek@ximbiot.com>
602 * update.c (merge_file): Check for RCS_checkout errors.
604 2005-09-23 Larry Jones <lawrence.jones@ugs.com>
606 * checkout.c (export_usage): Note that -r requires a tag.
608 2005-09-22 Larry Jones <lawrence.jones@ugs.com>
610 * patch.c (patch_usage): Document -k option.
612 2005-09-22 Derek Price <derek@ximbiot.com>
614 * classify.c (Classify_File): If a file had a conflict and the
615 timestamp hasn't changed, it still has a conflict. Add comment about
616 how T_MODIFIED could later turn out to have conflict markers and why
617 it should not be checked in this function.
618 * client.c (send_fileproc): Don't send contents for files known to have
619 conflicts unless this is for `cvs diff'.
620 * commit.c (check_fileproc): T_CONFLICT should be handled like
621 T_MODIFIED, since force could be requested. Simplify logic since
622 T_CONFLICT can now be trusted.
623 * cvs.h (file_has_conflict): Remove proto.
624 * rcs.c (RCS_Checkout): Comment noexec behavior in header block.
625 * server.c (serve_unchanged, serve_is_modified): Handle conflicts.
626 * status.c (status_fileproc): Trust T_CONFLICT to simplify.
627 * subr.c (file_has_conflict): Removed.
628 * update.c (update_fileproc): Trust T_CONFLICT.
629 (RegisterMerge): New function factored from...
630 (merge_file, join_file): ...these two functions.
631 * vers_ts.c (time_stamp_server): Handle = conflict timestamps in server
633 * sanity.sh (files-12): Account for slight behavior improvement.
634 (status, conflicts, mwrap): Account for corrected behavior.
635 (join-readonly-conflict-10): Correct comment.
636 (binfiles-con1b): New test for correct behavior.
638 2005-09-19 Derek Price <derek@ximbiot.com>
640 * sanity.sh (modules5-8): Rename...
641 (modules5-8r): ...to this and comment Mac OS X failure.
642 Comment Solaris 9 failure below with a `FIXME?' tag.
644 * sanity.sh: Remove previous hack in favor of setting TESTDIR on
645 Solaris (and Mac OS X) until problem is solved correctly.
647 2005-09-15 Derek Price <derek@ximbiot.com>
649 * sanity.sh: Use /bin/pwd to verify current dir since Solaris 9 is
650 sometimes resolving symlinked paths.
652 2005-09-14 Derek Price <derek@ximbiot.com>
654 * edit.c (edit_usage, unedit_usage, editors_usage), watch.c
655 (watch_usage, watchers_usage): Add quotes and reword for clarity and
658 * edit.c (edit_usage): Add missing syntax. Reword description for
659 clarity. Mention default behavior.
661 2005-09-13 Derek Price <derek@ximbiot.com>
663 * sanity.sh: Split $username into $username & $username8. Rename
664 $author as $anyusername.
666 2005-09-12 Derek Price <derek@ximbiot.com>
668 * sanity.sh (binfiles-con1b): Back out accidental addition.
670 * sanity.sh (username): Cut $username down to 8 characters when longer,
671 since that is all that appears in output.
673 2005-09-07 Derek Price <derek@ximbiot.com>
675 Close <http://savannah.nongnu.org/bugs/?func=detailitem&item_id=14462>.
676 * rcs.c (RCS_parse): Free variable *after* using it for the last time.
678 2005-09-06 Derek Price <derek@ximbiot.com>
680 * rcs.c (RCS_putdtree): Remove unused variable.
682 2005-09-06 Mark D. Baushke <mdb@gnu.org>
684 Close <https://savannah.nongnu.org/bugs/?func=detailitem&item_id=14435>.
685 * rcs.c (RCS_putdtree): Avoid stack overflow which may be
686 possible with excessive recursive calls to RCS_putdtree().
687 (Patch from Serg Masyutin.)
689 2005-09-03 Derek Price <derek@ximbiot.com>
691 * add.c (add_usage): Standardize usage message somewhat.
693 2005-09-02 Larry Jones <lawrence.jones@ugs.com>
695 * commit.c (checkaddfile): Improve error messages for lock_RCS failure.
696 * release.c (release): Improve error message for pclose failure.
698 * root.h (struct cvsroot_s): Always declare isremote to simplify
699 other code. Simplify referencing code.
700 * root.c (new_cvsroot_t): Always initialize isremote.
701 * server.h: Always declare server_active to simplify other code.
702 Simplify referencing code.
703 * server.c: Always define server_active.
705 2005-09-01 Derek Price <derek@ximbiot.com>
707 * main.c, wrapper.c: Update links.
709 2005-09-01 Derek Price <derek@ximbiot.com>
711 * recurse.c: Update bug report email address.
713 2005-08-30 Larry Jones <lawrence.jones@ugs.com>
715 * import.c (import_descend): Lock repository directory during import.
717 2005-07-12 Derek Price <derek@ximbiot.com>
719 * buffer.c, buffer.h, client.h, expand_path.c, history.c, myndbm.h,
720 release.c: Add copyright notices.
722 2005-07-11 Derek Price <derek@ximbiot.com>
724 * buffer.c, buffer.h, client.h, expand_path.c, history.c, myndbm.h,
725 release.c: Update license notices.
727 2005-06-22 Larry Jones <lawrence.jones@ugs.com>
729 * vers_ts (Version_TS): Don't allow command line keyword expansion
730 modes to override binary mode.
731 * sanity.sh (): Tests for the above.
734 2005-06-06 Conrad T. Pino <Conrad@Pino.com>
736 * cvs.h: Reverse patch committed 2005-05-27 by Conrad T. Pino.
737 * run.c: Reverse patch committed 2005-05-27 by Conrad T. Pino.
739 2005-06-02 Derek Price <derek@ximbiot.com>
741 * zlib.c (compress_buffer_shutdown_input): Don't attempt to read EOF
742 from the client during shutdown. It might never be sent.
743 * sanity.sh (abspath2): Test for this.
745 2005-05-31 Derek Price <derek@ximbiot.com>
746 for Alexander Taler <alex@0--0.org>
748 * rcscmds.c: Change type of call_diff_argc_allocated from int to
749 size_t, to match the prototype of run_add_arg_p(). This fixes a
750 bus error in OpenBSD 3.6 sparc64.
752 2005-05-27 Conrad T. Pino <Conrad@Pino.com>
754 * cvs.h: Replace "run_arg" function with "#define run_arg run_add_arg",
755 add "run_add_arg" prototype, change "piped_child" prototype to be same
756 as feature branch to reflect "(os2,src,windows-NT)/run.c" changes.
757 * run.c: Remove "run_arg" to synchronize with "../windows-NT/run.c".
758 Function "run_add_arg" scope was "static" and is now "extern" scope.
759 Synchronize "piped_child" function arguments with feature branch.
761 2005-05-27 Derek Price <derek@ximbiot.com>
763 * client.c (send_arg): Make arg const.
764 (send_option_string): Rename to...
765 (send_options): ...this and accept argc/argv in place of string.
766 * client.h: Update protos to match the changes to client.c.
767 * cvs.h (RCS_exec_rcsdiff, diff_exec): Update protos.
768 (run_add_arg_p, run_arg_free_p): New protos.
769 * diff.c (opts, opts_allocated): Replace with...
770 (diff_argv, diff_argc, diff_arg_allocated): ...these.
771 (add_diff_args): New convenience function.
772 (diff): Use new constructs and APIs.
773 * patch.c (patch_fileproc, RCS_checkin, RCS_delete_revs), rcscmds.c
774 (call_diff_add_arg, call_diff_setup, RCS_merge, RCS_exec_rcsdiff,
775 diff_exec, RCS_output_diff_options), update.c (patch_file): Use new
777 * run.c (run_add_arg_p, run_arg_free_p): New functions.
778 (run_argc_allocated): Make size_t.
779 (run_setup, run_add_arg): Use new functions.
780 * sanity.sh: Accomodate above changes.
781 (rcslib-diffrgx-3): Slip in test for space splitting.
783 2005-05-02 Derek Price <derek@ximbiot.com>
785 Remove unnecessary level of indirection.
786 * lock.c (L_HISTORY_LOCK, L_VAL_TAGS_LOCK): Remove macros.
787 (internal_lock, internal_clear_lock): Accept lock as argument.
788 (history_lock, clear_history_lock, val_tags_lock, clear_val_tags_lock):
789 Replace old macro arg with an actual lock pointer.
791 2005-05-02 Derek Price <derek@ximbiot.com>
793 * lock.c (internal_lock, internal_clear_lock): Add protos.
794 (history_lock, val_tags_lock): Return the chartered true/false status.
796 2005-05-02 Derek Price <derek@ximbiot.com>
798 * cvs.h (CVSHISTLCK): Rename macro to...
799 (CVSHISTORYLCK): ...this.
800 (CVSVALTAGSLCK): New macro.
801 (val_tags_lock, clear_val_tags_lock): New functions.
802 * lock.c (global_val_tags_lock): New global.
803 (Lock_Cleanup): Clean up after val-tags lock if necessary.
804 (L_HISTORY_LOCK, L_VAL_TAGS_LOCK): New local macros.
805 (internal_lock, internal_clear_lock, val_tags_lock,
806 clear_val_tags_lock): New functions.
807 (history_lock, clear_history_lock): Use new internal functions.
808 * tag.c (is_in_val_tags, add_to_val_tags): New functions using the
809 write-lock for val-tags and factored from...
810 (tag_check_valid): ...this function.
811 * sanity.sh (lockfiles-22): Add val-tags lock test.
813 2005-04-28 Derek Price <derek@ximbiot.com>
815 * cvs.h (history_lock, clear_history_lock): New protos.
816 * lock.c (struct lock): Add lockdirname.
817 (global_history_lock): New global.
818 (global_read_lock): Initialize.
819 (lock_name): Handle const args.
820 (lock_simple_remove): Factor out code in favor of clear_lock call.
821 (set_lock): Handle variable lockdirname.
822 (lock_filesdoneproc): Set new lockdirname.
823 (history_lock, clear_history_lock): New functions.
824 (clear_lock): Avoid segfault on missing lock.
825 (Lock_Cleanup): Clean up history locks when necessary.
826 * history.c (history_write): Use new lock.
827 * sanity.sh (lockfiles-20): Test new lock.
829 2005-04-28 Derek Price <derek@ximbiot.com>
831 * sanity.sh (lockfiles): Port some locking tests over from 1.12.x.
833 2005-04-28 Derek Price <derek@ximbiot.com>
835 * lock.c (clear_lock): Improve comment.
837 2005-04-28 Derek Price <derek@ximbiot.com>
839 * lock.c (struct lock): Store lockdir name.
840 (masterlock): Remove global.
841 (remove_lock_files, clear_lock, set_lock): Update to compensate.
843 2005-04-20 Derek Price <derek@ximbiot.com>
845 * sanity.sh (rcs5): Minor cosmetic change.
847 2005-04-20 Derek Price <derek@ximbiot.com>
849 * sanity.sh (tests): Add rcs4.
850 (rcs5): Add comments.
852 2005-04-20 Derek Price <derek@ximbiot.com>
854 * rcs.c (expand_keywords): Avoid buffer overflow.
855 (Original patch from Stewart Brodie <stewart@eh.org>.)
857 * sanity.sh (rcs5): New tests for the above.
859 2005-03-17 Derek Price <derek@ximbiot.com>
861 * login.c (password_entry_parseline): Avoid using uninitialized
863 * rcs.c (RCS_deltas): Avoid buffer overflow.
864 (RCS_checkout): Avoid using uninitialized loglen.
865 * patch.c (patch_fileproc): Free original pointer, not one that may
866 have been incremented.
867 (Thanks to report from Alen Zukich <alen.zukich@klocwork.com>.)
869 2005-03-17 Derek Price <derek@ximbiot.com>
871 * commit.c (checkaddfile): Avoid dereferencing a NULL pointer in
872 response to a rare error.
873 * admin.c (admin_fileproc), log.c (log_expand_revlist), mkmodules.c
874 (checkout_file), rcs.c (RCS_getdate, RCS_deltas, RCS_findlock_or_tip,
875 RCS_tag2rev): Avoid dereferencing NULL pointer.
876 (Thanks to report from Alen Zukich <alen.zukich@klocwork.com>.)
878 2005-03-17 Derek Price <derek@ximbiot.com>
880 * rcs.c (RCS_reparsercsfile): Avoid memory leak.
881 (Thanks to report from Alen Zukich <alen.zukich@klocwork.com>.)
883 2005-03-17 Derek Price <derek@ximbiot.com>
885 * log.c (log_expand_revlist): Suppress message and not error handling
888 2005-03-17 Derek Price <derek@ximbiot.com>
890 * client.c (call_in_directory): Put function call after var decls.
892 2005-03-16 Derek Price <derek@ximbiot.com>
894 * client.c (call_in_directory), commit.c (commit_filesdoneproc), log.c
895 (log_expand_revlist, log_version), logmsg.c (logfile_write), modules
896 (my_module), no_diff.c (No_Difference), parseinfo.c (Parse_Info), rcs.c
897 (RCS_deltas, RCS_checkin, RCS_addbranch, do_locks, do_symbols),
898 rcscmds.c (RCS_merge), root.c (parse_cvsroot, normalize_cvsroot),
899 update.c (merge_file): Verify assumptions via assertions.
900 (Thanks to (probably) incorrect reports from Alen Zukich
901 <alen.zukich@klocwork.com>.)
903 2005-03-16 Derek Price <derek@ximbiot.com>
905 * server.c (create_adm_p, serve_entry), tag.c (rtag_proc): Avoid memory
907 (Thanks to report from Alen Zukich <alen.zukich@klocwork.com>.)
909 2005-03-15 Mark D. Baushke <mdb@cvshome.org>
911 * history.c (select_hrec): Avoid possible memory leak.
913 2005-03-15 Derek Price <derek@ximbiot.com>
915 * patch.c (patch_proc): Avoid memory leak.
916 (Thanks to report from Alen Zukich <alen.zukich@klocwork.com>.)
918 2005-03-11 Mark D. Baushke <mdb@cvshome.org>
920 * modules.c (my_module): Protect against free (NULL) code path.
922 2005-03-11 Derek Price <derek@ximbiot.com>
924 * annotate.c (rannotate_proc), fileattr.c (fileattr_write), rcs.c
925 (RCS_deltas), server.c (check_repository_password), update.c (update):
927 (Thanks to report from Alen Zukich <alen.zukich@klocwork.com>.)
929 2005-03-09 Derek Price <derek@ximbiot.com>
931 * add.c (add, add_directory), buffer.c (allocate_buffer_datas),
932 client.c (update_entries), commit.c (checkaddfile), entries.c
933 (Entries_Open), fileattr.c (fileattr_read), ignore.c (ign_add),
934 import.c (import), main.c (main), parseinfo.c (parse_config), rcs.c
935 (RCS_reparsercsfile, RCS_getbranchpoint, RCS_checkout,
936 RCS_delete_revs, apply_rcs_changes): Avoid memory leaks.
937 (Thanks to report from Alen Zukich <alen.zukich@klocwork.com>.)
939 * hardlink.c, hardlink.h: Avoid compiling entire contents of these
940 files w/o preserve permissions support.
942 2005-03-09 Mark D. Baushke <mdb@cvshome.org>
944 * history.c (history, save_file): Cleanup the API to match the
947 2005-02-27 Jim Meyering <jim@meyering.net>
949 * login.c (password_entry_operation): Exit nonzero when
950 failing to close a just-appended-to .cvspass file.
952 2005-02-26 Larry Jones <lawrence.jones@ugs.com>
954 * release.c (release): Remove unneeded code.
956 2005-02-22 Derek Price <derek@ximbiot.com>
958 * edit.c: Load watch settings before setting new ones with
960 (Original patch from Jim Hyslop <jhyslop@ieee.org>.)
962 * sanity.sh (watch6): New tests for same.
963 (Outline from Jim Hyslop <jhyslop@ieee.org>.)
965 2005-02-21 Mark D. Baushke <mdb@cvshome.org>
967 * import.c (import): Avoid using assert with side effects it may
968 be configured away using NDEBUG.
969 (Patch from Frank Hemer <frank@hemer.org>.)
971 2005-02-08 Derek Price <derek@ximbiot.com>
973 * build_src.com: Build stack.c on VMS.
974 (Suggestion from Piet Schuermans <pschuermans@mac.com>.)
976 2005-02-01 Larry Jones <lawrence.jones@ugs.com>
978 * log.c (log_fileproc, log_expand_revlist): Add support for BASE tag.
979 * sanity.sh (log): New tests for above.
981 2005-01-31 Derek Price <derek@ximbiot.com>
983 * main.c: Update year in copyright notice to match GNU standards.
984 * sanity.sh (version-1): Update to match.
986 2005-01-31 Derek Price <derek@ximbiot.com>
988 * main.c: Rephrase --version message.
989 * sanity.sh (version-1): Update to match.
991 2005-01-31 Derek Price <derek@ximbiot.com>
993 * Makefile.am, add.c, admin.c, annotate.c, checkin.c, checkout.c,
994 classify.c, commit.c, create_adm.c, cvs.h, cvsrc.c, diff.c, entries.c,
995 find_names.c, hash.c, hash.h, history.h, import.c, lock.c, log.c,
996 login.c, logmsg.c, main.c, mkmodules.c, modules.c, myndbm.c, no_diff.c,
997 parseinfo.c, patch.c, rcs.c, rcs.h, rcscmds.c, recurse.c, remove.c,
998 repos.c, root.c, root.h, server.h, stack.c, stack.h, status.c, subr.c,
999 tag.c, update.c, vers_ts.c, version.c: Update copyright notices.
1001 2005-01-29 Derek Price <derek@ximbiot.com>
1003 * log.c (log_usage): Add note about using -S with revision info
1004 supression and selection.
1005 (Suggestion from Dan Peterson <dbpete@aol.com>.)
1007 2004-12-19 Larry Jones <lawrence.jones@ugs.com>
1009 * expand_path.c (expand_path): Rewrite using offsets instead of
1010 pointers to simplify and avoid reallocation bugs.
1011 (Inspired by Jeremy Bopp <jeremy@motive.com>.)
1013 2004-12-09 Derek Price <derek@ximbiot.com>
1015 * sanity.sh (tests): Add modules7.
1017 2004-12-09 Derek Price <derek@ximbiot.com>
1019 * sanity.sh (modules7): New test group.
1020 (Based on a patch from Mark D. Baushke <mdb@cvshome.org>, based on a
1021 report from Richard Verhoeven <Richard_Verhoeven@WestLB.de>.)
1023 2004-11-18 Mark D. Baushke <mdb@cvshome.org>
1025 * checkout.c (checkout_proc): Passing the repository to
1026 tag_check_valid seems to stop the assertion failure in recurse.c
1028 * sanity.sh (basic2-21a): Removed.
1029 (basic2-21b): Fixed.
1031 2004-11-17 Mark D. Baushke <mdb@cvshome.org>
1033 * sanity.sh (basic2-21a): The val-tags file should have
1034 at least 'rtagged-by-head y' in it.
1035 (basic2-21b): New test showing a cvs bug when val-tags
1036 is not properly updated.
1037 (Report from "John Elgin" <John@JCElgin.com>.)
1039 2004-11-17 Mark D. Baushke <mdb@cvshome.org>
1041 * client.c (handle_m, handle_e): Winsock is returning
1042 SOCK_ERRNO == WSAENOTSOCK for select() problems and not
1043 setting errno. Do not bother with printing an error from a
1044 select() that is not returning an non-zero errno.
1045 (Report from Conrad T. Pino <Conrad@Pino.com>.)
1047 2004-11-10 Derek Price <derek@ximbiot.com>
1049 * sanity.sh: Maintain pass/skip/warn status and output at end.
1050 (usage): Note new functionality of -e.
1051 (warn): New function.
1052 (verify_tmp_empty): Warn instead of failing. Delete turds if warn()
1055 2004-11-10 Derek Price <derek@ximbiot.com>
1057 * sanity.sh (verify_tmp_empty): New function.
1058 (dotest_internal_*): Call verify_tmp_empty as needed.
1060 2004-11-09 Mark D. Baushke <mdb@cvshome.org>
1062 * sanity.sh: Backport find_tool changes from 1.12.9.1.
1063 (SEARCHPATH): New list of PATH directories to search.
1064 (Which): Use $SEARCHPATH. Support -a switch.
1065 (badtools,set_bad_tool,is_bad_tool): Keep track of tools that do
1067 (version_test): Obtain the version of tools under test if
1069 (tool_find): Rewrite. API changed to allow a list of
1070 tests to be used against a list of possible command names found on
1072 (id_tool_test): Check that 'id -u' and 'id -un' work.
1073 (expr_tooltest1): Check for NextStep 3.3 expr bug.
1074 (expr_tooltest2): Check for SunOS expr multi-line pattern bug.
1075 (expr_create_bar): Create a test file for expr testing.
1076 (expr_tooltest3): Use it and test for big multi-line identity
1078 (expr_set_ENDANCHOR): Find and set the right value for ENDANCHOR.
1079 (expr_set_DOTSTAR): Find and set the right value for DOTSTAR.
1080 (expr_tooltest_DOTSTAR): Ensure that DOTSTAR works with big
1082 (tr_tooltest1): Verify that tr handles NUL bytes.
1083 (awk_tooltest1): Verify that awk the BEGIN clause works properly.
1084 (awk_tooltest2): Verify that print %c format item works properly.
1086 2004-11-02 Mark D. Baushke <mdb@cvshome.org>
1088 * filesubr.c (MAXSIZE): New macro.
1089 (xreadlink): Ensure initial buffer size does not exceed MAXSIZE.
1090 Avoid cast. If readlink fails with buffer size just under MAXSIZE,
1091 try again with MAXSIZE.
1093 2004-11-02 Mark D. Baushke <mdb@cvshome.org>
1095 * filesubr.c (xreadlink): AIX and HP-UX readlink() returns ERANGE
1096 when there is not enough room in the buffer.
1098 2004-11-01 Derek Price <derek@ximbiot.com>
1100 * sanity.sh (rcslib): Fix typo in path.
1102 2004-11-01 Derek Price <derek@ximbiot.com>
1104 * sanity.sh (rcslib): Test a link to a path longer than 128
1107 2004-10-29 Derek Price <derek@ximbiot.com>
1109 * filesubr.c (xreadlink): Make sure allocation is tried once at the
1110 maximum buffer size. Protect against overflow.
1112 2004-10-29 Mark D. Baushke <mdb@cvshome.org>
1114 * filesubr.c (SIZE_MAX, SSIZE_MAX): Use #include "xsize.h" instead.
1115 (xreadlink): Use xrealloc instead of xmalloc/free.
1117 2004-10-29 Mark D. Baushke <mdb@cvshome.org>
1119 * filesubr.c (SIZE_MAX, SSIZE_MAX): New constants.
1120 (xreadlink): Deal with symlinks longer than 127 bytes.
1121 (Problem reported as issue 190 by Gottfried Ganssauge
1122 <gotti@cvshome.org>.)
1124 2004-10-28 Mark D. Baushke <mdb@cvshome.org>
1126 * release.c (release): Allow builds of cvs with --disable-server
1127 --disable-client both used for local installation configuration.
1128 * root.c (Name_Root): Ditto.
1129 * update.c (checkout_file): Ditto.
1130 (Problem reported by Jean Olivier Caron <jecar@mlab.t.u-tokyo.ac.jp>.)
1132 2004-10-27 Mark D. Baushke <mdb@cvshome.org>
1134 * cvs.h (RCS_FLAGS_USETIME): New flag.
1135 * rcs.c (RCS_checkin): Add citime argument.
1136 * rcs.h (RCS_checkin): Ditto.
1137 * checkin.c (Checkin): Pass new RCS_checkin argument.
1138 * commit.c (remove_file, checkaddfile): Ditto.
1139 * import.c (add_rev): Ditto.
1141 * sanity.sh (tagdate): Delete tagdate-19b as an incorrect test.
1143 2004-10-27 Mark D. Baushke <mdb@cvshome.org>
1145 * sanity.sh (tagdate): Provide more output.
1147 2004-10-26 Mark D. Baushke <mdb@cvshome.org>
1149 * commit.c (checkaddfile): Create a dead version for a new file
1150 added to a branch. Fixes FIXCVS for tagdate tests.
1151 * sanity.sh (tagdate): Update to expect correct results.
1152 (death2, branch-after-import, join, ignore-on-branch): Ditto.
1154 2004-10-26 Derek Price <derek@ximbiot.com>
1156 * client.c (connect_to_gserver): Avoid truncating error messages from
1158 (Report from Dan Peterson <dbpete@aol.com>.)
1160 2004-10-26 Derek Price <derek@ximbiot.com>
1162 * sanity.sh (import-quirks): Test an even branch number.
1164 2004-10-25 Derek Price <derek@ximbiot.com>
1166 * import.c (import): Repair regex for regressions introduced in last
1168 * sanity.sh (import-quirks): Test a few branch numbers import shouldn't
1169 have a problem with.
1171 2004-10-25 Derek Price <derek@ximbiot.com>
1173 * import.c (import): Anchor and simplify branch verification regex.
1174 * sanity.sh (import-quirks): Test another pattern that should fail.
1176 2004-10-25 Mark D. Baushke <mdb@cvshome.org>
1178 * sanity.sh (tagdate): Added some additional tests and FIXCVS
1179 comments for dealing properly with a 'cvs add' of a file to
1180 a branch that already exists on the mainline.
1181 (Problem reported by Renny Barrett <rbarrett@curamsoftware.com>.)
1183 * sanity.sh (getrlogdate): New shell function.
1184 (tagdate-{13,14,16}): Use it to avoid 'sleep 60' by using
1185 the exact 1.1.4.1 timestamp for tagdate-14 and tagdate-16.
1187 2004-10-22 Mark D. Baushke <mdb@cvshome.org>
1189 * sanity.sh (tagdate): Fix typo.
1191 2004-10-19 Derek Price <derek@ximbiot.com>
1193 * add.c (add): Avoid attempting to resurrect a dead rev 1.1.
1194 * sanity.sh (resurrection): Add test for the above.
1195 (Report from Dan Peterson <dbpete@aol.com>.)
1197 2004-10-14 Derek Price <derek@ximbiot.com>
1199 * import.c (import): Verify branch specifications more thoroughly.
1200 * sanity.sh (importb): Adapt to new error message.
1201 (import-quirks): New test.
1203 2004-10-04 Derek Price <derek@ximbiot.com>
1205 * cvs.h (CVSROOT_DFLT): Undef rather than defining to NULL.
1206 * main.c (main): Untangle parsing of CVSROOT, eliminating several
1207 variables in the process. Simplify xmalloc/sprintf with asnprintf.
1209 2004-10-01 Mark D. Baushke <mdb@cvshome.org>
1211 * main.c (main): Initialize CVSroot before it is used.
1212 (Report and patch by Martin Neitzel <neitzel@sco.gaertner.de>.)
1213 * sanity.sh (status): Test it.
1215 2004-09-25 Mark D. Baushke <mdb@cvshome.org>
1217 * sanity.sh (parseroot2): Correct two test names. Restore CVSROOT.
1219 * sanity.sh (parseroot2): Expand dokeep inline.
1221 2004-09-24 Derek Price <derek@ximbiot.com>
1223 * sanity.sh (tests): Add parseroot2.
1225 2004-09-24 Derek Price <derek@ximbiot.com>
1227 * sanity.sh (parseroot2): New test for root parsing consistency.
1228 (Original patch from Alexander Taler <dissent@cvshome.org>.)
1230 * cvs.h (Name_Root, free_cvsroot_t, parse_cvsroot, local_cvsroot,
1231 Create_Root, root_allow_add, root_allow_free, root_allow_ok): Move
1234 * client.c (arg_should_not_be_sent_to_server), recurse.c
1235 (start_recusrion, do_recursion): Use new Name_Root API.
1236 * main.c (current_root): Remove global.
1237 (set_root_directory): Set current_parsed_root directly.
1238 (main): Use new Name_Root API. Restore deletion of root directories
1240 * root.c (Name_Root): Return a parsed cvsroot_t rather than a string.
1242 2004-09-23 Derek Price <derek@ximbiot.com>
1244 * sanity.sh (depends_on_ssh, sshstdio): Don't use skip() to skip
1247 2004-09-23 Mark D. Baushke <mdb@cvshome.org>
1249 * server.c (cvs_output, cvs_output_binary): fflush (stderr)
1250 here to avoid problems with 'cvs status 2>&1'.
1251 (Report by Frank Hemer <frank@hemer.org>.)
1253 2004-09-23 Derek Price <derek@ximbiot.com>
1255 * sanity.sh (crerepos, sshstdio): Minor modifications to make use of
1256 the new depends_on_?sh API.
1258 2004-09-23 Derek Price <derek@ximbiot.com>
1260 * sanity.sh: Accept new -e option to interpret non-fatal calls to skip
1262 (skip, depends_on_rsh, depends_on_ssh): New functions.
1264 2004-09-12 Mark D. Baushke <mdb@cvshome.org>
1266 * rcs.c (RCS_checkout): Allow noexec to do checkouts when
1267 server_active is true.
1268 * sanity.sh (join7): Test above change (fixes a FIXCVS).
1270 2004-09-08 Mark D. Baushke <mdb@cvshome.org>
1272 * sanity.sh (join7): Fix if-then-else conditional.
1274 * server.c (server_updated): Deal with cvs -n update -jt1 -jt2
1275 "protocol error: uncounted data discarded" problem.
1276 * sanity.sh (join7): New test for this case.
1278 2004-08-24 Derek Price <derek@ximbiot.com>
1280 * recurse.c (start_recursion): Don't shorten //. to / (use //).
1282 2004-08-24 Derek Price <derek@ximbiot.com>
1284 * recurse.c (start_recursion): Strip trailing CWD indirections on
1286 * sanity.sh (rstar-toplevel): Update to account for new behavior.
1287 (Report from Dan Peterson <dbpete@aol.com>.)
1289 2004-08-24 Mark D. Baushke <mdb@cvshome.org>
1291 * recurse.c (do_recursion): Correct test for calling
1292 server_pause_check to occur when locktype != CVS_LOCK_WRITE.
1293 (Patch suggested by Ian Lance Taylor <ian@wasabisystems.com>
1296 2004-08-24 Derek Price <derek@ximbiot.com>
1298 * rcs.c (translate_symtag): Prevent infinite loop.
1299 * tag.c (tag_check_valid): Check tag syntax before searching for tags.
1300 * sanity.sh (tag-space): Some tests for the above.
1301 (Report from Dan Peterson <dbpete@aol.com>.)
1303 2004-08-24 Mark D. Baushke <mdb@cvshome.org>
1305 * ignore.c (ignore_directory): Include the terminating NUL
1306 character in the directory name comparison to avoid matching
1307 substrings of directories by accident.
1308 (Report and suggested fix from James E Wilson
1309 <wilson@specifixinc.com>.)
1310 * sanity.sh (modules4): Add some more tests testing the above
1313 2004-08-17 Mark D. Baushke <mdb@cvshome.org>
1315 * sanity.sh (sshstdio): Fix comment typo plus gratuitous
1318 * client.c (handle_m): Workaround to deal with stdio getting put
1319 into non-blocking via redirection of stderr and interaction with
1320 ssh on some platforms. On those boxes, stdio can put stdout
1321 unexpectedly into non-blocking mode which may lead to fwrite() or
1322 fflush() failing with EAGAIN, but cvs not checking for the error.
1323 (Patch suggested by Frank Hemer <frank@hemer.org>.)
1325 * client.c (handle_e): Similar fix for stderr.
1326 * sanity.sh (sshstdio): New test for non-blocking stdio via ssh.
1328 2004-08-11 Derek Price <derek@ximbiot.com>
1330 * sanity.sh (basicc): Work around a problem in Linux 2.2 & Bash 2.05b
1331 which prevents a `cd ..' from a deleted directory from working.
1332 (Original patch from Matthew Ogilvie <mmo9317bd@mailcan.com>.)
1334 2004-06-22 Derek Price <derek@ximbiot.com>
1336 * wrapper.c: Add explicit "void" return type to "wrap_clean_fmt_str"
1338 (Patch from Conrad T. Pino <Conrad@Pino.com>.)
1340 2004-06-09 Derek Price <derek@ximbiot.com>
1342 * commit.c, filesubr.c, history.c, server.c, wrapper.c: Various
1344 (Original patch from Stefan Essler <s.esser@e-matters.de> & Sebastian
1345 Krahmer <krahmer@suse.de>.)
1347 * cvs.h: Include xsize.h.
1349 2004-06-09 Derek Price <derek@ximbiot.com>
1351 * server.c (serve_entry, serve_is_modified, serve_unchanged): Protect
1352 against malformed entries.
1353 * sanity.sh (server): Tests for same.
1355 2004-06-07 Larry Jones <lawrence.jones@ugsplm.com>
1357 * sanity.sh (basica): More tests for string-based revision inc.
1359 2004-06-04 Larry Jones <lawrence.jones@ugsplm.com>
1361 * subr.c (increment_revnum): Rewrite ala RCS to work directly on
1362 the string rather than converting to int to avoid overflow.
1363 * sanity.sh (basica): New tests for above, update others to match.
1365 2004-05-19 Derek Price <derek@ximbiot.com>
1367 * server.c (serve_unchanged, serve_is_modified): Overwrite existing
1368 data in timefields. Fixes CAN-2004-0396.
1370 2004-05-14 Derek Price <derek@ximbiot.com>
1372 * subr.c (file_has_conflict), vers_ts.c (time_stamp_server): Don't
1373 require '=' to be the only character here, as this is potentially
1376 2004-05-14 Mark D. Baushke <mdb@cvshome.org>
1378 * sanity.sh (trailingslashes): During cleanup remove topfile,v to
1379 avoid problems in later tests (editor-1).
1381 2004-05-13 Derek Price <derek@ximbiot.com>
1383 * sanity.sh (trailingslashes): Note TODO item #205 in the comment.
1385 2004-05-13 Derek Price <derek@ximbiot.com>
1387 * sanity.sh (trailingslashes): New tests to expose a bug in CVS when
1388 paths are specified with trailing slashes. This relates to TODO #205.
1390 2004-05-12 Derek Price <derek@ximbiot.com>
1392 * subr.c (file_has_conflict), vers_ts.c (time_stamp_server): Only
1393 special case "=" when it is the only character in a timestamp field.
1394 Gratuitous reformatting.
1395 * vers_ts.c (time_stamp_server): Check for NULL in a consistent manner.
1396 Gratuitous reformatting.
1398 2004-05-10 Derek Price <derek@ximbiot.com>
1400 * sanity.sh (top-level): Rename to...
1401 (rstar-toplevel): ...this for clarity.
1403 2004-05-10 Derek Price <derek@ximbiot.com>
1405 * sanity.sh (dirs2-10ar): Remove unnecessary empty argument.
1407 2004-05-02 Larry Jones <lawrence.jones@ugsplm.com>
1409 * log.c (log_expand_revlist): Suppress warnings if really_quiet.
1411 2004-05-07 Derek Price <derek@ximbiot.com>
1413 * sanity.sh (basica): Remove unnecessary empty arguments.
1415 2004-05-07 Derek Price <derek@ximbiot.com>
1417 * cvs.h (fopen_case): Remove obsolescent prototype.
1419 2004-05-05 Derek Price <derek@ximbiot.com>
1421 * sanity.sh: Wait a second and retry if cvs-serv* directories are
1422 discovered to avoid race conditions on some systems.
1423 (Patch from Pavel Roskin <proski@gnu.org>.)
1425 2004-05-05 Derek Price <derek@ximbiot.com>
1427 * commit.c: Some gratuitous reformatting.
1429 2004-05-04 Derek Price <derek@ximbiot.com>
1431 * update.c: Some gratuitous reformatting.
1433 2004-05-04 Derek Price <derek@ximbiot.com>
1435 * add.c (add): Remove obsolete FIXME comment.
1436 (*): Some gratuitous reformatting.
1438 2004-04-26 Derek Price <derek@ximbiot.com>
1440 * client.c (start_rsh_server): Don't rely on GNU argument processing
1441 capabilities in the RSH command.
1442 (Report from Mark Andrews <Mark_Andrews@isc.org>.)
1444 2004-04-19 Derek Price <derek@ximbiot.com>
1446 * ignore.c: Gratuitous reformatting.
1448 2004-04-11 Derek Price <derek@ximbiot.com>
1450 * client.c (call_in_directory): Check paths the server sends us to make
1451 sure they are within a sandbox the user requested be updated.
1452 (is_valid_client_path, path_list_prefixed): New functions.
1454 2004-04-11 Derek Price <derek@ximbiot.com>
1456 * modules.c (do_module): Don't allow up-level references in paths to
1457 step out of the repository.
1458 * sanity.sh (multiroot3): Update tests and add a few more.
1460 2004-04-07 Derek Price <derek@ximbiot.com>
1462 * sanity.sh (parseroot): Replace hard path with $HOME.
1464 2004-04-07 Derek Price <derek@ximbiot.com>
1466 * sanity.sh (parseroot): s/oberon/$username/.
1468 2004-04-07 Derek Price <derek@ximbiot.com>
1470 * client.c (start_tcp_server): Use xstrdup rather than
1471 xmalloc(strlen)/strcpy.
1473 2004-04-07 Derek Price <derek@ximbiot.com>
1475 * root.c (parse_cvsroot): Ignore method options.
1476 * sanity.sh (parseroot): Verify that method options are ignored.
1478 2004-04-06 Derek Price <derek@ximbiot.com>
1480 * root.h (cvsroot_t): Move username, password, hostname, port inside
1481 CLIENT_SUPPORT ifdefs.
1482 * buffer.c, root.c, server.c: Add #ifdefs as necessary so that this
1483 will compile without client support and the root.h change. Some
1484 gratuitous restyling.
1486 2004-04-06 Derek Price <derek@ximbiot.com>
1488 * log.c, tag.c: Gratuitous restyling.
1490 2004-04-04 Derek Price <derek@ximbiot.com>
1492 * filesubr.c (isabsolute): Move...
1493 * subr.c: ...here and use new ISABSOLUTE macro.
1495 2004-04-04 Derek Price <derek@ximbiot.com>
1497 * client.c (send_file_names): Cast out an unneeded const to avoid a
1500 2004-04-03 Larry Jones <lawrence.jones@ugsplm.com>
1502 * client.c (send_file_names): Remove unused variables.
1504 2004-04-02 Derek Price <derek@ximbiot.com>
1506 * sanity.sh (client): Honor $keep.
1508 2004-04-02 Derek Price <derek@ximbiot.com>
1510 * log.c, patch.c, rcs.c: Gratuitous restyling.
1512 2004-04-02 Derek Price <derek@ximbiot.com>
1514 * import.c (import): Use ISDIRSEP rather than testing paths against `/'
1515 directly. Some gratuitos reformatting.
1517 2004-04-02 Derek Price <derek@ximbiot.com>
1519 * sanity.sh: Note the effectiveness of `tail -f check.log' in providing
1522 2004-04-02 Derek Price <derek@ximbiot.com>
1524 * client.c (send_file_names): Move code which calculates and sends
1526 (send_max_dotdot): ...to this new function.
1527 (send_files): Call send_max_dotdot.
1528 * sanity.sh (files-14): Expect .. in paths to work now.
1529 (status): Add a few new tests using `..'.
1531 2004-04-01 Derek Price <derek@ximbiot.com>
1533 * lock.c: Gratuitous restyling.
1535 2004-04-01 Derek Price <derek@ximbiot.com>
1537 * cvs.h, server.c: Gratuitous restyling.
1538 * run.c (run_exec): Ditto, plus call cvs_flush{out,err}() instead of
1539 flushing stderr & stdout directly.
1541 2004-03-29 Derek Price <derek@ximbiot.com>
1543 * server.c: Gratuitous restyling.
1545 2004-03-29 Derek Price <derek@ximbiot.com>
1547 * login.c: Gratuitous restyling.
1549 2004-03-22 Derek Price <derek@ximbiot.com>
1551 * sanity.sh (toplevel): Remove FIXME type comment and unneeded
1554 2004-03-22 Derek Price <derek@ximbiot.com>
1556 * update.c: Some minor style cleanup.
1558 2004-03-22 Derek Price <derek@ximbiot.com>
1560 * sanity.sh (top-level): Don't match most of the assertion since this
1561 string is often system dependent.
1562 (Thanks to Larry Jones <lawrence.jones@ugsplm.com>.)
1564 2004-03-22 Derek Price <derek@ximbiot.com>
1566 * sanity.sh (top-level): Don't match the assertion's line number.
1568 2004-03-22 Derek Price <derek@ximbiot.com>
1570 * sanity.sh (top-level): New test to confirm assertion failure.
1572 2004-03-22 Derek Price <derek@ximbiot.com>
1574 * sanity.sh: Only verify argument to -f when -f was passed. Check for
1575 $TMPDIR/cvsXXXXXX temp files after each test.
1577 2004-03-22 Derek Price <derek@ximbiot.com>
1579 * sanity.sh: Verify that the argument to -f is really a test.
1581 2004-03-20 Larry Jones <lawrence.jones@ugsplm.com>
1583 * cvs.h: Change command_name to cvs_command_name to avoid conflict
1584 on HP-UX (incredibly, it declares a global command_name in prot.h,
1585 which is included from shadow.h, which we include in server.c).
1586 Change all references.
1588 * subr.c (previous_rev): Fix == vs = typo.
1590 * buffer.h: Add prototype for buf_empty.
1592 * add.c (add): Remove unused variable.
1594 2004-03-20 Derek Price <derek@ximbiot.com>
1596 * add.c (add, add_directory, build_entry), admin.c (admin_dirproc),
1597 checkin.c (Checkin), checkout.c (safe_location, build_dirs_and_chdir),
1598 client.c (add_prune_candidate, send_repository, send_a_repository,
1599 send_to_server, start_rsh_server, send_arg, send_modified,
1600 send_ignproc, send_filesdone_proc, send_dirent_proc,
1601 send_dirleave_proc, client_notify), commit.c (check_direntproc,
1602 check_filesdoneproc, checkaddfile, commit_direntproc,
1603 commit_dirleaveproc, lock_RCS, precommit_proc, find_data,
1604 find_dirent_proc, find_ignproc, find_filesdoneproc), create_adm.c
1605 (Create_Admin), cvsrc.c (read_cvsrc), diff.c (diff_dirproc,
1606 diff_filesdoneproc, diff_dirleaveproc), edit.c (onoff_filesdoneproc,
1607 mark_up_to_date, editor_set, notify_proc_args, notify_proc, notify_do,
1608 notify_check), entries.c (Scratch_Entry, Register, WriteTag),
1609 expand_path.c (expand_variable, expand_path), fileattr.c
1610 (fileattr_startdir), filesubr.c (mkdir_if_needed, xchmod,
1611 last_component), history.c (history_write), ignore.c (ignore_directory,
1612 ignore_files), import.c (get_comment, add_rcs_file, expand_at_signs),xi
1613 lock.c (lock_filesdoneproc), log.c (log_dirproc), logmsg.c
1614 (logfile_write, rcsinfo_proc, update_logfile_proc, editinfo_proc,
1615 verifymsg_proc, do_editor, do_verify, Update_Logfile), main.c (main
1616 program_name, program_path, command_name), parseinfo.c (Parse_Info),
1617 patch.c (patch_dirproc), rcs.c (RCS_getdatebranch, rcs_lockfilename,
1618 RCS_parse, RCS_setattic, RCS_getversion, RCS_gettag, RCS_getbranch,
1619 RCS_getdate, RCS_datecmp, RCS_getrevtime, RCS_setexpand,
1620 expand_keywords, RCS_checkout, RCS_addbranch, RCS_checkin, RCS_lock,
1621 RCS_cmp_file, RCS_deltas, rcs_lockfilename, make_file_label),
1622 rcscmds.c (RCS_output_diff_options, call_diff, RCS_merge,
1623 RCS_exec_rcsdiff, diff_exec), recurse.c (start_recursion, do_recursion,
1624 do_file_proc), remove.c (remove_dirproc), repos.c (Name_Repository,
1625 Short_Repository), root.c (Name_Root, Create_Root), run.c
1626 (piped_child), server.c (output_dir, server_register,
1627 server_checked_in, server_update_entries, server_copy_file,
1628 server_set_entstat, server_clear_entstat, server_set_sticky,
1629 server_template, cvs_output_tagged), status.c (status_dirproc), subr.c
1630 (make_message_rcslegal), tag.c (pretag_proc, tag_dirproc,
1631 check_fileproc, check_filesdoneproc, tag_fileproc, val_direntproc),
1632 update.c (update_dirent_proc, update_dirleave_proc, update_ignproc,
1633 update_filesdone_proc, isemptydir), vers_ts.c (time_stamp_server,
1634 time_stamp), watch.c (watch_modify_watchers, addremove_filesdoneproc),
1635 zlib.c (read_and_gzip): Make most string args const, mainly in the
1636 interest of preserving repository & updatedir but including some
1637 collateral damage. Update a few functions to comply with new
1638 requirement. Some style fixes.
1639 * client.h, cvs.h, edit.h, fileattr.h, rcs.h, server.h, update.h,
1640 watch.h: Update prototypes to match.
1642 2004-03-20 Derek Price <derek@ximbiot.com>
1644 * sanity.sh (conflicts2): s/cvs/$testcvs/.
1646 2004-03-20 Derek Price <derek@ximbiot.com>
1648 * add.c (add): Correct longstanding resurrection bugs. Remove FIXME
1649 comment to this effect. Set mode and Entries timestamps of resurrected
1651 * sanity.sh (basica, binfiles, conflicts2, recase, resurrection,
1652 update-p): Update tests to compensate. Remove FIXCVS comments.
1654 2004-03-19 Mark D. Baushke <mdb@cvshome.org>
1656 * server.c (gserver_authenticate_connection): Handle large
1657 GSSAPI packets dynamically.
1658 (Bug report from Douglas Engert <DEEngert@anl.gov>)
1660 2004-03-19 Derek Price <derek@ximbiot.com>
1662 * cvs.h (pathname_levels, previous_rev): Remove leading underscore from
1663 prototype arguments to avoid potential conflicts with implementations.
1665 2004-03-18 Derek Price <derek@ximbiot.com>
1667 * cvs.h (pathname_levels): Make string argument const.
1668 * subr.c (pathname_levels): Simplify function.
1670 2004-03-17 Derek Price <derek@ximbiot.com>
1672 * subr.c (pathname_levels): Get it right this time.
1674 2004-03-17 Derek Price <derek@ximbiot.com>
1676 * subr.c (pathname_levels): Remove incorrect assertion and just
1677 return 0 when pathname is NULL.
1679 2004-03-17 Derek Price <derek@ximbiot.com>
1681 * subr.c (pathname_levels): Use ISDIRSEP() instead of strchr('/')
1682 and remove FIXME comment to that effect.
1684 2004-03-16 Derek Price <derek@ximbiot.com>
1686 * main.c (main): Update the --version Copyright (c) string to
1689 2004-03-15 Mark D. Baushke <mdb@cvshome.org>
1691 * release.c (release): Add missing xmalloc of update_cmd.
1693 2004-03-15 Derek Price <derek@ximbiot.com>
1695 * release.c (release): Enable authentication and encryption for a child
1696 update process when necessary.
1697 (Original patch from Dan Russell <russelld@aol.net> via Hal Mahaffey
1698 <HMahaffey@aol.com>.)
1700 2004-03-14 Derek Price <derek@ximbiot.com>
1702 * add.c (add): Only call server_updated() when we actual have a new
1703 resurrected file for the client.
1705 2004-03-14 Derek Price <derek@ximbiot.com>
1707 * cvs.h (previous_rev, write_letter): New prototypes.
1708 (struct file_info): Move to before the write_letter prototype.
1709 * add.c (add): Allow resurrection of files which used to exist on a
1711 * subr.c (previous_rev): New function.
1712 * update.c: Consolidate like pragmas.
1713 (write_letter): Remove prototype. Remove static declaration.
1714 * sanity.sh (resurrection): New tests.
1716 2004-03-14 Derek Price <derek@ximbiot.com>
1718 * commit.c (remove_file): Print the actual previous revision instead of
1720 * sanity.sh: Update to match.
1722 2004-03-14 Derek Price <derek@ximbiot.com>
1724 * rcs.c (RCS_cmp_file): Print the actual name of the file we failed to
1725 open in the error message.
1727 2004-03-14 Derek Price <derek@ximbiot.com>
1729 * diff.c (diff_fileproc): Allow diffing of new files against arbitrary
1730 revisions instead of assuming that there is no RCS archive file.
1732 2004-03-03 Derek Price <derek@ximbiot.com>
1734 * import.c (import): Check that the module name specified by the user
1735 does not contain `CVS' as a directory name.
1736 * ignore.c (ign_add): Never cease ignoring "CVS" - it is a reserved
1738 (Original patch from Dan Peterson <dbpete@aol.com>.)
1740 * sanity.sh (import-CVS): New tests for the above.
1742 2004-02-29 Larry Jones <lawrence.jones@ugsplm.com>
1744 * import.c (expand_at_signs): Change type of len to size_t.
1745 * subr.c (resolve_symlink): Move declaration of newname inside
1746 #ifdef, clean up coding style.
1747 * zlib.c (gunzip_and_write): Fix up potential overlow problems.
1748 (read_and_gzip): Add explicit casts to placate paranoid compilers.
1750 2004-02-28 Larry Jones <lawrence.jones@ugsplm.com>
1752 * sanity.sh (join6): New tests for previous fix.
1754 * update.c (join_file): One more fix to avoid dereferencing NULL.
1755 (Reported by Steve McIntyre <steve@einval.com>.)
1756 * sanity.sh (join6): New tests for above.
1758 2004-02-25 Larry Jones <lawrence.jones@ugsplm.com>
1760 * update.c (join_file): Fix optimization to avoid dereferencing NULL.
1761 (Reported by Steve McIntyre <steve@einval.com>.)
1763 2004-02-25 Derek Price <derek@ximbiot.com>
1765 * buffer.c (buf_empty): New function.
1766 * server.c (server): Check for unread data in buffer before closing.
1768 2004-02-25 Derek Price <derek@ximbiot.com>
1770 * release.c (release): Restore the initial directory before and after
1771 calling various sections of code that expect it to prevent corruption
1772 of CVS/Entries files on release of a subdir and tell unedit() what to
1774 * sanity.sh: Add test case for release.c fix.
1775 (Original patch from Matthew Ogilvie <mmo9317bd@mailcan.com>.)
1777 * client.c (last_entries): Move global variable...
1778 (call_in_directory): ...here (now a local variable). Remove test that
1779 always evaluates to true.
1780 (last_dir_name): Remove unused global variable.
1782 2004-02-24 Larry Jones <lawrence.jones@ugsplm.com>
1784 * filesubr.c (xresolvepath): Fix crash in error case.
1785 (Reported by Reinhard Zierke <zierke@informatik.uni-hamburg.de>.)
1787 2004-02-24 Derek Price <derek@ximbiot.com>
1789 * sanity.sh (crerepos): Minor stylistic changes to previous change.
1791 2004-02-24 Derek Price <derek@ximbiot.com>
1793 * sanity.sh (crerepos): Fix it so that it ignores the user's
1794 .cvsrc file (.cvsrc "checkout -r" used to cause the "rm -r 1"
1795 command to print warnings and wait for input).
1796 (Original patch from Matthew Ogilvie <mmo9317bd@mailcan.com>.)
1798 * sanity.sh (reposmv, parseroot, devcom3, binwrap3):
1799 s/_SAVED\>/_save/ for consistency.
1801 2004-02-20 Derek Price <derek@ximbiot.com>
1803 * subr.c (set_nonblock_fd): Move back to...
1804 * server.c: ...here.
1805 * cvs.h: Remove protos for the above two functions.
1806 * buffer.c (stdio_buffer_shutdown): Remove unexessary and possibly
1807 dangerous check for unread data on a pipe with a nonblock read.
1809 2004-02-20 Derek Price <derek@ximbiot.com>
1811 * ChangeLog, commit.c, filesubr.c, rcs.c, root.c, sanity.sh, subr.c,
1812 update.c: Remove VIM editor commands.
1814 2004-02-20 Larry Jones <lawrence.jones@ugsplm.com>
1816 * hash.h (struct node): Change data from char * to void *, change
1819 2004-02-19 Larry Jones <lawrence.jones@ugsplm.com>
1821 * login.c (password_entry_operation): Initialize line.
1823 2004-02-19 Derek Price <derek@ximbiot.com>
1825 * sanity.sh (crerepos): Correct comment.
1827 2004-02-19 Derek Price <derek@ximbiot.com>
1829 * sanity.sh (crerepos): Don't create directories named `tmp' in
1830 $TESTDIR to avoid conflicts with the default value of $TMPDIR.
1832 2004-02-19 Derek Price <derek@ximbiot.com>
1834 * sanity.sh (directory_cmp): Use $TESTDIR for temporary files, like the
1837 2004-02-19 Derek Price <derek@ximbiot.com>
1839 * sanity.sh: No longer allow user override of $tmp. Set $TMPDIR to a
1840 directory under $TESTDIR, as for $HOME, but still allowing for user
1841 override. Check for cvs-serv* directories under $TMPDIR rather than
1842 $tmp at the end of the script.
1844 2004-02-17 Derek Price <derek@ximbiot.com>
1846 * sanity.sh: Check for $PWD != $TESTDIR after each set of tests rather
1847 than once at the end. Check that there are no cvs-serv* directories in
1848 $tmp after each set of remote tests.
1850 2004-02-17 Derek Price <derek@ximbiot.com>
1852 * sanity.sh: Don't check for an empty $TESTDIR - if $TESTDIR was empty
1853 then the preceding call to mkdir would have failed anyhow.
1855 2004-02-17 Larry Jones <lawrence.jones@ugsplm.com>
1857 * log.c (rlog_proc): Fix (harmless) uninitialized variable.
1859 * sanity.sh (basicc): Add tests pointing out defective handling
1860 of the Entries file.
1862 2004-02-17 Derek Price <derek@ximbiot.com>
1864 * checkout.c (build_dir_and_chdir): Expand header comment.
1866 2004-02-15 Mark D. Baushke <mdb@cvshome.org>
1868 * annotate.c (rannotate_proc): Plug a memory leak.
1869 * log.c (log_fileproc): Ditto.
1870 * tag.c (tag_fileproc): Ditto.
1871 * update.c (checkout_file): Ditto.
1872 * server.c (server_updated): Do not buf_free (filebuf) here.
1874 2004-02-13 Larry Jones <lawrence.jones@ugsplm.com>
1876 * rcs.c (locate_rcs): Remove unused variables.
1878 2004-02-12 Mark D. Baushke <mdb@cvshome.org>
1880 * lock.c (readers_exist): Plug a memory leak.
1882 2004-02-12 Mark D. Baushke <mdb@cvshome.org>
1884 * server.c (do_cvs_command): Plug a memory leak.
1886 2004-02-12 Derek Price <derek@ximbiot.com>
1888 * modules.c: Reformat comment and line to fit in 80 chars.
1890 2004-02-12 Larry Jones <lawrence.jones@ugsplm.com>
1892 * modules.c (_do_module): Rename to my_module to avoid reserved name.
1893 * stack.c (_push, _pop, _unshift, _shift): Rename to do_*.
1895 2004-02-11 Larry Jones <lawrence.jones@ugsplm.com>
1897 * root.c (parse_cvsroot): Set hostname in fork mode for error messages.
1898 * buffer.c (stdio_buffer_shutdown): Undo previous change.
1900 2004-02-11 Mark D. Baushke <mdb@cvshome.org>
1902 * buffer.c (buf_free): Plug a memory leak.
1903 * commit.c (checkaddfile): Ditto.
1905 * server.c (fd_buffer_shutdown): Avoid a double free().
1907 * parseinfo.c (parse_config): Fix comments.
1909 2004-02-11 Derek Price <derek@ximbiot.com>
1911 * buffer.c (stdio_buffer_shutdown): Add logic to avoid attempting to
1912 print current_parsed_root->hostname when using the fork method.
1914 2004-02-11 Derek Price <derek@ximbiot.com>
1916 * server.c (do_cvs_command): Simplify stream & pipe closing.
1917 (Suggestion from Eric Siegerman <erics@telepres.com>.)
1919 * cvs.h, subr.c (set_block_fd): Remove this unnecessary function.
1921 2004-02-11 Derek Price <derek@ximbiot.com>
1923 * checkout.c (checkout_proc): s/is_absolute/isabsolute/.
1925 2004-02-11 Derek Price <derek@ximbiot.com>
1927 * checkout.c (checkout_proc): Remove unneeded variable and enclosing
1929 * modules.c (_do_modules): Minor whitespace change.
1931 2004-02-10 Derek Price <derek@ximbiot.com>
1933 * server.c (do_cvs_command): s/FIXCVS/FIXME/ in comment.
1934 (set_block_fd, set_nonblock_fd): Move to...
1936 * cvs.h: Add protos for the above two functions.
1937 * buffer.c (stdio_buffer_shutdown): Replace fgetc() which checked for
1938 unread data on a pipe with a nonblock read.
1940 2004-02-10 Derek Price <derek@ximbiot.com>
1942 * server.c (do_cvs_command): Have the server child close all the pipes
1943 but the flow control pipe and wait on an EOF on the flow control pipe
1944 from the parent when done to avoid a race condition that could
1945 otherwise generate a SIGPIPE for the parent before the SIGCHILD when
1946 the other pipes were so full after a child exited that the parent
1947 attempted to write a stop byte to the flow control pipe.
1948 (Original report from <jesse_off@stchome.com>.)
1950 2004-02-10 Derek Price <derek@ximbiot.com>
1952 * buffer.c (stdio_buffer_shutdown): Add a helpful comment.
1954 2004-02-09 Derek Price <derek@ximbiot.com>
1956 * sanity.sh (co-d): Update comments and tests to reflect the current
1957 state of my side of my discussion with Larry Jones on how these
1958 commands should behave.
1960 2004-02-09 Derek Price <derek@ximbiot.com>
1962 * sanity.sh (emptydir): Add two new tests for how modules -d behaves
1963 when a directory already exists in the user's workspace.
1964 (emptydir): Add --keep functionality.
1966 2004-02-09 Derek Price <derek@ximbiot.com>
1968 * sanity.sh (co-d): New test to prove `co -d' failure case.
1970 2004-02-05 Derek Price <derek@ximbiot.com>
1972 * sanity.sh (recase): Fix typo that creeped in somehow between my last
1973 test run and my commit.
1975 2004-02-04 Derek Price <derek@ximbiot.com>
1977 * stack.c (shift, shift_string): Make sure these functions return their
1980 2004-02-04 Derek Price <derek@ximbiot.com>
1982 * modules.c (do_modules): Move content to and make this function a
1984 (_do_modules): ...this new function which can watch for infinite loops
1986 * stack.c (_push, _pop, _unshift, _shift, push_string, pop_string,
1987 unshift_string, shift_string): New
1989 * stack.h (push_string, pop_string, unshift_string, shift_string: New
1991 * sanity.sh (modules): Add check for nested alias loops.
1993 2004-02-04 Derek Price <derek@ximbiot.com>
1995 * sanity.sh (recase): Update test names and comments for clarity and
1998 2004-02-03 Derek Price <derek@ximbiot.com>
2000 Preserve the case of checked out directories in a path as well as file
2001 names for client communication with the server.
2003 * Makefile.am (cvs_SOURCES): Add stack.c & stack.h.
2004 * stack.c, stack.h: New files.
2005 * cvs.h: Include stack.h.
2006 * client.c (send_file_names): Preserve the case of directories in a
2007 path as well as file names for communication with the server.
2009 * Makefile.in: Regenerated.
2011 2004-02-02 Derek Price <derek@ximbiot.com>
2013 * sanity.sh (join-rm): New test for issue #104 & #159.
2015 2004-02-02 Derek Price <derek@ximbiot.com>
2017 Continue removal from server of handling of case insensitive clients.
2019 * cvs.h: Remove extern declaration of ign_case.
2020 * ignore.c (ign_case): Remove declaration.
2021 (ign_name): Remove support for ign_case.
2022 * server.c (serve_case): Ditto.
2023 (requests): No longer support the "Case" request.
2024 * rcs.c (locate_rcs): Remove reference to GLOBAL in function header
2027 2004-02-02 Derek Price <derek@ximbiot.com>
2029 * add.c, client.c, cvs.h, rcs.c, subr.c: Remove server support for case
2032 2004-01-25 Derek Price <derek@ximbiot.com>
2034 * server.c (kserver_authenticate_connection): Fix call to
2036 (Original patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
2038 2004-01-22 Derek Price <derek@ximbiot.com>
2040 * modules.c (do_module): Strip trailing slashes before checking for
2041 infinite alias loops.
2042 * sanity.sh (modules): Tests for response to infinite alias loops.
2044 2004-01-17 Mark D. Baushke <mdb@cvshome.org>
2046 * logmsg.c (do_verify): Eliminate double-free bug.
2047 (Original patch from Gerald Combs.)
2049 2004-01-07 Larry Jones <lawrence.jones@ugsplm.com>
2051 * checkout.c (safe_location): Remove unused variable(s).
2052 * lock.c (lock_tree_for_write): Ditto.
2053 * rcs.c (RCS_checkin): Ditto.
2054 * subr.c (compare_revnums): Ditto.
2055 * tag.c (tag_check_valid): Ditto.
2056 * mkmodules.c (init): Initialize err and return it rather than 0.
2057 * server.c (do_cvs_command): Only define and set max_command_fd if
2058 we're actually going to use it.
2060 2004-01-01 Larry Jones <lawrence.jones@ugsplm.com>
2062 * zlib.c (read_and_gzip, gunzip_and_write): Fix potential buffer
2063 overruns, use names for magic numbers.
2064 (Original patch from Jeff Downs <heydowns@borg.com>.)
2066 2003-12-18 Derek Price <derek@ximbiot.com>
2068 * server.c (switch_to_user): SysLog attempts to root from pserver.
2070 2003-12-18 Derek Price <derek@ximbiot.com>
2072 * server.c (switch_to_user): Don't allow CVS to run as root in pserver
2074 (Original patch from Wichert Akkerman via Bradley M Kuhn
2076 * sanity.sh (pserver): Check for bad root error message.
2078 2003-12-17 Larry Jones <lawrence.jones@eds.com>
2080 * run.c (close_on_exec): fcntl is not documented to return 0 for
2081 success (and QNX doesn't), only -1 for error.
2082 (Patch from George Refseth <george.refseth@arxi.no>.)
2084 2003-12-09 Mark D. Baushke <mdb@cvshome.org>
2086 * server.c (template_proc): Fix broken Template protocol code.
2087 Must call send buf_send_counted() for Template files to avoid
2088 "Protocol error: uncounted data discarded" messages in some
2090 (Problem reported by "Jim.Hyslop" <Jim.Hyslop@Leitch.com>.)
2092 2003-12-03 Derek Price <derek@ximbiot.com>
2094 * sanity.sh (recase-8csss): rename to...
2095 (recase-8sscs): ...this to match the convention.
2097 2003-12-03 Derek Price <derek@ximbiot.com>
2099 * sanity.sh (recase): Add some clarifying comments.
2101 2003-12-03 Larry Jones <lawrence.jones@eds.com>
2103 * expand_path.c (expand_variable): Expand ${CVSROOT} to just the
2104 directory like it's supposed to be.
2105 (Reported by Michael S. Tsirkin <cvs1@misha.eml.cc>.)
2107 2003-11-26 Derek Price <derek@ximbiot.com>
2109 * sanity.sh (modules3-2): Simplify syntax that may have given Cygwin
2110 intermittent conniptions.
2112 2003-11-25 Mark D. Baushke <mdb@cvshome.org>
2114 * sanity.sh (recase-17sscs): Use ${CVSROOT_DIRNAME} in pattern.
2116 2003-11-25 Derek Price <derek@ximbiot.com>
2118 * sanity.sh (release): Perform forgotten cleanup.
2120 2003-11-25 Derek Price <derek@ximbiot.com>
2122 * commit.c (commit_fileproc): Reword comment.
2124 2003-11-25 Derek Price <derek@ximbiot.com>
2126 * add.c (add): Disable ign_case for the purposes of adding a file so
2127 that recasing the name of a file is possible from a case insensitive
2129 * sanity.sh (recase): New tests for behavior which varies when the
2130 client and/or the server are case insensitive.
2132 2003-11-25 Derek Price <derek@ximbiot.com>
2134 * sanity.sh (devcom3-9ar): Ignore the stderr output since it varies
2135 considerably between platforms.
2137 2003-11-24 Larry Jones <lawrence.jones@eds.com>
2139 * diff.c (diff_file_nodiff): use_rev1 does *not* imply that diff_rev1
2140 is not null, diff_date1 could be set instead (ditto for use_rev2).
2141 (Reported by <jnelson-cvsbug@jamponi.net>.)
2143 2003-11-24 Derek Price <derek@ximbiot.com>
2145 * sanity.sh (modes3): Skip modes3-5 entirely under Cygwin since
2146 permisions are broken there. This change removes most of the earlier
2147 Cygwin differentiation in this test ($cygwin_hack & $cygwin_hack2) in
2148 favor of skipping the test entirely.
2150 2003-11-21 Larry Jones <lawrence.jones@eds.com>
2152 * hash.c (printnode, printlist): Cast %p arguments to void * as
2153 required by the C standard.
2155 2003-11-21 Derek Price <derek@ximbiot.com>
2157 * sanity.sh: Add `-h <hostname>' option to enable testing across a
2158 :ext: connection to another host. Warn when `-h' is specified without
2159 $TESTDIR. Leave $TESTDIR intact when it looks absolute since it may
2160 contain symlinks. Allow $CVS_SERVER to be overridden via the
2161 environment for `-h'. Default $CVS_RSH to `rsh'.
2162 (*): Use $CVS_RSH to perform certain commands on the remote host (esp.
2163 `ln -s' and `chmod') when `-h' is specified to work around
2164 incompatibilities with CygWin & Samba. Add a few other minor
2165 workarounds for Cygwin bugs.
2167 (newroot): New function.
2168 (*): Use newroot when appropriate.
2170 2003-11-19 Larry Jones <lawrence.jones@eds.com>
2172 * rcs.c (RCS_getrevtime): Add error checking; cleanup.
2174 2003-11-18 Derek Price <derek@ximbiot.com>
2176 * modules.c (do_module): Reject absolute paths.
2177 (Report and suggested fix from Tony Hoyle <tmh@nodomain.org>.)
2179 * sanity.sh (abspath2): Check for the above.
2180 (spacefiles): Remove tests that expect absolute paths to files in the
2181 top level repository directory to work.
2182 (tests): Add abspath2.
2184 2003-11-13 Derek Price <derek@ximbiot.com>
2186 * rcs.c (RCS_delete_revs): It's `&&', not `and'.
2188 2003-11-13 Derek Price <derek@ximbiot.com>
2190 * sanity.sh: Create the empty log to make it easier to tail immediately
2191 after the script is started.
2193 2003-11-13 Derek Price <derek@ximbiot.com>
2195 * sanity.sh (exit_help): Correct help to specify `-H' and not `-h' as
2198 2003-11-13 Derek Price <derek@ximbiot.com>
2200 * rcs.c (RCS_delete_revs): Don't use the WOE32 kludge which refuses to
2201 delete revisions from bvinary files on Cygwin. I'm not sure what the
2202 kludge was trying to avoid, but commenting it out causes the test suite
2205 2003-11-10 Derek Price <derek@ximbiot.com>
2207 * commit.c (check_fileproc, find_fileproc): Don't leak memory.
2209 2003-11-10 Derek Price <derek@ximbiot.com>
2211 * commit.c (find_fileproc, check_fileproc): Refuse to remove files
2212 when the file exists in the sandbox. This used to cause data loss.
2213 (Report from Andreas Reifschneider <andyreif@studcs.uni-sb.de>.)
2215 * sanity.sh (rmadd3): Update to match. Expand comments.
2217 2003-11-10 Derek Price <derek@ximbiot.com>
2219 * sanity.sh (rmadd3): Test the behavior of commit after the
2221 (Report from Andreas Reifschneider <andyreif@studcs.uni-sb.de>.)
2223 2003-11-10 Mark D. Baushke <mdb@cvshome.org>
2225 * Backport symlink bugfix from cvs 1.12.1.1 feature release
2226 as written by Derek Price <derek@ximbiot.com>. (This fixes
2229 * recurse.c (start_recursion): Accept new repository argument so
2230 that the working directory may be tracked by do_recursion without
2231 using xgetwd(), which returned a value different from the one the
2232 user requested when symlinks were in use. Pass repository_in to
2233 do_recursion() as part of the recursion frame.
2235 * cvs.h (xreadlink): #ifdef HAVE_READLINK proto.
2236 (xresolvepath): New proto.
2237 (start_recursion): Add repository to proto.
2239 * checkout.c (safe_location): Add more complete header comment.
2240 Add trace. Use new xresolvepath() function. Always return true
2241 in client mode since checking our destination path against the
2242 CVSROOT path is usually meaningless in client/server mode.
2243 (checkout_proc): Pass repository to do_update() for later use with
2246 * admin.c (admin): Use new definition of start_recursion().
2247 * annotate.c (rannotate_proc): Ditto.
2248 * client.c (send_files): Ditto.
2249 * commit.c (commit): Ditto.
2250 * diff.c (diff): Ditto.
2251 * edit.c (watch_onoff, send_notifications, edit, unedit, editors):
2253 * lock.c (lock_tree_for_write): Ditto.
2254 * log.c (rlog_proc): Ditto.
2255 * patch.c (patch_proc): Ditto.
2256 * remove.c (cvsremove): Ditto.
2257 * tag.c (rtag_proc): Ditto.
2258 * update.c (do_update): Ditto.
2259 * watch.c (watch_addremove, watchers): Ditto.
2261 * patch.c (patch_proc): Call tag_check_valid with repository
2264 * filesubr.c (xreadlink): #ifdef HAVE_READLINK this function. Add
2265 more complete header comment.
2266 (xresolvepath): New function.
2268 * recurse.c (do_recursion): Call Lock_Cleanup() only repository
2271 * update.c (do_update): Accept new repository argument so that the
2272 working directory may be tracked.
2273 (update): Pass NULL repository to do_update().
2274 * update.c (do_update): Add repository to proto.
2276 * checkout.c (checkout_proc): Use new definition of do_update().
2277 * update.c (update): Ditto.
2279 * sanity.sh: Add new -l option to test symlinked roots.
2280 (checkout_repository-1): Add server error messages about absolute
2281 paths since the client now skips destination validity checks.
2282 (check_repository-2): Test renamed to checkout_repository-2.
2283 (checkout_repository-2): Process client error messages about
2284 CVSROOT files being in the way since the client skips destination
2285 validity checks since it should be rare that a client is running
2286 in client/server mode on the server and CVS has no current way to
2287 check if it is running on the server.
2288 (check_repository-3): Test renamed to checkout_repository-3.
2289 (dottedroot): New test to check that a CVSROOT with a "." in the
2292 2003-11-10 Derek Price <derek@ximbiot.com>
2294 * sanity.sh (rmadd3): Add whitespace after end of test for readability.
2296 2003-11-10 Derek Price <derek@ximbiot.com>
2298 * sanity.sh (rmadd3): New tests that confirms that CVS refuses to
2299 delete a file it thinks was already removed.
2300 (Report and test from Andreas Reifschneider
2301 <andyreif@studcs.uni-sb.de>.)
2303 2003-11-03 Derek Price <derek@ximbiot.com>
2305 * sanity.sh (server): Test that the global `-l' option is ignored
2308 2003-11-01 Larry Jones <lawrence.jones@eds.com>
2310 * ignore.c (ignore_files): Use CVS_LSTAT() instead of lstat().
2311 * filesubr.c (xcmp): Make sure S_ISLNK exists before calling it.
2312 (Reported by Paul Edwards <fight.subjugation@gmail.com>.)
2314 2003-10-31 Derek Price <derek@ximbiot.com>
2316 * sanity.sh (checkout_repository): Name tests consistently.
2318 2003-10-31 Derek Price <derek@ximbiot.com>
2320 * sanity.sh: s/${TESTDIR}/cvsroot/${CVSROOT_DIRNAME}/.
2322 2003-10-28 Derek Price <derek@ximbiot.com>
2324 * sanity.sh (devcom): s/cvs/$PROG/.
2326 2003-10-28 Derek Price <derek@ximbiot.com>
2328 * sanity.sh (devcom): Renumber tests and use dotest function.
2330 2003-10-28 Derek Price <derek@ximbiot.com>
2332 * sever.h: Add the standard copyright notice.
2334 2003-10-28 Derek Price <derek@ximbiot.com>
2336 * lock.c: Remove some suggestions which have already been implemented
2337 or which have become obsolete from the header comment.
2339 2003-10-26 Derek Price <derek@ximbiot.com>
2341 * sanity.sh (join6): Fix a few typos in the last test and remove a
2344 2003-10-25 Mark D. Baushke <mdb@cvshome.org>
2346 * sanity.sh (parseroot): Perform this test in a subdirectory.
2347 It should avoid problems on case-insensitive systems where
2348 CVSROOT and cvsroot are the same directory (eg, MacOS X).
2350 2003-10-24 Derek Price <derek@ximbiot.com>
2352 * update.c (join_file): Restore the optimization Mark recently removed,
2353 but fix it. Move one other optimization up since it needs to be
2354 checked for first. Add bew status messages like merge_file produces
2355 when the requested diff has already been applied to the destination.
2356 Expand header comment.
2357 * sanity.sh (join6): Add tests for the new error messages.
2358 (import-113, join-admin-2, diffmerge1): Fix collateral damage.
2360 2003-10-23 Mark D. Baushke <mdb@cvshome.org>
2362 * update.c (join_file): Do the -jrev1 -jrev2 merge even when
2363 the file is already at rev2.
2364 * sanity.sh (join6): New testcase for above.
2365 (Suggested by Paul Edwards, from somewhere in Australia.)
2366 (import): Fix collateral damage.
2368 2003-10-23 Derek Price <derek@ximbiot.com>
2370 * sanity.sh (fail): Refer the user to the `TESTS' and `check.log' files
2373 2003-10-19 Mark D. Baushke <mdb@cvshome.org>
2375 * sanity.sh (admin-31): Fix more typos.
2377 2003-10-18 Mark D. Baushke <mdb@cvshome.org>
2379 * sanity.sh (admin): Fix a typo.
2381 * admin.c (admin_fileproc): Restore the ':' character in the
2382 -mtag:message admin argument even if the tag does not exist so
2383 that other files with the tag will be found. Also, be more
2384 paranoid that a symbolic tag actually points to a version that
2386 (Reported by Rodolfo Schulz de Lima <rodolfo@rodsoft.org>.)
2387 * sanity.sh (admin): Test these changes.
2389 2003-10-17 Mark D. Baushke <mdb@cvshome.org>
2391 * admin.c (admin_fileproc): Force tag match on admin
2392 -mversion:message rather than altering the wrong log message.
2393 (Patch from "Rodolfo Schulz de Lima" <rodsoft@uol.com.br>.)
2394 * sanity.sh (admin): Test case for it.
2396 2003-10-15 Larry Jones <lawrence.jones@eds.com>
2398 * commit.c (commit_fileproc, finaladd): Don't call fixaddfile()
2399 if the RCS file didn't get created at all.
2400 (Reported by David Wood <David.Wood@thestreet.com>.)
2402 2003-10-14 Derek Price <derek@ximbiot.com>
2404 Port to pedantic POSIX 1003.1-2001 hosts, such as Debian GNU/Linux
2405 testing with _POSIX2_VERSION=200112 in the environment.
2407 * sanity.sh: Use 'sed 1q', not 'head -1'.
2408 (Patch from Paul Eggert <eggert@twinsun.com>.)
2410 2003-10-10 Derek Price <derek@ximbiot.com>
2412 * lock.c (set_lock): Clarify comment.
2414 2003-10-08 Derek Price <derek@ximbiot.com>
2416 * Makefile.am (cvs_SOURCES): Add history.h.
2417 * history.c: Include history.h. Add the `P' record types to more
2418 comments. s/ALL_REC_TYPES/ALL_HISTORY_REC_TYPES/.
2419 (usage): Reference ALL_HISTORY_REC_TYPES rather than using a separate
2421 (report_hrecs): Handle `P' record type.
2422 (ALL_REC_TYPES): Rename and move...
2423 * history.h (ALL_HISTORY_REC_TYPES): ...here.
2424 * mkmodules.c: Include history.h.
2425 (config_contents): Update contents of and references to LogHistory
2426 records to use ALL_HISTORY_REC_TYPES.
2427 * sanity.sh (basic2-64): Update to include history records of type `P'.
2429 * Makefile.in: Regenerated.
2431 2003-10-08 Derek Price <derek@ximbiot.com>
2433 * update.c (patch_file): Correct spelling and punctuation in comment.
2434 Update some lines to fit in 80 characters.
2436 2003-10-08 Larry Jones <lawrence.jones@eds.com>
2438 * history.c (history): Don't conflate -e with -x since the client's
2439 idea of what -e means may not match the server's.
2440 (Reported by Frank Hemer <frank@hemer.org>.)
2442 2003-10-07 Larry Jones <lawrence.jones@eds.com>
2444 * sanity.sh: Use dotest_fail instead of dotest_status for diff tests
2445 since CVS only returns success/fail rather than 0/1/2 like diff does.
2447 2003-10-07 Derek Price <derek@ximbiot.com>
2449 Fix a client/server bug introduced via the data loss fix of 2003-03-17.
2450 Basically, the server was reporting ambiguous filename requests when it
2451 should have been trusting the user to type the intended case or using
2452 the case the client preserved in CVS/Entries before it tried to look
2453 anything up in case insensitive mode.
2455 * rcs.c (locate_rcs): Use the filename exactly as cased before
2456 investigating a case insensitive lookup, per the client/server protocol
2457 specification. Expand comments.
2458 * subr.c (locate_file_in_dir): This function only needs to locate files
2459 case insensitively. Expand comments.
2460 * cvs.h (locate_file_in_dir): Only prototype when servers which need to
2461 handle case insensitivity are being compiled.
2463 2003-10-07 Derek Price <derek@ximbiot.com>
2465 * rcs.c (locate_rcs): Declare static. Move to an earlier location in
2466 file to avoid prototyping.
2467 * rcs.h (locate_rcs): Remove proto.
2469 2003-10-03 Derek Price <derek@ximbiot.com>
2471 * server.c (serve_global_option): Warn that -l is being ignored rather
2472 than exiting fatally due to backwards compatibility complaints from
2475 2003-09-29 Derek Price <derek@ximbiot.com>
2477 * rcs.c (make_file_label): Make a failure to stat a file a fatal error
2478 since it signals that a later read will also fail.
2480 2003-09-26 Derek Price <derek@ximbiot.com>
2482 * diff.c (diff): Add a FIXME re spaces in diff arguments.
2484 2003-09-25 Mark D. Baushke <mdb@cvshome.org>
2486 * rcs.c (make_file_label): Do not return an uninitialized label.
2487 (Reported by "Todd C. Miller" <Todd.Miller@courtesan.com>)
2489 2003-09-12 Derek Price <derek@ximbiot.com>
2491 * sanity.sh (mkmodules): Correct comments.
2493 2003-09-12 Derek Price <derek@ximbiot.com>
2495 * mkmodules.c (mkmodules): Do not pass a string which came from the
2496 checkoutlist file directly to error as a format string since we don't
2497 want to trust any user with access to checkoutlist with creating printf
2498 format strings. I already claimed I did this in the NEWS file.
2499 (Thanks to Larry Jones for spotting my mistake.)
2500 * sanity.sh (mkmodules): Test for the above.
2502 2003-09-12 Derek Price <derek@ximbiot.com>
2504 * mkmodules.c (checkoutlist_contents): Document the optional portions
2505 of this file format more accurately.
2506 (mkmodules): Ditto, in comments. Fix bug that always failed to ignore
2507 whitespace before error messages.
2508 * sanity.sh (mkmodules-temp-file-removal): Rename to...
2509 (mkmodules): ...this and add a test of the checkoutlist error message.
2510 Add cleanup step to restore checkoutlist.
2512 2003-08-27 Larry Jones <lawrence.jones@eds.com>
2514 * history.c: 'P' is a valid record type and has been for a long time.
2515 Add it to the comments, usage message, and, most important,
2516 ALL_REC_TYPES so it gets recorded by default.
2517 * server.c (do_cvs_command): Set global command_name to the real
2518 command name rather than leaving it set to "server".
2519 * sanity.sh: Update to match.
2520 (Reported by Dmitry Ryzhkov <rdim_outside@softhome.net>.)
2522 2003-08-13 Larry Jones <lawrence.jones@eds.com>
2524 * server.c (server_cleanup): Don't shutdown buf_from_net if it's
2526 (Reported by Scott Mitchell <scott@fishballoon.org>.)
2528 2003-08-01 Derek Price <derek@ximbiot.com>
2530 * sanity.sh (join5): Use $PROG consistently and escape a `.'.
2532 2003-08-01 Derek Price <derek@ximbiot.com>
2534 * sanity.sh (join5): Use `[a-z]*' as opposed to `update'.
2536 2003-07-31 Derek Price <derek@ximbiot.com>
2538 * add.c (add_directory): Restore a malloc I shouldn't have altered on
2541 2003-07-31 Derek Price <derek@ximbiot.com>
2543 * rcscmds.c (RCS_merge): Pass `--' before the filename arguments to
2544 diff so that filenames starting with `-' can be merged.
2545 * sanity.sh (join5): New test for same.
2547 2003-07-31 Derek Price <derek@ximbiot.com>
2549 * add.c (add_directory): Don't print status information in really_quiet
2552 2003-07-29 Derek Price <derek@ximbiot.com>
2554 * commit.c (checkaddfile): Simplify the logic here, using assumptions
2555 already made later in the function to remove calls to locate_rcs and
2556 some conditionals. Use same assumptions to remove some variables.
2558 2003-07-29 Derek Price <derek@ximbiot.com>
2560 * login.c: Remove GETPASS & HAVE_GETPASSPHRASE cruft in favor of always
2561 using the GNULIB getpass since the system getpass was removed from the
2562 POSIX.2 specification.
2564 2003-07-28 Derek Price <derek@ximbiot.com>
2566 * subr.c (strip_trailiing_newlines): Use size_t rather than int to
2567 count string length.
2568 (Suggestion from Paul Edwards, who provides a broken return email
2569 address in Tonga. I believe he is actually from Australia.)
2571 2003-07-28 Derek Price <derek@ximbiot.com>
2573 * checkout.c (checkout): Remove out-of-date comment about Checkin.prog
2576 2003-07-25 Derek Price <derek@ximbiot.com>
2578 * rcs.c (RCS_parsercsfile): Declare rcsfile argument as const.
2579 * rcs.h (RCS_parsercsfile): Update prototype to match.
2580 * commit.c (fixaddfile): Accept a single path to an rcs file as an
2581 argument rather than trying to look it up again when it is not
2584 2003-07-25 Derek Price <derek@ximbiot.com>
2586 * commit.c (finaladd): But don't free variables we no longer allocate.
2588 2003-07-25 Derek Price <derek@ximbiot.com>
2590 * checkin.c (Checkin): The rcs argument is unecessary since we know
2591 that the parsed RCS data always exists as part of finfo by the time
2592 this function gets called.
2593 * commit.c (commit_fileproc, finaladd): Use new Checkin() API.
2594 * cvs.h (Checkin): Update prototype.
2596 2003-07-25 Derek Price <derek@ximbiot.com>
2598 * subr.c (strip_trailing_newlines): Check len b4 str[len] to avoid
2599 exceeding the array bounds when the string length == 0.
2600 (Report from John Tytgat <JoTy@esko-graphics.com>.)
2602 2003-07-25 Derek Price <derek@ximbiot.com>
2604 * subr.c (strip_trailing_newlines): Generalize this function to watch
2605 len so that it cannot walk past the beginning of the string passed in.
2606 (Report from John Tytgat <JoTy@esko-graphics.com>.)
2608 2003-07-25 Derek Price <derek@ximbiot.com>
2610 * subr.c (strip_trailing_newlines): Leave the K&R function decl on this
2613 2003-07-25 Derek Price <derek@ximbiot.com>
2615 * cvs.h (strip_trailing_newlines): Update prototype.
2616 * subr.c (strip_trailing_newlines): Return true when newlines are
2618 * server.c (pserver_authenticate_connection): Don't give a DOS attack a
2619 chance to authenticate accidentally because I like to be paranoid.
2620 * sanity.sh (pserver): New test for same.
2622 2003-07-20 Derek Price <derek@ximbiot.com>
2624 * wrapper.c: Remove mention of obsolete -f and -t wrapper options from
2627 2003-07-12 Larry Jones <lawrence.jones@eds.com>
2629 * sanity.sh (diffnl): New tests for diff on files with no newline
2631 (Patch from Andrew Moise <chops@demiurgestudios.com>.)
2633 2003-07-09 Larry Jones <lawrence.jones@eds.com>
2635 * add.c (add): Update "re-adding" message to have quotes around
2636 the file name like all the other similar messages.
2637 * sanity.sh: Update to match.
2639 * update.c (join_file): Handle locally removed but not yet committed
2641 (Reported by Larry Lords <LordsLL@ldschurch.org>.)
2642 * sanity.sh (join, join4): New tests for above.
2644 2003-06-28 Larry Jones <lawrence.jones@eds.com>
2646 * commit.c (fixaddfile): Bail out if locate_rcs() fails. Make
2649 * add.c (add): Fix -Wall complaints.
2650 * diff.c (diff_file_nodiff): Ditto.
2651 * filesubr.c (cvs_casecmp): Ditto.
2652 * patch.c (patch_fileproc): Ditto.
2653 * rcs.c (RCS_cmp_file): Ditto.
2654 * root.c (parse_cvsroot): Ditto.
2655 * subr.c (locate_file_in_dir): Ditto.
2656 * cvs.h (cvs_casecmp, locate_file_in_dir): Update prototypes.
2658 2003-06-27 Larry Jones <lawrence.jones@eds.com>
2660 * lock.c (readers_exist): Use LockDir rather than always looking
2662 (Original patch from Robert Ambalu <Robert.Ambalu@gs.com>.)
2663 Remove vestigial lock promotion code.
2665 2003-06-26 Larry Jones <lawrence.jones@eds.com>
2667 * hash.c (sortlist): Avoid crash when list is null.
2669 2003-06-23 Derek Price <derek@ximbiot.com>
2671 * patch.c (patch_fileproc): Output revision number of the original
2672 revision in the removed case.
2673 (Idea from Paul Edwards <kerravon@w3.to>.)
2675 * sanity.sh (rdiff-add-remove-nodiff): Rename to...
2676 (rdiff-short): ...this. Test for the above changes. Add some tests
2677 for when rev2 defaults to the trunk. Expand comments.
2679 2003-06-23 Derek Price <derek@ximbiot.com>
2681 * add.c (add): Fix xmalloc's strlen() of wrong variable.
2682 * checkout.c (safe_location): leak: reused where_location without free.
2683 * log.c (rlog_proc): leak: free where before exit.
2684 * logmsg.c (do_verify): leak: free verifymsg_script before exit.
2685 (Original patch from Kenneth Lorber <keni@his.com>.)
2687 2003-06-20 Derek Price <derek@ximbiot.com>
2689 * client.c: Remove silly comment.
2690 (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
2692 2003-06-13 Derek Price <derek@ximbiot.com>
2694 * subr.c (file_has_conflict): Fix comment.
2695 (Patch from Paul Edwards <kerravon@w3.to>.)
2697 2003-06-13 Derek Price <derek@ximbiot.com>
2699 * subr.c (xrealloc): Trivial comment fix.
2700 (Patch from Kenneth Lorber <keni@his.com>.)
2702 2003-06-13 Derek Price <derek@ximbiot.com>
2704 * diff.c (diff_fileproc): Fix memory leak.
2705 (Patch from Kenneth Lorber <keni@his.com>.)
2707 2003-06-12 Derek Price <derek@ximbiot.com>
2709 * root.c (parse_cvsroot, local_cvsroot): Parse trailing '/'s off the
2710 end of cvsroots. Make arguments const.
2711 * cvs.h: Update prototypes to match.
2712 (Idea from Miles Zarathustra <shiva@aranyaka.org>.)
2714 2003-06-11 Larry Jones <lawrence.jones@eds.com>
2716 * sanity.sh: Change warning messages to note that defective tools
2717 can result in defective results, both pass and fail. Also change
2718 "which" to "that" for errant grammar pedants.
2720 2003-06-09 Derek Price <derek@ximbiot.com>
2722 * rcs.c (RCS_delete_revs): Reference WOE32 rather than WIN32 in
2723 accordance with the GNU convention to avoid implying that we consider
2724 the Microsoft Windows Operating Environment any sort of "win".
2726 2003-06-09 Derek Price <derek@ximbiot.com>
2728 * filesubr.c (cvs_temp_file): Tidy a comment.
2730 2003-06-09 Derek Price <derek@ximbiot.com>
2732 * patch.c (patch_fileproc): Don't assume the content of files is
2733 different just because the revision number is different.
2734 * sanity.sh (rdiff-add-remove-nodiff): New tests for the above.
2735 (Report & original patches from Paul Edwards <kerravon@w3.to>.)
2737 2003-06-04 Derek Price <derek@ximbiot.com>
2739 * cvs.h (locate_file_in_dir): New proto.
2740 (locate_rcs): Move proto...
2742 * filesubr.c (locate_rcs): Move function...
2743 * rcs.c: ...here for Windows.
2744 * filesubr.c (locate_file_in_dir): Move function...
2745 * subr.c: ...here for Windows.
2747 2003-06-02 Derek Price <derek@ximbiot.com>
2749 * diff.c (diff_file_nodiff): Don't assume that because two specified
2750 revision numbers are different, the contents are different.
2751 (Original report & patch from Paul Edwards <kerravon@w3.to>.)
2753 * diff.c (diff_file_nodiff): Pass through rev1_cache to be filled in
2754 by RCS_cmp_file when it needs to check out revision 1 into a file. Add
2755 some more informative error messages. Cleanup for efficiency &
2757 (diff_fileproc): Pass the cached revision to RCS_exec_diff(). Clean up
2758 the error exit code. Remove code killed by the changes to
2760 * rcscmds.c (RCS_exec_rcsdiff): Accept and use new cached revision text
2762 * rcs.c (RCS_cmp_file): Accept a second revision number and cache the
2763 first revision if it needs to be checked out.
2765 * checkin.c (Checkin): Use new RCS_cmp_file().
2766 * import.c (update_rcs_file): Ditto.
2767 * no_diff.c (No_Difference): Ditto.
2769 * cvs.h (RCS_exec_rcsdiff): New proto to match above changes.
2770 * rcs.h (RCS_cmp_file): Ditto.
2772 * sanity.sh: Minor corrections to handle the above changes.
2774 2003-05-29 Derek Price <derek@ximbiot.com>
2776 * client.c (start_server): Don't send -l to server.
2777 * history.c (history_write): Fix comment.
2778 * main.c (main): Don't process -l.
2779 * server.c (serve_global_option): Ditto.
2780 (Suggestion from Rob Lanphier <robla@real.com>.)
2782 2003-05-23 Larry Jones <lawrence.jones@eds.com>
2784 * sanity.sh (info-cleanup-verifymsg): Avoid race in output.
2786 2003-05-22 Larry Jones <lawrence.jones@eds.com>
2788 * commit.c (commit): Fix leading zero stripping code to not strip
2789 unless there's a following digit.
2791 * parseinfo.c (Parse_Info): Warn if multiple DEFAULT lines found.
2792 * sanity.sh (info): New test for above.
2794 2003-05-21 Derek Price <derek@ximbiot.com>
2796 * Makefile.in: Regenerate with Automake version 1.7.5.
2798 2003-05-20 Larry Jones <lawrence.jones@eds.com>
2800 * parseinfo.c (Parse_Info): Fix stupid memory management error.
2802 * logmsg.c (do_verify): Treate Parse_Info errors as failure.
2803 * parseinfo.c (Parse_Info): Don't call expand_path until executing
2804 the command so that errors in unexecuted commands aren't reported.
2805 * sanity.sh (info): New tests for above.
2807 2003-05-18 Mark D. Baushke <mdb@gnu.org>
2809 * Makefile.am (localcheck,remotecheck): Use cvs$(EXEEXT) not cvs.
2810 * Makefile.in: Regenerated.
2811 * sanity.sh (status-init-7): Use ${PROG} not cvs in tests.
2812 (branch-after-import-5): Ditto.
2813 (keywordname-update-11): Ditto.
2815 2003-05-18 Larry Jones <lawrence.jones@eds.com>
2817 * server.h (kserver_authenticate_connection,
2818 pserver_authenticate_connection): Add prototypes.
2820 * client.c (update_entries): Set file's access time to the current
2821 time rather than the same as the modification time.
2822 * vers_ts.c (Version_TS): Ditto.
2824 2003-05-01 Derek Price <derek@ximbiot.com>
2826 * main.c (main): Ignore -z when CLIENT_SUPPORT is not defined.
2827 (Report from Jim Salter <jsalterjim@earthlink.net>.)
2829 2003-05-01 Derek Price <derek@ximbiot.com>
2831 * repos.c (Sanitize_Repository_Name): Remove some old comments about
2832 the defunct RELATIVE_REPOS macro.
2833 * server.c (outside_root): Ditto.
2835 2003-04-30 Derek Price <derek@ximbiot.com>
2837 * add.c (add): Fix a possible, if unlikely, memory out of bounds error.
2839 2003-04-28 Derek Price <derek@ximbiot.com>
2841 * client.c (save_prog): Remove unneeded struct.
2842 (checkin_progs, update_progs): Remove these unneeded globals.
2843 (handle_set_checkin_prog, handle_set_update_prog, do_deferred_progs):
2844 Remove these functions.
2845 (send_repository): Remove checkin and update prog support.
2846 (responses): Remove Set-checkin-prog and Set-update-prog.
2847 (get_responses_and_close): Don't call do_deferred_prog().
2848 * commit.c (commit_usage): Remove reference to -n.
2849 (commit): Don't set and send run_module_prog via -n. Don't run
2850 Checkin.prog or Checkout.prog in local mode.
2851 * modules.c (CVSMODULE_OPTS): Remove -i and -u.
2852 (do_module): Don't process -i and -u options to set checkin and update
2853 progs, respectively.
2854 * server.c (server_prog, serve_checkin_prog, server_update_prog):
2855 Remove unused functions.
2856 (requests): Remove Checkin-prog and Update-prog.
2857 * update.c (update_dirleave_proc): Remove update prog functionality.
2859 * cvs.h (CVSADM_CIPROG, CVSADM_UPROG): Remove unneeded defines.
2860 * server.h (server_prog): Remove proto.
2861 (progs): Remove enum.
2863 * sanity.sh (modules5): Remove tests for checkin and update programs.
2865 2003-04-10 Larry Jones <lawrence.jones@eds.com>
2867 * Makefile.in: Regenerated.
2869 2003-03-27 Mark D. Baushke <mdb@cvshome.org>
2871 * sanity.sh (rdiff2): Add new test case for SEGV problem reported
2873 (Report from James Cribb)
2875 2003-03-26 Derek Price <derek@ximbiot.com>
2877 * client.c: Fix, reorganize, and comment ifdefs for AUTH_CLIENT_SUPPORT
2879 * client.h: Ditto. Remove some unecessary server function prototypes.
2881 2003-03-26 Derek Price <derek@ximbiot.com>
2883 * client.c: Include the net headers for HAVE_GSSAPI.
2884 (Report from Jim Salter <jsalterjim@earthlink.net>.)
2886 2003-03-26 Derek Price <derek@ximbiot.com>
2888 * main.c (main): Verify the argument to -z when running without
2889 CLIENT_SUPPORT since Eric Siegerman complained about being bit
2890 by a run of `cvs -z -n up' which parsed the -n as the argument to
2892 * sanity.sh (opterrmsg): New tests for -z argument checking.
2894 2003-03-26 Larry Jones <lawrence.jones@eds.com>
2896 * main.c (main): Use strtol() instead of atoi() when parsing -z
2898 (Reported by Eric Siegerman <erics@telepres.com>.)
2900 2003-03-24 Derek Price <derek@ximbiot.com>
2902 * Makefile.am: Update copyright notice.
2904 * Makefile.in: Regenerated.
2906 2003-03-19 Larry Jones <lawrence.jones@eds.com>
2908 * filesubr.c (mkdir_if_needed): Save errno since isdir() can clobber.
2909 (Patch from Brian Poole <raj@cerias.purdue.edu>.)
2910 * sanity.sh (abspath-4): Update to match.
2912 * filesubr.c (locate_rcs): Fix gcc warning.
2914 2003-03-17 Derek Price <derek@ximbiot.com>
2916 * add.c: Correct comment.
2918 * checkin.c (Checkin): Pass work file name to RCS_checkin so that this
2919 function works properly in the case insensitive mode.
2920 * commit.c (checkaddfile): Fix and factor add logic so that the
2921 correct files and directories are created in the case insensitive mode.
2922 Reuse code in RCS_parse() below. This avoids a problem that could
2923 cause corrupted RCS files to be created on an add from a case
2924 insensitive system. Corrupted RCS files could cause later assertion
2925 failures for everyone.
2926 (locate_rcs): Move this function...
2927 * filesubr.c (locate_rcs): ...here and rewrite it.
2928 (fopen_case): Remove this function.
2929 (locate_file_in_dir): New function.
2930 * cvs.h (locate_rcs): Prototype new function.
2931 * rcs.c (RCS_parse): Factor out file location into locate_rcs.
2933 2003-03-17 Larry Jones <lawrence.jones@eds.com>
2935 * server.c (switch_to_user): Add syslog calls for setgid/setuid
2938 2003-03-07 Derek Price <derek@ximbiot.com>
2940 * sanity.sh (help): Add explanation of CVS-TO-TEST and edit for
2943 2003-03-07 Derek Price <derek@ximbiot.com>
2945 * sanity.sh (usage): Show users long --help rather than less
2948 2003-03-07 Derek Price <derek@ximbiot.com>
2950 * sanity.sh: Add support for long options.
2951 (exit_usage): Move the actual generation of usage text to...
2952 (usage): ...this new function and improve the usage message.
2953 (exit_help): New function.
2955 2003-03-07 Larry Jones <lawrence.jones@eds.com>
2957 * commit.c (check_fileproc): Remove unused variables.
2959 * patch.c (patch): Pass local to do_module so that -l actually works.
2960 (Reported by John Coers <coers@intrinsity.com>.)
2961 (patch_fileproc): Fix uninitialized variables.
2962 * sanity.sh: Define a DATE pattern for rdiff and use it.
2963 (basic2-24a): New test for above.
2965 2003-03-06 Derek Price <derek@ximbiot.com>
2967 * subr.c (file_has_conflict): New file.
2968 * commit.c (check_fileproc): Factor code into new file_has_conflict()
2970 * update.c (update_fileproc): Ditto.
2971 * status.c (status_fileproc): Use new file_has_conflict() function.
2972 (Report from Bernd Kuemmerlen <bkuemmer@mevis.de>.)
2974 * sanity.sh (status): New test for same.
2976 2003-03-05 Mark D. Baushke <mdb@cvshome.org>
2978 * rcs.c (RCS_magicrev): Backout CVS_LOCAL_BRANCH_NUM feature.
2980 * rcs.c (RCS_magicrev): CVS_LOCAL_BRANCH_NUM feature.
2981 Port of the FreeBSD hack for setting the next magic branch number
2982 to be used. The original patch was written by Peter Wemm
2983 <peter@FreeBSD.org> and may be found by visiting the URL:
2984 http://www.freebsd.org/cgi/cvsweb.cgi/src/contrib/cvs/src/rcs.c.diff?r1=1.1&r2=1.2
2985 Implement a horrible (but simple) hack to allow some control over the
2986 branch number that is assigned. This is specifically to support the
2987 local commit feature of cvsup. If one sets $CVS_LOCAL_BRANCH_NUM to
2988 (say) 1000 then branches the local repository, the revision numbers
2989 will look like 1.66.1000.xx. This is almost a dead-set certainty that
2990 there will be no conflicts with version numbers.
2991 (This needs to be something more than an option to 'cvs tag' or 'cvs
2992 rtag' as various parts of cvs "know" how to automatically branch files
2993 (eg: cvs add). Trying to remember state is getting "Too Hard (TM)")
2994 * sanity.sh (branches3): Test the CVS_LOCAL_BRANCH_NUM feature.
2996 2003-03-04 Derek Price <derek@ximbiot.com>
2998 * history.c (history_write): Remove unneeded O_CREAT in the call to
2999 open() since we abort a few lines earlier if the file doesn't exist.
3000 Add a comment to the effect that this is not the optimal method of
3001 doing things and needs fixed.
3003 2003-02-28 Derek Price <derek@ximbiot.com>
3005 * root.c (parse_cvsroot): s/no_passwd/no_password/ in comments.
3007 2003-02-28 Derek Price <derek@ximbiot.com>
3009 * root.c (parse_cvsroot): Set no_password for :gserver: and :kserver:
3010 as tokens should already be obtained via external sources.
3011 * update.c (update_fileproc): Remove redundant code.
3013 2003-02-28 Larry Jones <lawrence.jones@eds.com>
3015 * lock.c (set_lock): If possible, try a short wait with no message
3016 before calling lock_wait() to optimize master lock contention.
3018 2003-02-26 Larry Jones <lawrence.jones@eds.com>
3020 * checkout.c (checkout): Send "--" before file names.
3021 * sanity.sh (spacefiles): Remote now works just like local.
3023 2003-02-25 Derek Price <derek@ximbiot.com>
3025 * sanity.sh (rcs4): Use UTC to work across timezones.
3027 2003-02-25 Derek Price <derek@ximbiot.com>
3029 * rcs.c (RCS_getdate): Fix a bug that shows up when checking out
3030 files by date with the "-D date" command line option. There is
3031 code in the original to handle a special case. If the date search
3032 finds revision 1.1 it is supposed to check whether revision
3033 1.1.1.1 has the same date stamp, which would indicate that the
3034 file was originally brought in with "cvs import". In that case it
3035 is supposed to return the vendor branch version 1.1.1.1.
3037 However, there was a bug in the code. It actually compares the date
3038 of revision 1.1 for equality with the date given on the command
3039 line -- clearly wrong. This commit fixes the coding bug.
3041 Note: There is an additional bug which is _not_ fixed in this
3042 commit. The date comparison should not be a strict equality test.
3043 It should allow a fudge factor of, say, 2-3 seconds. Old versions
3044 of CVS created the two revisions with two separate invocations of
3045 the RCS "ci" command. We have many old files in the tree in which
3046 the dates of revisions 1.1 and 1.1.1.1 differ by 1 second.
3048 This bug was discovered and fixed for FreeBSD cvs. See v 1.21 of
3049 <http://www.freebsd.org/cgi/cvsweb.cgi/src/contrib/cvs/src/rcs.c.diff>
3050 for more information.
3052 * sanity.sh (rcs4): Tests for same.
3053 (Patch from Mark D. Baushke <mdb@cvshome.org>.)
3055 2003-02-25 Derek Price <derek@ximbiot.com>
3057 * logmsg.c (logfile_write): Do not pass a NULL pointer to
3058 fprintf() when we have an empty log message.
3059 * sanity.sh (editor): Add new tests to verify correct behavior of
3061 (Patch from Mark D. Baushke <mdb@cvshome.org>, original report from
3062 Piotr KUCHARSKI <chopin@sgh.waw.pl>.)
3064 2003-02-25 Derek Price <derek@ximbiot.com>
3066 * cvsbug.in: Import use of mktemp function from RedHat 8.0's
3067 CVS 1.11.2 RPM. Use new MKTEMP configure variable. Use new
3068 SENDMAIL from configure.
3070 * Makefile.in: Regenerated.
3072 2003-02-25 Derek Price <derek@ximbiot.com>
3074 * watch.c (watch_usage): Use {} rather than () for literals.
3076 2003-02-14 Derek Price <derek@ximbiot.com>
3078 * watch.c (watch_usage): Make the repeatability of -a part of the
3081 2003-02-14 Derek Price <derek@ximbiot.com>
3083 * watch.c (watch_usage): Mention default for -a. Mention multiple
3084 invocations of -a. Mention -R as default. Use required () rather than
3085 optional [] around watch subcommand list in invocation spec. Use
3086 `path' instead of `file'. Put variable <> around `action' and `path'.
3088 2003-02-07 Derek Price <derek@ximbiot.com>
3090 * commit.c (checkaddfile): Do not lose the vendor branch when
3091 adding files to a new branch. Avoids extranious conflicts for
3092 future vendor imports. This was found and fixed in FreeBSD cvs.
3093 See http://www.freebsd.org/cgi/query-pr.cgi?pr=4033 for details.
3094 * sanity.sh (branch-after-import): New test.
3095 (Thanks to Mark D Baushke <mdb@cvshome.org> for forwarding the
3096 patch and writing the test cases!)
3098 * sanity.sh (branch-after-import): Misc portablility and standard
3101 2003-02-12 Derek Price <derek@ximbiot.com>
3103 * main.c (main): Update copyright message to 2003.
3105 2003-02-21 Larry Jones <lawrence.jones@eds.com>
3107 * server.c (switch_to_user): Update comment, change error message
3108 so it's not an exact duplicate of the one in check_password.
3109 (check_repository_password): Add syslog call for password mismatches.
3110 (check_password): Add syslog call for password mismatches, rearrange
3111 code to simplify and eliminate redundancy.
3112 (pserver_authenticate_connection): Remove syslog call, now done by
3113 lower-level routines.
3115 2003-02-19 Larry Jones <lawrence.jones@eds.com>
3117 * sanity.sh (admin-10): Add test for repository files not in
3120 * admin.c (admin_fileproc): Fix crash when no rcs file, return
3121 failure status for bogus files.
3122 * sanity.sh (admin-4a): Test for above.
3123 (Original patch submitted by Mark D. Baushke <mdb@cvshome.org>).
3125 2003-02-14 Larry Jones <lawrence.jones@eds.com>
3127 * log.c (log_expand_revlist): Fix crashes in error cases.
3128 (Reported by Bart Santy <Bart.Santy@switch.be>.)
3129 * sanity.sh (log): New tests for above.
3131 2003-02-01 Larry Jones <lawrence.jones@eds.com>
3133 * buffer.c (stdio_buffer_shutdown): Handle EINTR from waitpid.
3134 (Patch from Johannes Grødem <johs+n@ifi.uio.no>.)
3136 2003-02-08 Derek Price <derek@ximbiot.com>
3138 * rcs.c (RCS_checkout): Supply the full function name in the trace
3140 * update.c (checkout_file, join_file): Supply tag properly to
3141 RCS_checkout more often.
3142 (patch_file): Ditto. Fill out comments.
3143 * sanity.sh (keyword, keywordname): Some changes to accomodate the fact
3144 that the above changes cause patches generated by patch_file to fail
3147 2003-02-06 Derek Price <derek@ximbiot.com>
3149 * client.c: Use the complete path to the CVSADM_TEMPLATE file in
3150 error messages. Remove related FIXME.
3152 2003-01-31 Derek Price <derek@ximbiot.com>
3154 * sanity.sh (keywordname): Change a "FIXME" comment to "FIXCVS".
3156 2003-01-30 Derek Price <derek@ximbiot.com>
3158 * sanity.sh (keywordname): New test.
3160 2003-01-23 Larry Jones <lawrence.jones@eds.com>
3162 * diff.c (diff_fileproc): Restructure code to simplify and eliminate
3165 * server.c (do_cvs_command): Use WCOREDUMP macro rather than hard
3166 coding test for core file.
3168 2003-01-21 Larry Jones <lawrence.jones@eds.com>
3170 * root.c (method_name): Redefine as a 2D array.
3171 * root.h (method_name): Ditto.
3173 2003-01-21 Jim Meyering <jim@meyering.net>
3175 * add.c (add): Rename local-shadowing `i' to `j'.
3177 * root.c (method_names): Declare to be a const array of const strings.
3178 (Name_Root): Save errno so it doesn't get clobbered
3179 by the intervening error call.
3180 Use getline's return value, mainly to save a call to strrchr.
3182 2003-01-20 Larry Jones <lawrence.jones@eds.com>
3184 * myndbm.c (O_ACCMODE): Parenthesize the replacement string so that
3185 it parses correctly.
3186 (Reported by Andres Bertens <abertens@entelchile.net>.)
3188 2003-01-15 Karl Fogel <kfogel@collab.net>
3190 * server.c (dirswitch): Don't free dir_name until right before
3191 allocating it again. This removes a potential double-free
3192 problem, whereby this function could free dir_name and then
3193 immediately return due to invalid directory syntax (without ever
3194 reassigning dir_name), then reenter and free dir_name again.
3196 Thanks to Stefan Esser <s.esser@e-matters.de> for the fix.
3198 2003-01-08 Larry Jones <lawrence.jones@eds.com>
3200 * client.c (update_entries): Only "0" is a special version number;
3201 other numbers starting with 0 (like 0.1) are normal version numbers.
3202 * commit.c (find_fileproc): Ditto. Also reorganize the code to
3203 simplify the conditions.
3204 (Reported by Michele Zamparelli <michele.zamparelli@eso.org>.)
3206 2003-01-02 Larry Jones <lawrence.jones@eds.com>
3208 * rcs.c (getdelta): Use RCSDEAD rather than literal "dead".
3210 2002-12-27 Derek Price <derek@ximbiot.com>
3212 * admin.c: s/LOCK_(NONE|WRITE|READ)/CVS_$&/g; since the definition of
3213 LOCK_WRITE clashes with a definition in objidl.h on Windoze platforms.
3214 * annotate.c: Ditto.
3229 * myndbm.c: Ditto & define O_ACCMODE when it isn't defined, as under
3231 (Thanks to Stephane Rouleau <s.rouleau@videotron.ca>,
3232 Cristopher Seawood <cls@seawood.org>, and
3233 Frederico Costa <frederico.costa@tiscali.no> for all their hints,
3234 tips, and patches for this problem.)
3236 2002-12-20 Derek Price <derek@ximbiot.com>
3238 * client.c (send_a_repository): Suppress a warning under Windoze.
3240 2002-12-19 Derek Price <derek@ximbiot.com>
3242 * Makefile.am: Remove reference to options.h.
3244 * options.h: Remove this obsolete file.
3245 * sanity.sh: Remove comment about external diffs causing tests to fail
3246 since CVS hasn't used external diffs in years.
3248 * Makefile.in: Regenerated.
3250 2002-12-16 Derek Price <derek@ximbiot.com>
3252 * admin.c: Disable cvsadmin group checking on the client.
3253 (Reported by Dan Peterson <dbpete@aol.com>.)
3255 2002-12-06 Derek Price <derek@ximbiot.com>
3257 * buffer.c: Replace calls to malloc with calls to xmalloc and calls to
3258 realloc with calls to xrealloc.
3259 * parseinfo.c: Ditto.
3263 * scramble.c: Change some comments to refer to xmalloc rather than
3265 (Reported by Dan Peterson <dbpete@aol.com>.)
3267 2002-12-04 Derek Price <derek@ximbiot.com>
3269 * options.h: Remove CVS_ADMIN_GROUP.
3271 2002-12-02 Larry Jones <lawrence.jones@eds.com>
3273 * commit.c (commit): Strip leading zeros from numeric revision
3274 in addition to trailing dots.
3275 (Reported by Peter Meszaros <pme@prolan.hu>.)
3277 2002-11-22 Larry Jones <lawrence.jones@eds.com>
3279 * sanity.sh: Note that the tests run for a long time.
3281 * checkout.c (safe_location): Use xstrdup, not strdup.
3282 (Reported by Terrence Enger <tenger@iSeries-guru.com>.)
3284 2002-11-19 Larry Jones <lawrence.jones@eds.com>
3286 * log.c (log_expand_revlist): Fix cross-branch correction code.
3288 * sanity.sh: Set $LANG for systems that ignore $LC_ALL.
3289 (rcs2-7): Change date offset from 100 months to 96 months to reduce
3290 periodic problems with invalid dates.
3292 2002-11-12 Derek Price <derek@ximbiot.com>
3294 * sanity.sh (rcslib-symlink): Use rm -f rather than a simple rm when
3295 removing links because under some configurations of RH Linux 8.0 the
3296 script pauses to ask for removal approval.
3298 2002-11-08 Derek Price <derek@ximbiot.com>
3300 * sanity.sh (importc): Update the use of the touch command to be
3301 compliant with POSIX 1003.1-2001, SUS2, and SUS3 now that GNU touch
3302 supports this. If this breaks any test platforms we should test
3303 the behavior of touch like we do for other tools.
3305 2002-11-03 Derek Price <derek@ximbiot.com>
3307 * sanity.sh (rcs2-7): Notate with a wild untested hypothesis.
3309 2002-11-03 Derek Price <derek@ximbiot.com>
3311 * sanity.sh (rcs2-7): Notate with three more failure dates.
3313 2002-10-25 Derek Price <derek@ximbiot.com>
3315 * root.c: Change some calls to SYSTEM_CLEANUP() and then exit() to
3316 more appropriate calls to error_exit().
3320 2002-10-24 Derek Price <derek@ximbiot.com>
3322 * buffer.c (stdio_buffer_shutdown): Remove the getc() call used to
3323 detect spurious output from clients since getc() would sometimes
3324 block and hang indefinately if the client kept the conection open but
3325 sent no data. Bug reports state that this hapened frequently with
3326 older clients connecting to 1.11.2 servers, especially when
3327 compression is enabled.
3328 (Original report from Mark D. Baushke <mdb@juniper.net>.
3329 Original patch from Ralf S. Engelschall <rse@engelschall.com>
3330 via Peter Wemm <peter@freebsd.org>.)
3332 2002-10-05 Larry Jones <lawrence.jones@eds.com>
3334 * recurse.c (start_recursion, do_recursion): Allow write locking
3335 in addition to read locking. Change all callers.
3336 * cvs.h: Change prototype to match, add lock types.
3337 * tag.c (rtag_proc, rtag_fileproc, tag_fileproc): Have start_recursion
3338 use write locks rather than calling lock_dir_for_write to avoid deadly
3341 2002-10-04 Larry Jones <lawrence.jones@eds.com>
3343 * client.c (get_responses_and_close, connect_to_pserver): Set
3344 to_server and from_server to NULL after freeing.
3345 * main.c (main): Clear server_active when finished. Also neaten
3346 up the SERVER_SUPPORT ifdef's.
3347 * server.c (do_cvs_command): Set protocol_inbuf, stderrbuf, and
3348 stdoutbuf to NULL after freeing.
3349 (server_cleanup): Free buf_from_net and buf_to_set and set to NULL.
3350 Also reset error_use_protocol.
3351 (server): Don't SIG_register server_cleanup. main_cleanup (which
3352 is already registered) outputs a fatal error which causes it to
3353 be called; registering it directly results in it being called twice.
3354 (cvs_output): Don't try to use buf_to_net or protocol if they're NULL.
3356 2002-10-03 Larry Jones <lawrence.jones@eds.com>
3358 * lock.c (readers_exist): Ignore our own read lock, if any, to
3359 allow upgrading an existing read lock to a write lock.
3360 * tag.c (rtag_proc, rtag_fileproc, tag_fileproc): Rather than
3361 locking the entire tree, have start_recursion establish read
3362 locks and then upgrade the read lock to a write lock (so only
3363 one directory is locked at a time).
3365 2002-09-27 Larry Jones <lawrence.jones@eds.com>
3367 * add.c (add): Send "--" before file names.
3368 * admin.c (admin): Ditto.
3369 * annotate.c (annotate): Ditto.
3370 * commit.c (commit): Ditto.
3371 * diff.c (diff): Ditto.
3372 * edit.c (watch_onoff, editors): Ditto.
3373 * log.c (cvslog): Ditto.
3374 * remove.c (cvsremove): Ditto.
3375 * status.c (cvsstatus): Ditto.
3376 * tag.c (cvstag): Ditto.
3377 * update.c (update): Ditto.
3378 * watch.c (watch_addremove, watchers): Ditto.
3380 * sanity.sh (client-9): Update to match.
3382 2002-09-24 Derek Price <derek@ximbiot.com>
3384 * options.h: Remove prototype of STDC exit() function. If this breaks
3385 a build, this should be detected in configure.in somehow rather than
3386 restoring the line to this file.
3388 2002-09-24 Derek Price <derek@ximbiot.com>
3390 * options.h: Move definition of AUTH_CLIENT_SUPPORT into configure.in.
3392 2002-09-24 Derek Price <derek@ximbiot.com>
3394 * options.h: Move definition of FORCE_USE_EDITOR into configure.in.
3396 2002-09-24 Derek Price <derek@ximbiot.com>
3398 * options.h: Move definition of UMASK_DFLT into configure.in.
3400 2002-09-24 Derek Price <derek@ximbiot.com>
3402 * Makefile.in: Regenerated using Automake 1.6.3.
3404 2002-09-24 Larry Jones <lawrence.jones@eds.com>
3406 * filesubr.c, history.c, import.c, rcs.c, update.c: Use
3407 HAVE_STRUCT_STAT_ST_BLKSIZE and HAVE_STRUCT_STAT_ST_RDEV instead of
3408 the obsolete HAVE_ST_BLKSIZE and HAVE_ST_RDEV.
3410 2002-09-24 Derek Price <derek@ximbiot.com>
3412 * options.h: Move definition of TMPDIR_DFLT into configure.in.
3414 2002-09-24 Derek Price <derek@ximbiot.com>
3416 * options.h: Move defininition of EDITOR_DFLT into configure.in.
3418 * Makefile.in: Regenerated.
3420 2002-09-23 Jim Meyering <meyering@lucent.com>
3422 If `cvs -d REPO commit ...' was used to override CVS/Root,
3423 then modified files in the directory from which cvs is invoked
3424 would not be committed.
3425 * client.c (arg_should_not_be_sent_to_server): The above would happen
3426 because this function would throw out a file name when CVS/Root
3427 did not match the current server. Fix by allowing the command-line-
3428 specified repository to take precedence over the value returned
3429 by Name_Root. Patch by Simon Walton <simonw@lucent.com>.
3430 * sanity.sh (commit-d): New tests for the above.
3431 Patch by Simon Walton <simonw@lucent.com>.
3433 2002-09-20 Derek Price <derek@ximbiot.com>
3435 * options.h: Move definition of SERVER_FLOWCONTROL, SERVER_HI_WATER,
3436 and SERVER_LO_WATER into configure.in.
3438 2002-09-20 Derek Price <derek@ximbiot.com>
3440 * options.h: Move definition of PATCH_PROGRAM to configure.in.
3442 2002-09-18 Larry Jones <lawrence.jones@eds.com>
3444 * client.c (call_in_directory): Don't create admin directory when
3445 exporting into an existing directory.
3446 (Reported by Jens Engel <Jens.Engel@marconi.com>.)
3447 * sanity.sh (basic2): New tests for above.
3449 2002-09-16 Jim Meyering <meyering@lucent.com>
3451 * server.c (do_cvs_command): Move declarations of locals, timeout and
3452 timeout_ptr, `up', out of enclosing `#ifdef SERVER_FLOWCONTROL' block.
3453 Otherwise, this file would not compile with SERVER_FLOWCONTROL
3454 turned off. Patch by Ed Santiago <esm@ascend.com>.
3456 2002-09-15 Larry Jones <lawrence.jones@eds.com>
3458 * myndbm.c (mydbm_open): Open the file read/write rather than read-
3459 only if that's what the user asked for to ensure that the later open
3460 for write will succeed.
3461 (Patch submitted by Josh Lehan <cvs@krellan.com>.)
3463 2002-08-28 Larry Jones <lawrence.jones@eds.com>
3465 * logmsg.c (do_editor): Fix bug which prevented reusing log messages.
3466 (Reported by Eric Siegerman <erics@telepres.com>.)
3468 2002-08-16 Derek Price <derek@ximbiot.com>
3470 * create_adm.c (Create_Admin): Assume RELATIVE_REPOS is set.
3471 * server.c (outside_root): Add comment.
3472 * options.h: Remove RELATIVE_REPOS & CVS_BADROOT.
3473 * sanity.sh: Remove a lot of !RELATIVE_REPOS cruft from tests.
3475 2002-08-14 Derek Price <oberon@umich.edu>
3477 * server.c (server): Dispose of the correct pointer. Tidy comment.
3479 2002-08-13 Derek Price <oberon@umich.edu>
3481 * client.c (get_cvs_port_number): Fix typo in comment. Add comments.
3482 * server.c (server): Fix a FIXME. Remove an errant "const" directive.
3483 Remove some redundant memory allocation and error handling code.
3485 2002-08-08 Derek Price <oberon@umich.edu>
3487 * import.c (import): Surrounded `server_active' with
3488 #ifdef SERVER_SUPPORT/#endif.
3489 * commit.c (commit_fileproc, commit_direntproc): Likewise.
3490 (Patch from John Tytgat <John.Tytgat@aaug.net>.)
3492 2002-07-31 Derek Price <oberon@umich.edu>
3494 * filesubr.c: Add a line so VIM can determine tab stops and shift widths.
3496 * (parse_cvsroot): Add comments and tidy slightly.
3498 2002-07-31 Derek Price <oberon@umich.edu>
3500 * sanity.sh: Add another date to the comment about rcs2-7 failing.
3502 2002-07-26 Jim Meyering <meyering@lucent.com>
3504 * commit.c (find_fileproc): When committing in client mode,
3505 arrange to fail if a `cvs add'ed file no longer exists in the
3507 * sanity.sh (commit-add-missing): New test for above.
3509 2002-07-25 Larry Jones <lawrence.jones@eds.com>
3511 * sanity.sh: Set $TMPDIR if it's not already set and use it rather
3512 than /tmp for the expected server temp directory path.
3514 2002-07-09 Larry Jones <lawrence.jones@eds.com>
3516 * vers_ts.c (time_stamp_server, time_stamp): Eliminate unneeded
3519 * lock.c (lock_wait, lock_obtained): Display time in UTC if possible
3520 to reduce confusion in client/server mode.
3521 (Original patch from Eduardo Perez Ureta <eperez@it.uc3m.es>.)
3523 2002-06-26 Larry Jones <lawrence.jones@eds.com>
3525 * tag.c (check_fileproc): When checking up-to-date, T_REMOVE_ENTRY
3526 is also a valid status.
3527 (Reported by David Everly <David.Everly@wcom.com>.)
3528 * sanity.sh (tagc): New tests for above.
3530 2002-06-18 Larry Jones <lawrence.jones@eds.com>
3532 * update.c (patch_file): Don't patch if diff bigger than file.
3533 Don't bother adjusting the permission on the diff output if
3534 we're not going to use it.
3537 2002-06-18 Derek Price <oberon@umich.edu>
3539 * server.c: Handle HPUX password expiration fields in the passwd
3540 string in case we are set up on a server with NIS passwords served
3542 (Original patch from John Cavanaugh <john_cavanaugh@agilent.com>.)
3544 2002-06-17 Larry Jones <lawrence.jones@eds.com>
3545 and Jonathan Kamens <jik@kamens.brookline.ma.us>
3547 * commit.c (commit_fileproc, commit_direntproc): Don't try to call
3548 an editor to get the log message if running as a server. Instead,
3549 just use an empty log message.
3550 * import.c (import): Ditto.
3552 * import.c (import): In client mode, always send a message to the
3553 server, even if it's empty (this parallels a change made by Larry
3554 Jones to commit.c on May 7).
3556 2002-05-31 Larry Jones <lawrence.jones@eds.com>
3558 * rcs.c: Conditionally define MAP_FAILED for old systems that don't
3559 have it in <mman.h>.
3560 (Reported by jeremy brand <jeremy@earth.care2.com>.)
3562 2002-05-24 Larry Jones <lawrence.jones@eds.com>
3564 * rcscmds.c (diff_exec): Add a -- before the first file name just
3565 in case it looks like an option.
3566 (Reported by Zooko <zooko@zooko.com>.)
3568 * rcscmds.c (diff_execv): Remove -- same as diff_exec. Change
3572 2002-05-23 Larry Jones <lawrence.jones@eds.com>
3574 * cvs.h (strcat_filename_onto_homedir): Make arguments const.
3575 * filesubr.c (strcat_filename_onto_homedir): Make arguments const,
3576 move more code here from callers, change all callers.
3578 2002-05-22 Derek Price <oberon@umich.edu>
3580 * cvs.h: Add prototype for this...
3581 * filesubr.c (strcat_filename_onto_homedir): new function.
3582 * login.c (): Use new function.
3584 * cvsrc.c (read_cvsrc): Use new function due to problems on VMS.
3585 * ignore.c (ign_setup): Ditto.
3586 * wrapper.c (wrap_setup): Ditto.
3587 (Original patch from Karsten Spang <ksp@dannet.dk>.)
3589 2002-05-21 Larry Jones <lawrence.jones@eds.com>
3591 * rcs.c (rcsbuf_getkey): Correct off-by-one error in ptr assertion
3592 and add a similar assertion for ptrend.
3593 (Reported by Rebecca Young <raygirl@cvshome.org>.)
3594 (rcsbuf_fill): Remove redundant code.
3596 2002-05-20 Derek Price <oberon@umich.edu>
3598 * buffer.h: New prototype for...
3599 * buffer.c (stdio_buffer_get_file): this new function to abstract
3600 access to a buffer's file descriptor.
3601 * client.c (auth_server): Use the new function.
3602 (Original patch from Jonathan Kamens <jik@kamens.brookline.ma.us>.)
3604 2002-05-20 Derek Price <oberon@umich.edu>
3606 * main.c (main): Add 2002 to the copyright years output with the
3609 2002-05-15 Larry Jones <lawrence.jones@eds.com>
3611 * log.c (log_parse_list): Fix off-by-one error which caused
3612 incorrect handling of 'cvs log -wuser1,user2 foo.c' command.
3613 (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>,
3614 reported by Alex Morozov <morozov@novosoft.ru>.)
3616 2002-05-09 Larry Jones <lawrence.jones@eds.com>
3618 * login.c (password_entry_operation): Get cvsroot_canonical before
3619 trying to read the user's password file so we have it even if the
3621 (Reported by Sarah Thompson <sthompson@fsl.noaa.gov>.)
3623 2002-05-08 Derek Price <oberon@umich.edu>
3625 * Makefile.am (cvs_SOURCES): Add options.h explicitly - since we
3626 stopped generating it dynamically, Automake stopped noticing it and
3627 including it in dists. See TODO item #214 for notes.
3629 2002-05-08 Derek Price <oberon@umich.edu>
3631 * cvs.h: Use the HAVE_CONFIG_H define.
3633 2002-05-07 Larry Jones <lawrence.jones@eds.com>
3635 * filesubr.c (isaccessible): Set errno before returning failure
3636 in the SETXID_SUPPORT code.
3638 * logmsg (do_verify): Avoid even more work if there's no verifymsg
3641 * logmsg: Use fputs/putc rather than fprintf where appropriate.
3642 (do_verify): Run the verifymsg script even if there's no log
3643 message. (Reported by Andy Baker <Andy.Baker2@t-mobile.co.uk>.)
3644 Don't reread the log message unless a verifymsg script was run.
3646 * commit.c (commit): Always send -m to the server, even if there's
3649 * create_adm.c (Create_Admin): Add dotemplate parameter to trace.
3650 Remove unreachable code.
3652 2002-05-03 Larry Jones <lawrence.jones@eds.com>
3654 * server.c (serve_watch_on, serve_watch_off, serve_watch_add,
3655 serve_watch_remove): Just pass "watch" as the command name
3656 to do_cvs_command to avoid unknown command errors.
3657 (Reported by Gary Hennigan <gary@ieee.org>.)
3659 * rcs.c (RCS_checkin): Fix bad call to error () in buggy
3660 PRESERVE_PERMISSIONS code.
3661 (rcs_internal_unlockfile): Include current value of errno in error
3662 message even though it may well be irrelevant (it's still better
3665 2002-05-02 Derek Price <oberon@umich.edu>
3667 * .cvsignore: Remove lines for files obsoleted by new autotools.
3669 2002-05-02 Derek Price <oberon@umich.edu>
3671 * stamp-h2.in: Remove this uneeded file.
3673 2002-05-01 Derek Price <oberon@umich.edu>
3675 * options.h.in: Move to...
3678 2002-04-30 Derek Price <oberon@umich.edu>
3680 * version.h.in: Remove this file.
3683 * Makefile.am: Remove references to version.h.
3684 * cvs.h: Use <> rather than "" around the config.h #include. I didn't
3685 quite bother to understand why, but autoconf recommends it.
3686 * cvsbug.in: Use PACKAGE_BUGREPORT defined by configure for the bug
3687 report email address.
3688 * version.c (version): Use PACKAGE_STRING defined in config.h instead
3689 of the version_string that used to be defined in version.h.
3691 * Makefile.in: Regenerated with automake 1.6.
3693 2002-04-28 Derek Price <oberon@umich.edu>
3695 * cvs.h: Use `"'s around includes when we mean a local file.
3697 2002-04-28 Derek Price <oberon@umich.edu>
3699 * cvs.h: #define new names for functions and variables when they
3700 might conflict with system definitions (namely on Mac OS X 10.1 with
3701 the most recent dev packages - This should be removable after the Mac
3702 dev packages are fixed.).
3704 2002-04-26 Larry Jones <larry.jones@sdrc.com>
3706 * logmsg.c (do_editor): Fix assertion when CLIENT_SUPPORT not defined.
3707 (Reported by Matthias Andree <matthias.andree@stud.uni-dortmund.de>.)
3709 2002-04-19 Larry Jones <larry.jones@sdrc.com>
3711 * log.c (log_expand_revlist): First cut at code to allow logging
3712 between a revision and *any* ancestor, not just one explicitly on
3713 the same branch (e.g., from 1.1 to 4.1.2.3.6.1).
3715 * subr.c (gca): Simplify and optimize.
3717 2002-04-19 Jim Meyering <meyering@lucent.com>
3718 and Ed Santiago <easm@lucent.com>
3720 * classify.c (Classify_File): Fix it so that `cvs update -p -r...'
3721 works, even under some slightly unusual (though perfectly legitimate)
3723 * sanity.sh (update-p): New tests for this.
3725 2002-04-18 Derek Price <oberon@umich.edu>
3727 * sanity.sh: Move test for regex metacharacters in username until
3728 after we're sure we found the version of expr that we're going to use.
3730 2002-04-18 Larry Jones <larry.jones@sdrc.com>
3732 * admin.c (admin_fileproc): Allow admin to be used on RCS files with
3733 no local version (e.g., removed files) like most other subcommands.
3735 * wrapper.c (wrap_add): Update URL of -t/-f wrapper discussion.
3737 2002-04-18 Derek Price <oberon@umich.edu>
3739 * version.h: Regenerated for 1.11.2.1 version update.
3741 2002-04-17 Derek Price <oberon@umich.edu>
3743 * version.h: Regenerated for 1.11.2.
3745 2002-04-03 Derek Price <oberon@umich.edu>
3747 * stamp-h2.in: Regenerate with recent version of Autoconf.
3749 2002-04-03 Derek Price <oberon@umich.edu>
3751 * sanity.sh (TR): Send the stderr of one of the tool setup (tr) tests
3752 to /dev/null to avoid spurious output on some operating systems
3755 2002-03-22 Larry Jones <larry.jones@sdrc.com>
3757 * sanity.sh (rcslib): Correct new tests to use ${testcvs} instead
3760 2002-03-21 Derek Price <oberon@umich.edu>
3762 * vers_ts.c (time_stamp): Return the timestamp for the newer of the
3763 link and the link's source when the file is a link.
3764 (Patch from RedHat cvs-1.11.1p1-7 SRPM.)
3766 * sanity.sh (rcslib): Test for same.
3768 2002-03-17 Larry Jones <larry.jones@sdrc.com>
3770 * log.c (cvslog, log_fileproc): Add -S option to suppress head or
3771 file name if no revisions selected.
3772 * sanity.sh (log): New tests for above.
3774 2002-03-13 Derek Price <oberon@umich.edu>
3776 * main.c (usg): Correct a spelling mistake in a comment.
3777 (Thanks to Matt Kraai <kraai@alumni.cmu.edu>.)
3779 2002-03-09 Larry Jones <larry.jones@sdrc.com>
3781 * import.c (import): Change the suggested merge message to use
3782 rev tags instead of the branch tag with a date.
3783 * sanity.sh (import, importb): Change to match.
3785 * remove.c (remove_fileproc): Disallow removing files with sticky
3786 dates for the same reason we already disallow sticky numeric tags.
3787 * sanity.sh (sticky): New test for above.
3789 2002-02-27 Larry Jones <larry.jones@sdrc.com>
3791 * diff.c (diff_fileproc): Treat dead revisions as nonexistent.
3793 2002-02-26 Larry Jones <larry.jones@sdrc.com>
3795 * diff.c (diff): Remove -V and --paginate options: they aren't valid.
3796 (diff_usage): Document all the diff options.
3798 2002-02-13 Larry Jones <larry.jones@sdrc.com>
3800 * rcs.c (RCS_gettag): Do not interpret an empty tag as HEAD (nothing
3801 else does and I don't see any documentation that says it should).
3802 (translate_symtag): Break out of loop at end of symbols to prevent
3803 looping forever when tag is "".
3804 (Reported by Alain ENOUT <aln00@udcast.com>
3805 via Eric Gillespie <epg@pretzelnet.org>.)
3807 2002-02-11 Larry Jones <larry.jones@sdrc.com>
3809 * server.c (server_cleanup): Set buf_to_net back to blocking mode
3810 and flush it (in case there are any error messages pending) before
3811 shutting down buf_from_net and again right before shutting it down.
3813 2002-02-08 Larry Jones <larry.jones@sdrc.com>
3815 * main.c (lookup_command_attribute): Throw a fatal error if the
3816 command is not found.
3817 * server.c (server_tag): Use the correct command name.
3819 2002-01-30 Larry Jones <larry.jones@sdrc.com>
3821 * error.h (error_exit): Remove unintended prototype.
3823 * server.c (serve_root): Remove check for impossible condition.
3824 (serve_init): Save and restore current_parsed_root.
3826 2002-01-29 Larry Jones <larry.jones@sdrc.com>
3828 * error.h (error_exit): Declare __noreturn__ to avoid spurious
3831 * server.c (serve_root): If the specified root doesn't match the
3832 pserver root, return before changing current_parsed_root to prevent
3833 subsequent commands from accessing an unchecked root directory.
3834 (server_init): Check specified root against the pserver root and
3835 complain if they don't match. Also, if there are pending errors,
3836 print them and return before changing current_parsed_root to prevent
3837 subsequent commands from accessing an unchecked root directory.
3838 * sanity.sh (pserver): New tests for above.
3840 2002-01-10 Larry Jones <larry.jones@sdrc.com>
3842 * log.c (log_version_requested): Change :: in revision spec to be
3843 exclusive just on the low end (so -r tag1::tag2 gives revisions
3844 after tag1 but up to and including tag2), which is much more useful
3845 than the previous (exclusive at both ends) behavior.
3846 (log_usage): Update to match.
3847 * sanity.sh (log): Update to match.
3849 2002-01-02 Larry Jones <larry.jones@sdrc.com>
3851 * server.c (LOG_DAEMON): Define if needed.
3852 (Patch from John David Anglin <dave@hiauly1.hia.nrc.ca>.)
3854 * server.c (pserver_authenticate_connection): Add a specific error
3855 message for EOF at protocol start and syslog if available.
3856 * sanity.sh (pserver-bufinit): Update to match.
3858 2001-12-10 Larry Jones <larry.jones@sdrc.com>
3860 * log.c (log_usage): Note that -r and -d take lists, not just a
3861 single specification.
3862 (log_expand_revlist): Don't dereference null pointers when one end
3863 of a revision range is a non-existent tag.
3865 2001-12-03 Larry Jones <larry.jones@sdrc.com>
3867 * annotate.c (annotate, annotate_fileproc): Don't annotate binary
3868 files unless new -F option given.
3869 * sanity.sh (basica, ann, ann-id, rcs, keywordlog, tagdate): Update
3872 2001-11-30 Larry Jones <larry.jones@sdrc.com>
3874 * admin.c (admin): Allow unrestricted usage of -q in addition to -k.
3876 2001-10-25 Larry Jones <larry.jones@sdrc.com>
3878 * log.c (log_expand_revlist): Make erroneous or inconsistent revision
3879 specs select no revisions rather than all revisions.
3881 2001-10-23 Larry Jones <larry.jones@sdrc.com>
3883 * import.c (add_rcs_file): Don't put an expand entry into the file
3884 for the default expansion mode (kv).
3885 * wrapper.c (wrap_send, wrap_unparse_rcs_options): Process entries
3886 with default expansion mode since they may be needed to avoid matching
3887 a more general entry later.
3888 (wrap_add): Set rcsOption to NULL for default (kv).
3889 (wrap_add_entry): Use structure assignment to copy entries rather
3890 that copying members by hand.
3891 * sanity.sh (binwrap3): Revise to test wrapper entries that don't
3892 specify any non-default options but just prevent matching later,
3893 more general entries.
3895 2001-10-02 Larry Jones <larry.jones@sdrc.com>
3897 * rcs.c (RCS_fully_parse): Add revision number to more error messages.
3899 2001-09-27 Larry Jones <larry.jones@sdrc.com>
3901 * rcs.c (RCS_fully_parse, RCS_getdeltatext): Add the missing revision
3902 number to the "mismatch" error message.
3904 * sanity.sh (multiroot2-9a): Update to match changes to lock.c.
3906 2001-09-26 Larry Jones <larry.jones@sdrc.com>
3908 * lock.c (Lock_Cleanup, Reader_Lock, write_lock): Add trace messages.
3910 2001-09-24 Derek Price <dprice@collab.net>
3912 * find_names.c (add_entries_proc): Leave closure specified as such in the
3913 function definition for clarity.
3915 * find_names.c (Find_Names): Use 'closure' feature of walklist()
3916 to eliminate the static variable.
3917 (add_entries_proc): Expect closure to be the file list.
3918 (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
3920 2001-09-19 Derek Price <dprice@collab.net>
3922 * rcs.c (rcsbuf_valpolish_internal): Restore one of the
3923 "if ( ... ) abort();" sequences since it seems to check the validity of
3924 the RCS file rather than for a programming error. Also added a FIXME
3925 comment to the effect that we should explain the RCS file error to the
3926 user as such if it is such.
3927 (Thanks to Larry Jones <scjones@sdrc.com>.)
3929 2001-09-19 Derek Price <dprice@collab.net>
3931 * rcs.c (rcsbuf_getkey, rcsbuf_valpolish_internal): Replace some code
3932 of the form "if ( ... ) abort();" with equivalent calls to assert().
3934 2001-09-17 Derek Price <dprice@collab.net>
3936 * myndbm.c (mydbm_load_file): Fix buffer overflow error and make error
3937 messages more informative.
3938 * sanity.sh (modules6): New test.
3939 (Original report from Taska <taska@collab.net> and others.)
3941 2001-09-14 Derek Price <dprice@collab.net>
3943 * logmsg.c (do_verify): Dispose memory when finished with it.
3945 2001-09-07 Larry Jones <larry.jones@sdrc.com>
3947 * mkmodules.c (notify_contents): In the example, move the %s to
3948 the end since many, if not most, versions of mail insist on
3949 options coming before addresses.
3951 2001-09-06 Derek Price <dprice@collab.net>
3953 * login.c (login): Deal with NULL return value from getpass.
3955 2001-09-04 Derek Price <dprice@collab.net>
3957 * Makefile.in: Regenerated with automake 1.5.
3958 * stamp-h2.in: Ditto.
3960 2001-09-04 Derek Price <dprice@collab.net>
3962 * main.c (main): Fix empty CVSROOT message to specify `valid' instead
3965 2001-09-04 Derek Price <dprice@collab.net>
3967 * server.c (pserver_authenticate_connection): Back out changes from the
3969 * getline.c (getstr): init the buffer instead.
3971 2001-08-31 Derek Price <dprice@collab.net>
3973 * Makefile.in: Backed out accidental commit from yesterday.
3975 2001-08-30 Derek Price <dprice@collab.net>
3977 * server.c (pserver_authenticate_connection): Don't print from the
3978 NULL pointer in the error message string in the case where the client
3979 didn't send any data.
3980 * sanity.sh (pserver): Test for this case.
3981 (Report from Mark Welch <mark@collab.net>).
3983 2001-08-24 Derek Price <dprice@collab.net>
3985 * logmsg.c (do_editor): Add comment and assertion.
3986 * import.c (import): Don't call do_editor with a repository argument
3988 (Report and original patch from darkness <darkness@invado.com>.)
3990 2001-08-24 Larry Jones <larry.jones@sdrc.com>
3992 * log.c (log_expand_revlist): Arrange for nil revision specs to
3993 select nothing instead of everything.
3994 * sanity.sh (log): New tests for above.
3996 2001-08-24 Derek Price <dprice@collab.net>
3998 * parseinfo.c (Parse_Info): Change the function name in the trace
3999 and add the client/server string.
4001 2001-08-24 Derek Price <dprice@collab.net>
4003 * Implement RereadLogAfterVerify CVSROOT/config option to control
4004 FreeBSD read-write of log messages in the verification script.
4005 * logmsg.c: RereadLogAfterVerify defaults to LOGMSG_REREAD_NEVER
4006 to preserve the status quo.
4007 * parseinfo.c (parse_config): Add parsing for RereadLogAfterVerify
4008 option. Possible values are: no | never | yes | always | stat
4009 * cvs.h: Add extern for RereadLogAfterVerify and new value macros
4010 LOGMSG_REREAD_NEVER, LOGMSG_REREAD_ALWAYS, LOGMSG_REREAD_STAT for
4012 (Patch from Mark D. Baushke <mdb@cvshome.org>.)
4014 * Apply changes from FreeBSD cvs sources to implement a read-write
4015 user-defined verification script.
4016 * logmsg.c (do_verify): Update do_verify to expect a pointer
4017 to the saved message. The log file passed to the verifymsg_script
4018 should be re-read after the user-defined verification script has
4019 been run. The user-defined verification script is allowed to
4020 modify the message. This allows the script to add extra
4021 information to the log message or to remove template lines that
4023 * cvs.h: Update prototype for do_verify prototype to expect a
4024 pointer to the saved_message.
4025 * commit.c (commit, commit_fileproc, commit_direntproc): Update
4026 calls to do_verify as the saved_message arg is now read-write.
4027 * import.c (import): Update calls to do_verify as the
4028 saved_message arg is now read-write.
4029 * sanity.sh (info-v4-[12]): Rename the old info-v4 test to info-v5
4030 and add a new info-v4 test case have the verification script
4031 modify the log message to test the above changes.
4032 (Patch from Mark D. Baushke <mdb@cvshome.org>.)
4034 * logmsg.c: Change RereadLogAfterVerify default to always.
4035 (do_verify): Reformat and make minor fixes to Mark's patch.
4036 * mkmodules.c (config_constants): Add comment about
4037 RereadLogAfterVerify.
4038 * sanity.sh (info-rereadlog): Rename the tests from Mark's patch and
4039 reformat them a bit.
4041 2001-08-23 Derek Price <dprice@collab.net>
4043 * sanity.sh (info): Demonstrate that the verifymsg scripts can
4044 sometimes, but not always, retreive information on which directory is
4047 2001-08-22 Derek Price <dprice@collab.net>
4049 * logmsg.c: Back out the last change - the repository which is passed
4050 in is actually the directory and changes with each call to do_verify.
4051 If a verifymsg script is using `pwd`, this could change the operation.
4056 2001-08-22 Derek Price <dprice@collab.net>
4058 * logmsg.c (do_editor): Return reused_message.
4059 (do_verify): Don't verify the same log message more than once.
4060 * cvs.h: Update prototypes for do_verify and do_editor.
4061 * commit.c (commit_fileproc, commit_direntproc): Use the new functionality.
4062 * import.c (import): Ditto.
4064 2001-08-22 Derek Price <dprice@collab.net>
4066 * logmsg.c (do_verify): Remove an unecessary "else" clause following an
4067 exit and unindent the former contents.
4069 2001-08-22 Derek Price <dprice@collab.net>
4071 * commit.c (commit): Don't call do_verify in client mode since we know
4072 do_verify will just return anyhow.
4074 2001-08-20 Derek Price <dprice@collab.net>
4076 * Makefile.am (cvs_SOURCES): Add version.c and version.h.
4077 (BUILT_SOURCES): Add version.h.
4078 (Maintainer Targets): Remove version.h.
4079 * version.c: Remove @VERSION@ dependant bits.
4080 * version.c.in: Removed.
4081 * version.h.in: New file.
4082 (Original patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
4084 * Makefile.am: Various modifications to make Automake, make dist, and
4085 windows targets work like they are supposed to.
4086 * version.h: New (generated) file.
4088 * Makefile.in: Regenerated.
4090 2001-08-09 Derek Price <dprice@collab.net>
4092 * client.c (socket_buffer_shutdown): Use recv instead of read and
4093 return 0 on success.
4094 (Patch from "Manfred Klug" <manklu@web.de>.)
4096 2001-08-09 Derek Price <dprice@collab.net>
4098 * buffer.c (stdio_buffer_shutdown): Assume the buffer is not a socket
4099 when NO_SOCKET_TO_FD is defined.
4100 * client.c (make_bufs_from_fds): Add is_sock argument and remove fstat
4101 call and reference to S_ISSOCK since these functions aren't available
4103 (connect_to_forked_server, connect_to_pserver, start_tcp_server,
4104 start_server, start_rsh_server): Use new argument.
4105 (Patch from "Manfred Klug" <manklu@web.de>.)
4107 * buffer.c (stdio_buffer_shutdown): Various reformattings, fix bug
4108 where rsh pipes weren't being closed.
4110 2001-08-09 Derek Price <dprice@collab.net>
4112 * sanity.sh (rmadd, rm-update-message, join-two-branch,
4113 ignore-on-branch): Change a few references to `cvs' to `$PROG'.
4115 2001-08-07 Derek Price <dprice@collab.net>
4117 * build_src.com: Add annotate.c/annotate.obj,verify, correct zlib name.
4118 * patch.c: VMS time_t appears to be unsigned. Add a cast when testing
4120 * subr.c: #else,#endif for no symlinks should be moved.
4121 (Patch from Mike Marciniszyn <Mike.Marciniszyn@sanchez.com>.)
4123 2001-08-06 Derek Price <dprice@collab.net>
4125 * Makefile.in: Regenerated.
4127 2001-08-01 Derek Price <dprice@collab.net>
4129 * diff.c (diff): Send long option for side-by-side diffs to the server
4130 rather than '-y', for backwards compatibility with old servers.
4131 (Original patch from Peter Mathiasson <peter@mathiasson.nu>.)
4133 2001-07-19 Larry Jones <larry.jones@sdrc.com>
4135 * mkmodules.c (cvswrappers_contents): Remove -t/-f since they're
4136 disabled in wrapper.c.
4138 * checkout.c (checkout): Don't complain about checking out into the
4139 repository when piping output.
4140 (Reported by der Mouse <mouse@Rodents.Montreal.QC.CA>.)
4141 * sanity.sh (checkout_repository): New tests for above.
4143 2001-07-10 Larry Jones <larry.jones@sdrc.com>
4145 * sanity.sh (importc-7): Now works correctly in local mode.
4147 * commit.c (commit_dirleaveproc): We're still in the directory when
4148 this is called, so the first argument to Name_Repository needs to
4150 * sanity.sh (rmadd): New tests for above.
4152 * commit.c (commit): Reword error messages for committing as root.
4154 2001-07-08 Larry Jones <larry.jones@sdrc.com>
4156 * rcs.c (RCS_checkout): Correct scanf format to allow for trailing
4158 * update.c (special_file_mismatch): Ditto.
4159 (Reported by Pekka Savola <pekkas@netcore.fi>.)
4161 2001-07-05 Larry Jones <larry.jones@sdrc.com>
4163 * client.c, root.c: Fix -Wall warnings.
4165 * buffer.c: #include socket header to declare shutdown().
4167 * rcs.c (rcsbuf_open): Use getpagesize() instead of sysconf() for
4169 (RCS_copydeltas, rcsbuf_fill): Fix -Wall warnings.
4171 2001-07-04 Derek Price <dprice@collab.net>
4173 * Makefile.in: Regenerated with new Automake release candidate 1.4h.
4175 2001-07-03 Derek Price <dprice@collab.net>
4177 * rcs.c (rcsbuf_open): Reduce memory consumption still further by not
4178 mmapping the entire file when pos is specified.
4179 (rcsbuf_cache_open): Add FIXME comment wrt read-only mmaps and rcsbuf
4182 2001-07-03 Derek Price <dprice@collab.net>
4184 * rcs.c (rcsbuf_open): Use mmap when possible to reduce memory
4185 consumption, especially with large (e.g. binary) files.
4186 (rcsbuf_close): Call munmap.
4187 (rcsbuf_getkey): Remove the buffer fill code when using mmap.
4188 (rcsbuf_getrevnum): Ditto.
4189 (rcsbuf_fill): Remove this function when using mmap.
4190 (rcsbuf_cache_open): Mostly don't use this function with mmap.
4191 (RCS_copydeltas): Don't depend on the file pointer with mmap.
4193 * stamp-h2.in: Regenerated.
4195 2001-07-03 Derek Price <dprice@collab.net>
4197 * update.c: Indent compiler directives.
4199 2001-07-02 Larry Jones <larry.jones@sdrc.com>
4201 * import.c (update_rcs_file): Use -kb instead of -ko when comparing
4203 (Reported by Gyula Faller <gfaller@graphisoft.hu>.)
4205 2001-06-28 Larry Jones <larry.jones@sdrc.com>
4207 * checkout.c (checkout): Explicitly initialize all the static options
4208 so that multiple calls work right. Also fix potential memory leaks.
4209 (Reported by Dr. Dieter Maurer <dieter@sz-sb.de>.)
4211 2001-06-28 Derek Price <dprice@collab.net>
4213 * Makefile.in: Regenerated with new version of Automake.
4215 2001-06-28 Larry Jones <larry.jones@sdrc.com>
4217 * checkout.c (checkout): Set history_name for export as well as
4219 (checkout_proc): Use it.
4221 * checkout.c (safe_location): Add missing argument in error message.
4223 2001-06-26 Larry Jones <larry.jones@sdrc.com>
4225 * recurse.c (start_recursion): Use strip_trailing_slashes instead
4226 of doing it by hand.
4228 * server.c (pserver_authenticate_connection): Don't clear out
4229 descrambled_password until *after* it's (potentially) logged.
4230 (Reported by Eric Hanchrow <offby1@blarg.net>.)
4232 2001-06-25 Larry Jones <larry.jones@sdrc.com>
4234 * recurse.c (start_recursion): Deal with at least some of the cases
4235 where trailing slashes cause confusion.
4236 (Reported by Malcolm Fernandes <fernande@redback.com>.)
4237 * sanity.sh (basica, basicb): Tweak existing tests to check this.
4239 2001-06-22 Larry Jones <larry.jones@sdrc.com>
4241 * sanity.sh (modules5): New tests with -d on command line.
4243 2001-06-21 Larry Jones <larry.jones@sdrc.com>
4245 * modules.c (do_module): Use run_module_prog and server_active to
4246 determine when to call server_prog instead of using server_expanding
4247 so that we get the right paths in the replies as long as we take
4248 mwhere into account in addition to where.
4249 (Reported by Pascal Bourguignon <pjb@informatimago.com>.)
4250 * server.c (server_prog): Use protocol pipe instead of buf_to_net.
4251 * sanity.sh (modules5): Remove FIXCVS comment and update to match.
4252 * server.c, server.h: Remove server_expanding since now unused.
4254 2001-06-21 Larry Jones <larry.jones@sdrc.com>
4255 for Stephen Rasku <stephen@tgivan.com>
4257 * admin.c: Corrected spelling mistakes in help.
4259 2001-06-20 Derek Price <dprice@collab.net>
4261 * client.c (socket_buffer_shutdown): Fix untested typos.
4262 (Reported by "Jerzy Kaczorowski" <jerzyk@wndtabs.com>.)
4264 * buffer.c (stdio_buffer_shutdown): Put the call to SHUTDOWN_SERVER in
4267 2001-06-20 Derek Price <dprice@collab.net>
4269 * logmsg.c (do_editor): Abort in the case that the file has only
4271 (Original patch from Mark Valentine <mark@thuvia.demon.co.uk>.)
4273 * logmsg.c (do_editor): Fix rare memory leak.
4274 * sanity.sh (editor): Add tests for aborted log messages.
4276 2001-06-20 Larry Jones <larry.jones@sdrc.com>
4278 * server.c (switch_to_user): Only set $CVS_USER if
4279 AUTH_SERVER_SUPPORT is defined.
4280 (Reported by Nalin Dahyabhai <nalin@blade.devel.redhat.com>.)
4282 2001-06-13 Derek Price <dprice@collab.net>
4284 * client.c: Fix incorrect fixed-size buffer usage in
4285 connect_to_gserver().
4286 (Minor changes to a patch from Alexey Mahotkin <alexm@hsys.msk.ru>.)
4288 2001-06-11 Derek Price <dprice@collab.net>
4290 * main.c (main): Always print $CVSROOT when parse_cvsroot fails.
4291 * root.c (parse_cvsroot): Tidy error messages and provide more
4292 consistent behavior.
4293 * sanity.sh (crerepos): Adapt to new error messages.
4294 (Suggested by Alexey Mahotkin <alexm@hsys.msk.ru>.)
4296 2001-06-08 Derek Price <dprice@collab.net>
4298 * sanity.sh (tagf-28): Use $CVSROOT_DIRNAME.
4300 2001-06-07 Larry Jones <larry.jones@sdrc.com>
4302 * rcs.c (RCS_unlock): Reverse kj's change of 1999-10-18: a bare -u
4303 should never break locks, you have to specify a specific revision
4304 to do that. Also add an informative message for a bare -u when
4305 the user doesn't hold any locks.
4306 * commit.c (unlockrcs): Make RCS_unlock quiet, like RCS_lock.
4307 * sanity.sh (rmadd-24): Update to match.
4309 * sanity.sh (crerepos-6a): Set CVS_RSH for ${testcvs}, not for
4310 dotest_fail. Allow for "broken pipe" rather than "end of file".
4312 2001-06-07 Derek Price <dprice@collab.net>
4314 * sanity.sh (tagf): Use $CVSROOT_DIRNAME rather than
4315 /tmp/cvs-sanity/cvsroot.
4317 2001-06-06 Derek Price <dprice@collab.net>
4319 (Reformatting, bug fixes, tests, and comments to a
4320 patch from Stephen Cameron <steve.cameron@compaq.com>.)
4322 * tag.c: (rtag_fileproc, rtag_delete, tag_fileproc)
4323 Changed behavior of "cvs tag -F", "cvs tag -d", "cvs rtag -F"
4324 and "cvs rtag -d" so that they will not disturb existing
4325 branch tags unless a new "-B" option is given.
4326 * sanity.sh (tagf-16 - tagf-33): Added tests for new -B option
4327 to "cvs tag" and "cvs rtag"
4329 2001-06-06 Derek Price <dprice@collab.net>
4331 * sanity.sh (crerepos-6a): Set CVS_RSH=false and only for the actual
4332 test call at Larry's suggestion. Also, test the error message since
4335 2001-06-05 Larry Jones <larry.jones@sdrc.com>
4337 * rcs.c (RCS_unlock): Note when breaking someone else's lock.
4338 (Reported by MURVAI-BUZOGANY Laszlo
4339 <Laszlo.MURVAI-BUZOGANY@gt-systems.hu>.)
4340 * sanity.sh (reserved-14): Update to match.
4342 2001-06-05 Derek Price <dprice@collab.net>
4344 * sanity.sh (crerepos-6a): Set CVS_RSH=/bin/false... this is a local
4345 mode only test anyhow.
4346 (Thanks to Larry Jones and Morgan Burke <morgan@sitka.triumf.ca>.)
4348 2001-05-31 Derek Price <dprice@collab.net>
4350 * sanity.sh (rcs2-7): Add today to the list of failure dates for rcs2-7
4351 in the hopes that the data will eventually prove useful to someone
4352 motivated enough to fix the problem.
4354 2001-05-30 Derek Price <dprice@collab.net>
4356 * stamp-h2.in: Regenerated.
4358 2001-05-30 Derek Price <dprice@collab.net>
4360 * *: Various bug fixes and comments for the following
4361 patch from Donald Sharp <sharpd@cisco.com>:
4363 * checkout.c (safe_location): cvs co -d <directory> still had
4364 failure modes from the way the -d option works.
4365 * sanity.sh: Misc error message resynching.
4367 2001-05-29 Derek Price <dprice@collab.net>
4369 * Makefile.am (cvs_SOURCES): Add root.h.
4371 * Makefile.in: Regenerated.
4372 * stamp-h2.in: Regenerated.
4374 2001-05-29 Derek Price <dprice@collab.net>
4376 * checkout.c (safe_location): Correct formatting.
4378 2001-05-29 Derek Price <dprice@collab.net>
4380 * root.c (parse_cvsroot): Fix a comment.
4382 2001-05-26 Larry Jones <larry.jones@sdrc.com>
4384 * checkout.c (safe_location): Use old-style definition to keep
4385 non-ANSI compilers happy.
4387 * sanity.sh (check_respository): Use ${CVSROOT_DIRNAME} instead
4388 of /tmp/cvs-sanity/cvsroot.
4390 2001-05-25 Larry Jones <larry.jones@sdrc.com>
4392 * sanity.sh (modules5): Add sleep to script to help avoid out of
4395 * filesubr.c (mkdir_if_needed): Return 1 if the directory exists
4396 reguardless of what errno is set to.
4397 (Reported by "Robinson, Greg" <greg.robinson@dsto.defence.gov.au>.)
4399 2001-05-25 Derek Price <dprice@collab.net>
4400 for Donald Sharp <sharpd@cisco.com>
4402 * checkout.c: Modified safe_location() to refuse checkout if
4403 the -d option to co specifies inside of the repository.
4404 * import.c: New parameter to safe_location needed to be added.
4405 * cvs.h: New parameter to safe_location needed to be added.
4406 * sanity.sh: Test case to test for failure mode.
4408 2001-05-23 Larry Jones <larry.jones@sdrc.com>
4410 * checkout.c (checkout_proc): Don't build top_level_admin directory
4412 (Reported by Tony Byrne <tonyb@directski.com>.)
4414 2001-05-21 Derek Price <dprice@collab.net>
4416 * client.c: Fix a mispelling in a comment.
4417 (Patch from Alexey Mahotkin <alexm@hsys.msk.ru>).
4419 2001-05-05 Larry Jones <larry.jones@sdrc.com>
4421 * login.c (password_entry_operation): Only warn if unable to open
4422 .cvspass for reading: may be initial login and it doesn't exist yet.
4424 2001-05-15 Derek Price <dprice@collab.net>
4426 * client.c (start_tcp_server): Use the struct sockaddr_in declared in
4428 (Reported by Emil Isberg <isberg@dynarc.se>.)
4430 2001-05-05 Larry Jones <larry.jones@sdrc.com>
4432 * annotate.c (annotate): Pass local to do_module and rannotate_proc
4433 so that -l actually works.
4434 * log.c (cvslog): Ditto.
4435 * patch.c (patch): Ditto; make local local instead of global.
4436 (patch_proc): Use local_specified parameter instead of global.
4437 * tag.c (cvstag, rtag_proc): Ditto.
4439 2001-05-05 Larry Jones <larry.jones@sdrc.com>
4441 * client.h: Declare "struct buffer" outside prototype for __STDC__
4444 2001-05-04 Derek Price <dprice@collab.net>
4446 * client.c: General refactoring. Removed several global variables in
4447 favor of passing locals and/or dynamic evaluation.
4448 (recv_line): Removed this function.
4449 (make_bufs_from_fds): New function with factored code.
4450 (connect_to_forked_server): New prototype. Use new functions.
4451 (connect_to_pserver): New prototype. Use new functions.
4452 (connect_to_gserver): New prototype. Use new API.
4453 (auth_server): Factored this portion of the pserver code so it can be
4454 shared. Rewrote to use buffers rather than depending on a socket.
4455 (start_rsh_server): New prototype. Use new API.
4456 (start_tcp_server): New prototype. Use new API.
4457 (start_server): Factor some code. Use new API.
4458 * client.h: New prototypes.
4459 * cvs.h: Gratuitous reformatting. Use new root.h.
4460 * login.c (login): Use new connect_to_pserver API.
4461 * root.h: New file. Contains some code that used to be in cvs.h.
4463 2001-05-04 Derek Price <dprice@collab.net>
4465 * client.c: Gratuitous reformatting.
4468 2001-05-04 Derek Price <dprice@collab.net>
4470 * zlib.c (compress_buffer_shutdown_input): Use new buffer shutdown
4472 (compress_buffer_shutdown_output): Ditto.
4473 (Thanks to Pavel Roskin <proski@gnu.org>.)
4475 2001-05-03 Derek Price <dprice@collab.net>
4477 * buffer.c (struct stdio_buffer_closure): New structure to hold a
4478 FILE * and the child's PID when necessary.
4479 (stdio_buffer_initialize): Change proto to accept PID. Set up new
4480 closure. Pass new stdio_buffer_shutdown to buf_initialize.
4481 (stdio_buffer_input): Use new closure.
4482 (stdio_buffer_output): Ditto.
4483 (stdio_buffer_flush): Ditto.
4484 (stdio_buffer_shutdown): New function. Teach buffer to close itself.
4485 (packetizing_buffer_shutdown): Use new buffer shutdown proto.
4486 * buffer.h (struct buffer): New buffer shutdown proto.
4487 (stdio_buffer_initialize): New proto.
4488 * client.c (log_buffer_shutdown): Use new proto.
4489 (socket_buffer_initialize): Pass shutdown func.
4490 (socket_buffer_shutdown): New function.
4491 * server.c (get_responses_and_close): Remove most of the guts. Rely
4492 on the buffer shutdown function from now on.
4493 (start_rsh_server): Return child PID.
4495 2001-05-03 Larry Jones <larry.jones@sdrc.com>
4497 * history.c (history_write): Handle the case where the user's home
4498 directory doesn't exist gracefully instead of erroring out.
4499 (Reported by David Hoover <dhoover@cadence.com>.)
4501 2001-05-03 Derek Price <dprice@collab.net>
4503 * cvs.h: s/allocate_and_strcat/xrealloc_and_strcat/ since that is what
4504 I wrote in the ChangeLog, oh, so long ago.
4505 * diff.c (diff): Ditto.
4506 * subr.c (allocate_and_strcat, xrealloc_and_strcat): Ditto.
4508 2001-05-02 Larry Jones <larry.jones@sdrc.com>
4510 * rcs.c (RCS_getdate): Handle the (unusual!) case where we
4511 can't find any revisions at all.
4512 (Reported by Ryan Grow <rgrow@Dbdoctor.net>.)
4514 2001-04-30 Larry Jones <larry.jones@sdrc.com>
4516 * sanity.sh (multiroot2-9a): Rename (from multiroot2-9) to avoid
4517 duplicate names; fix to work without SERVER_SUPPORT defined.
4518 (Reported by Pavel Roskin <proski@gnu.org>.)
4520 2001-04-29 Derek Price <dprice@collab.net>
4522 * Makefile.am (check-local): Make dependent on localcheck and
4523 remotecheck and move old check target...
4526 * Makefile.in: Regenerated.
4528 2001-04-27 Larry Jones <larry.jones@sdrc.com>
4530 * sanity.sh (pserver): Add tests for readers and writers.
4532 2001-04-27 Derek Price <dprice@collab.net>
4534 * sanity.sh (version-2r): Update to handle patch releases in version
4537 2001-04-27 Derek Price <dprice@collab.net>
4539 * version.c: Regenerated.
4541 2001-04-27 Derek Price <dprice@collab.net>
4543 * version.c: Regenerated.
4545 2001-04-27 Larry Jones <larry.jones@sdrc.com>
4547 * main.c (lookup_command_attribute): Lookup specified command, not
4548 whatever's in the global command_name.
4550 2001-04-25 Derek Price <dprice@collab.net>
4552 * Makefile.in: Regenerated using AM 1.4e as of today at 18:10 -0400.
4553 * version.c: Regenerated.
4555 2001-04-22 Larry Jones <larry.jones@sdrc.com>
4557 * tag.c (tag_check_valid): Make an unwritable val-tags file a
4558 warning instead of a fatal error.
4560 2001-04-20 Larry Jones <larry.jones@sdrc.com>
4562 * annotate.c (annotate_usage): -r and -D are not mutually exclusive.
4563 * main.c (cmd_usage): Add missing version subcommand.
4564 * update.c (update_usage): Add missing -C option.
4566 * sanity.sh (death2): New tests for previous change.
4568 * classify.c (Classify_File): Treat a dead revision like the RCS
4570 * sanity.sh: Update to match.
4572 2001-04-16 Larry Jones <larry.jones@sdrc.com>
4574 * checkout.c, update.c: Fix usage messages: -r and -D are not
4576 (Suggested by David L. Martin <dlmart2@home.com>.)
4578 * logmsg.c (do_editor): Don't add a blank line to the message.
4579 * sanity.sh (editor-log-file*): Update to match.
4581 * checkout.c, update.c: Note in usage message that -k is sticky.
4583 * server.c: (server_cleanup, wait_sig): Remove ancient SunOS kludge.
4584 (Suggested by Rob Saccoccio <robs@chelsea.net>.)
4586 2001-04-04 Larry Jones <larry.jones@sdrc.com>
4588 * sanity.sh (dotest, dotest_lit, dotest_fail, dotest_status,
4589 dotest_sort): Don't count on $? being set in then or else clauses.
4591 * ignore.c (ignore_files): Collect unignored files into a list and
4592 sort it before calling PROC to avoid order dependencies. Rewrite
4593 the while loop to allow normal continues instead of goto.
4595 2001-04-04 Derek Price <dprice@collab.net>
4597 * sanity.sh (ignore-on-branch-3): Fix in the remote case.
4599 2001-04-03 Larry Jones <larry.jones@sdrc.com>
4601 * update.c (update_fileproc): Remove unused variable (resurrecting).
4603 2001-04-03 Derek Price <dprice@collab.net>
4604 Larry Jones <larry.jones@sdrc.com>
4605 reported by Jakob Bøhm <JB@Danware.dk>
4607 * update.c (update_fileproc): Don't store a file with T_UNKNOWN status
4608 in ignlist if present in the sandbox.
4609 * sanity.sh (ignore-on-branch): New test.
4610 (ignore): Tidy this test.
4612 2001-04-02 Derek Price <dprice@collab.net>
4614 * sanity.sh: Make sure the test for `id' fails when a nonstandard `id'
4615 is used and the user is root. Fix some quoting in error messages.
4616 (fork): Take `cvs' out of the PATH.
4617 (TODO): Add note about the test suite not working with user names over
4618 eight characters in length.
4620 2001-04-02 Derek Price <dprice@collab.net>
4622 * sanity.sh (fork): New test for CVS_SERVER default.
4623 (TODO): Note about eventually removing most of the references to
4626 2001-04-02 Larry Jones <larry.jones@sdrc.com>
4628 * client.c (connect_to_forked_server): Use program_path as the default
4629 server instead of "cvs".
4631 2001-04-02 Derek Price <dprice@collab.net>
4633 * sanity.sh: Use less obfuscated English in my comment about sanity
4636 2001-04-02 Derek Price <dprice@collab.net>
4638 * sanity.sh (rm-update-message): Create a test directory again but
4639 change back to the correct directory upon completion this time.
4641 2001-04-02 Derek Price <dprice@collab.net>
4643 * sanity.sh: Change last two '[.*]'s to 'test's for
4644 consistency and remove...
4645 (TODO): the note from the TODO list.
4647 2001-04-02 Derek Price <dprice@collab.net>
4649 * sanity.sh: Add test for PWD before successful exit.
4651 2001-03-30 Larry Jones <larry.jones@sdrc.com>
4653 * sanity.sh (rm-update-message): Remove duplicate code.
4655 2001-03-30 Derek Price <dprice@collab.net>
4657 * sanity.sh (rm-update-message): New test for local/client-server
4658 warning message discrepency.
4660 2001-03-30 Larry Jones <larry.jones@sdrc.com>
4662 * annotate.c: Move annotate() here from rcs.c, support rannotate.
4663 * Makefile.am, Makefile.in: Add annotate.c.
4664 * main.c (cmds[], cmd_usage[]): Add rannotate.
4665 * rcs.c: Move declarations of rcs_delta_op and RCS_deltas to...
4667 * server.c (serve_rannotate): New.
4668 (requests[]): Add rannotate.
4669 * sanity.sh (ann): New tests for rannotate.
4671 * log.c (rlog_proc): Remove dead code.
4673 2001-03-30 Derek Price <dprice@collab.net>
4675 * sanity.sh (join-readonly-conflict): Run more of this through dotest.
4677 2001-03-30 Larry Jones <larry.jones@sdrc.com>
4679 * log.c (log_fileproc): Don't output working file for rlog.
4680 * sanity.sh (log): New tests for rlog.
4682 * cvs.h (mtype): Add MISC type.
4683 * log.c (cvslog): Support rlog as well as log.
4685 * main.c (cmds[], cmd_usage[]): Add rlog.
4686 (main): Remove old rlog warning message.
4687 * server.c (serve_rlog): New.
4688 (requests[]): Add rlog.
4690 2001-03-29 Derek Price <dprice@collab.net>
4692 * sanity.sh: cd to $TESTDIR once after it is normalized. Make TODO
4693 on history and symlinks more specific. Tested properly this time.
4695 2001-03-29 Larry Jones <larry.jones@sdrc.com>
4697 * main.c (cmds[], lookup_command_attribute, main): Include the
4698 command attributes in the global command table instead of inferring
4699 them from the command names. Change the sense of the
4700 CVS_CMD_IGNORE_ADMROOT attribute to match its name.
4702 2001-03-29 Derek Price <dprice@collab.net>
4704 * sanity.sh (*, basic2-64): Remove references to TMPPWD. Fix FIXME
4705 at end of script now that $TESTDIR can't be relative.
4707 2001-03-29 Derek Price <dprice@collab.net>
4709 * sanity.sh: Normalize TESTDIR even when the user set it.
4711 2001-03-29 Larry Jones <larry.jones@sdrc.com>
4713 * client.c (connect_to_pserver, start_tcp_server): Add IP address
4714 to connect failed message.
4715 (connect_to_forked_server, connect_to_pserver, start_tcp_server): Add
4716 trace messages ala start_rsh_server.
4717 (start_rsh_server): Include entire command in trace message for
4718 START_RSH_WITH_POPEN_RW like ! START_RSH_WITH_POPEN_RW does.
4720 2001-03-29 Derek Price <dprice@collab.net>
4722 * sanity.sh: Global search & replace ${TESTDIR}/cvsroot with
4723 ${CVSROOT_DIRNAME} for consistency.
4725 2001-03-29 Derek Price <dprice@collab.net>
4727 * sanity.sh (conflicts-12[68].5): Remove sanity hack which has allowed
4728 for a CVS bug since May 96/97. Not sure when the bug went bye-bye, but
4729 the tests broke when $TESTDIR != $TMPPWD.
4731 2001-03-26 Larry Jones <larry.jones@sdrc.com>
4733 * classify.c (Classify_File): Don't report a conflict for a removed
4734 file when piping. Also simplify the code structure.
4735 (Reported by Milos Kleint <milos.kleint@netbeans.com>.)
4736 * sanity.sh (rmadd2-14[abc]): New tests for above.
4738 2001-03-24 Noel Cragg <noel@shave.cnet.com>
4740 * diff.c: mods to allow `-T' and `-y' options to be passed through
4741 to the diff library. This wasn't allowed earlier because of a
4742 similarly named options that got passed through to the old rcs
4743 programs. We've long since stopped sending `-T' to any rcs
4744 utility and have never used `-y'. Any users of moldly CVS
4745 versions which used to support `-T' have (hopefully) upgraded to
4746 one where that option isn't supported. It seems reasonable to
4747 enable them again and pass them through. (sanity.sh still works
4749 (longopts): add short option equivalents for --initial-tab and
4751 (diff): add new short options to getopt string and switch
4754 2001-03-22 Larry Jones <larry.jones@sdrc.com>
4756 * sanity.sh: Add check for ${DOTSTAR} with large matches.
4758 2001-03-23 Derek Price <dprice@collab.net>
4760 * sanity.sh: Do the same as below for $keep.
4762 2001-03-23 Derek Price <dprice@collab.net>
4764 * sanity.sh: Replace 'remote=(yes|no)' with 'remote=(:|false)' since
4765 often 'false' and more often ':' are shell builtins. This makes the
4766 succinct, 'if $remote; then' faster than 'if test $remote = yes; then'.
4767 Alter tests in the rest of the script to match the new usage. Added
4768 a suffix of 'r' to remote test names when it was appropriate and I
4769 remembered. Some reformatting.
4771 2001-03-22 Larry Jones <larry.jones@sdrc.com>
4773 * sanity.sh (diffmerge1_yours, diffmerge1_mine): Check for exact
4774 output instead of using wildcards to avoid buffer overflows in some
4777 2001-03-21 Derek Price <dprice@collab.net>
4779 * sanity.sh: cd to '/tmp' again rather than $HOME since HOME was set to
4780 a value inside ${TESTDIR} by the script.
4782 2001-03-20 Derek Price <dprice@collab.net>
4784 * sanity.sh (diffmerge1): Minor formatting and syntax changes.
4786 for Jacob Burckhardt <bjacob@ca.metsci.com>
4788 * sanity.sh (diffmerge1): More merging behavior tests. Specifically,
4789 test some cases which broke before in Karl Tomlinson's diff fix was
4792 2001-03-20 Derek Price <dprice@collab.net>
4794 * sanity.sh: Don't use unescaped parens in sh outside of quotes.
4796 2001-03-20 Derek Price <dprice@collab.net>
4798 * sanity.sh: Don't remove ${TESTDIR} when -k (keep) set.
4800 2001-03-20 Derek Price <dprice@collab.net>
4802 * sanity.sh: Change usage to match the new getopts format and comment.
4804 2001-03-16 Derek Price <dprice@collab.net>
4806 * sanity.sh (modules2-nestedrename): New test. Verifies behavior of
4807 renames nested under an ampersand module.
4808 (modules2-ampertag): New test. Verifies an error condition which
4809 prevents some ampersand modules from being checked out when a tag
4812 2001-03-16 Derek Price <dprice@collab.net>
4814 * sanity.sh (modules2): Additional test for ampersand module behavior
4817 for Greg Klanderman <greg@itasoftware.com>
4819 * checkout.c (build_one_dir): Fix typo where clauses of two
4820 conditionals were reversed in call to Create_Admin. This caused
4821 the CVS/Tag file to be removed in cases where it should have been
4822 set, and vice-versa. It only surfaced in rare cases as this code
4823 is only invoked when using the -d option to build the path to
4824 check out in. Further, the bug would only matter when checking
4825 out a module containing ampersand modules within it, via
4828 2001-03-16 Derek Price <dprice@collab.net>
4830 * sanity.sh (admin-28-5): Confirm that a missing tag during an
4831 'admin -n' operation is not a fatal error.
4833 2001-03-16 Derek Price <dprice@collab.net>
4835 * admin.c (admin_data): Remove 'quiet' member.
4836 (admin_fileproc): Use global 'really_quiet' rather than
4839 2001-03-16 Derek Price <dprice@collab.net>
4841 * sanity.sh (admin): Replace hardcoded testdir path with the variable.
4843 2001-03-15 Derek Price <derek.price@openavenue.com>
4845 * sanity.sh (basica, binfiles, head, admin): Adjust for new messages.
4846 * admin.c (admin_fileproc): Only print messages when not in
4849 for Stephen Rasku <stephen@tgivan.com>
4851 * rcs.c (RCS_tag2rev): Make a missing tag a survivable error.
4853 2001-03-15 Larry Jones <larry.jones@sdrc.com>
4855 * subr.c (sleep_past): Fix various bugs that would result in a
4856 negative sleep time if it weren't unsigned; since it is, it would
4857 result in a very large sleep time. Ensure that us is always less
4858 than 1000000. Don't try to sleep for more 1 sec with usleep.
4859 Cast NULL select arguments to correct type just in case.
4861 2001-03-14 Derek Price <derek.price@openavenue.com>
4863 * subr.c (sleep_past): New function.
4864 * client.c (get_responses_and_close): Use new function.
4865 * commit.c (commit): Ditto.
4866 * update.c (do_update): Ditto.
4867 * cvs.h: Prototype new function.
4869 * stamp-h2.in: Regenerated.
4871 2001-03-14 Derek Price <derek.price@openavenue.com>
4873 * Makefile.in: Regenerated.
4874 * stamp-h2.in: Ditto.
4876 2001-03-14 Larry Jones <larry.jones@sdrc.com>
4878 * commit.c (check_fileproc): Allow adding on the trunk when there's
4879 an existing non-Attic RCS file as long as the head revision is dead.
4880 This can happen due to an aborted resurrection.
4881 (commit_fileproc): When resurrecting, consider the dead revision
4882 along with the other files' revisions.
4883 (findmaxrev): Avoid unnecessary work.
4884 (checkaddfile): Only warn if file isn't in Attic as expected.
4885 (Reported by Ross Burton <r.burton@180sw.com>.)
4886 * sanity.sh (basica-r*): New tests for above.
4887 (basica-o4): Update to match.
4889 2001-03-09 Larry Jones <larry.jones@sdrc.com>
4891 * edit.c (edit_fileproc, unedit_fileproc): Some implementations of
4892 asctime/ctime apparently use a leading zero on the date instead
4893 of the space required by the C Standard. Correct for this so that
4894 shared working directories work without hassle.
4895 (Reported by David L. Martin <dlmart2@home.com>.)
4896 * entries.c (fgetentent): Ditto.
4897 * vers_ts.c (time_stamp_server, time_stamp) Ditto.
4899 2001-03-07 Larry Jones <larry.jones@sdrc.com>
4901 * sanity.sh (basica, binfiles2, head, admin): Update to match
4904 2001-03-06 Larry Jones <larry.jones@sdrc.com>
4906 * client.c (recv_bytes): Handle EOF as in recv_line().
4907 (Reported by Pavel Roskin <proski@gnu.org>.)
4909 * admin.c (admin_fileproc): Change final error message to clarify
4910 that CVS refused to modify the RCS file rather than being unable to.
4912 2001-02-28 Jim Meyering <meyering@lucent.com>
4914 * commit.c (commit_usage): Use `-F logfile' (rather than -F file') in
4915 the description of that option, to be consistent with the `-F logfile'
4916 in the Usage: line. Use spaces instead of TAB characters, and realign.
4918 2001-03-02 Derek Price <derek.price@openavenue.com>
4920 * sanity.sh (crerepos): Make failed ${CVS_RSH-rsh} attempt print the
4921 name of the command it actually used rather than 'rsh'.
4923 2001-02-27 Derek Price <derek.price@openavenue.com>
4925 * sanity.sh (modules2-ampermod-*): Added these tests to make sure the
4926 top level directory is created in an ampermodule when '-n' is passed to
4929 original bug report from
4930 Wolfgang Haefelinger <Wolfgang.Haefelinger@Dresdner-Bank.com>
4932 2001-02-27 Derek Price <derek.price@openavenue.com>
4934 * sanity.sh (version-[12]): replace ' (client/server)' with .* in these
4935 two tests so that 'make check' works with whatever client/server
4936 options the executable was compiled with.
4938 2001-02-23 Derek Price <derek.price@openavenue.com>
4940 * main.c (main): Only check a cvsroot_t's isremote member when client
4942 * server.c: Include GSSAPI headers with client support as well as
4945 2001-02-21 Larry Jones <larry.jones@sdrc.com>
4947 * modules.c, cvs.h (do_module): Add build_dirs argument and use it
4948 instead of run_module_prog. Change all callers.
4949 * tag.c (cvstag): For rtag, don't build directories.
4950 * sanity.sh (modules3): Update to match.
4952 2001-02-20 Derek Price <derek.price@openavenue.com>
4954 * client.c: Use xgssapi.h.
4957 2001-02-15 Derek Price <derek.price@openavenue.com>
4959 * Makefile.am (cvs_SOURCES): Correct error from yesterday.
4960 * Makefile.in: Regenerated.
4962 2001-02-14 Derek Price <derek.price@openavenue.com>
4964 * server.c: Include xselect.h.
4965 * update.c (do_update): Use best available sleep function.
4967 2001-02-14 Derek Price <derek.price@openavenue.com>
4969 * Makefile.am (cvs_SOURCES): Alphabetize and split to one/line.
4970 (cvs_LDADD): Alphabetize and split to one/line.
4971 * Makefile.in: Regenerated.
4973 2001-02-14 Larry Jones <larry.jones@sdrc.com>
4975 * build_src.com: Remove references to rtag.c & rtag.obj.
4977 2001-02-13 Derek Price <derek.price@openavenue.com>
4979 * main.c (date_to_tm): New function to convert an RCS date string to a
4981 (tm_to_internet): New function to convert a struct tm to a date string
4982 as specified by RFC822 and amended by RFC 1123.
4983 (date_to_internet): Use the above two functions and a struct tm
4984 intermediary for conversion.
4985 * patch.c (patch_fileproc): Answer somebody's comment and use the new
4987 * rcs.c (RCS_checkin): Use new diff_exec API.
4988 (RCS_delete_revs): Use new diff_exec API.
4989 (make_file_label): If the file name is DEVNULL, date it the Epoch for
4990 compatibility with the POSIX.2 spec and Larry Wall's patch
4992 * rcscmds.c (diff_exec): Accept new label arguments.
4993 * sanity.sh (death2): Update some diff tests to accept the new format.
4994 * update.c (patch_file): Use new diff_exec API.
4995 * diff.c (diff_fileproc): Create header labels appropriate for
4996 compatibility with the Larry Wall version of patch.
4997 (diff): Rename calls to strcat_and_allocate.
4998 (strcat_and_allocate): Rename and move...
4999 * subr.c (xrealloc_and_strcat): here.
5000 * cvs.h: Update prototypes to match.
5002 2001-02-13 Derek Price <derek.price@openavenue.com>
5004 * Makefile.am (cvs_SOURCES): Remove rtag.c.
5006 2001-02-07 Larry Jones <larry.jones@sdrc.com>
5008 * sanity.sh (directory_cmp): Return status rather than setting ISDIFF.
5009 (basic2): Rewrite using dotest.
5011 2001-02-06 Larry Jones <larry.jones@sdrc.com>
5013 * tag.c, rtag.c: Merge with tag.c being the surviving file.
5014 * Makefile.in: Update to match.
5015 * main.c (cmds): rtag() => cvstag().
5016 * server.c (serve_rtag): Ditto, and set command name.
5018 2001-02-06 Derek Price <derek.price@openavenue.com>
5019 Rex Jolliff <Rex_Jolliff@notes.ymp.gov>
5020 Shawn Smith <Shawn_Smith@notes.ymp.gov>
5022 * add.c: Replace opendir, closedir, & readdir calls with CVS_OPENDIR,
5023 CVS_CLOSEDIR, & CVS_READDIR in support of changes to handle VMS DEC C
5024 5.7 {open,read,close}dir problems. Check today's entry in the vms
5027 * find_names.c: ditto
5033 2001-02-02 Larry Jones <larry.jones@sdrc.com>
5035 * error.h: Changed include guard macro from _error_h_ to ERROR_H;
5036 names beginning with underscore are reserved.
5037 * login.c (password_entry_parseline, password_entry_operation,
5038 password_entry_operation_e, password_entry_operation_t): Removed
5039 leading underscore(s).
5040 (password_entry_parseline): Corrected error messages.
5041 (password_entry_operation): Fixed uninitialized variable (password).
5042 (login): Removed unused variable (found_password).
5044 * rtag.c (rtag_proc): Call lock_tree_for_write() before calling
5045 start_recursion. This fixes a serious problem where do_recursion
5046 was reading and caching RCS files without any locks in place and
5047 that information was subsequently being used to rewrite the file
5048 causing any intermediate changes to be lost.
5049 (rtag_filesdoneproc): Defunct.
5050 (Reported by Karl Tomlinson <k.tomlinson@auckland.ac.nz>.)
5051 * tag.c (cvstag, tag_filesdoneproc): Ditto.
5052 * lock.c (lock_tree_for_write): Add which argument, change all
5053 callers to pass W_LOCAL.
5056 2001-01-29 Derek Price <derek.price@openavenue.com>
5058 * client.c (get_cvs_port_number): change the prototype to accept a
5059 const cvsroot_t * as input and add a FIXME comment
5060 * cvs.h: new prototypes for get_cvs_port_number & normalize_cvsroot
5061 * login.c (_password_entry_operation): consolidate all the ~/.cvspass
5062 access into a single new function which reads ~/.cvspass in a backwards
5064 (logout): use the new _password_entry_operation function
5066 (get_cvs_password): ditto
5067 * root.c (normalize_cvsroot): move knowledge of default port & username
5070 2001-01-29 Larry Jones <larry.jones@sdrc.com>
5072 * subr.c (shell_escape): New function.
5073 * cvs.h: Declare it.
5074 * logmsg.c (logfile_write): Use it to avoid problems with filenames
5076 (Reported by Gerhard Ahuis <gerhard@ats.xs4all.nl>.)
5078 * server.c (outbuf_memory_error, pserver_authenticate_connection,
5079 kserver_authenticate_connection): If available, use syslog() to
5082 2001-01-25 Larry Jones <larry.jones@sdrc.com>
5084 * server.c (do_cvs_command): If there's a partial output line left
5085 over and the client doesn't support MT, go ahead and send it in an
5086 M response instead of just dropping it.
5087 (Reported by Milos Kleint <Milos.Kleint@netbeans.com>.)
5089 * update.c (update_fileproc): Handle toss_local_changes in the
5091 (Inspired by Noel L Yap <yap_noel@jpmorgan.com>.)
5092 * sanity.sh (clean): New tests for above.
5094 2001-01-23 Derek Price <derek.price@openavenue.com>
5096 * run.c (run_exec): flush, if used, stderr and stdout before exit
5097 * server.c (cvs_flusherr): flush stderr & send a stderr flush command
5098 on the protocol pipe
5099 (cvs_flushout): like above, for stdout
5100 (do_cvs_command): handle flushes properly
5101 * sanity.sh (reserved): make the commitinfo script echo errors to
5102 stderr rather than stdin
5104 2001-01-18 Larry Jones <larry.jones@sdrc.com>
5106 * log.c (option_revlist, revlist, log_usage, cvslog,
5107 log_parse_revlist, log_expand_revlist, log_version_requested): Add
5108 support for :: for exclusive ranges.
5109 * admin.c (admin_usage): Reorder -o to be parallel to log -r.
5110 * sanity.sh (log): New tests for above.
5112 2001-01-18 Derek Price <derek.price@openavenue.com>
5114 * main.c: Add '2001' to the range of copyright years listed by the
5116 * version.c.in (version): check current_parsed_root before its isremote
5117 member to avoid a core dump
5118 * sanity.sh (version): add a test for the version command
5120 * version.c: regenerated
5122 2001-01-12 Larry Jones <larry.jones@sdrc.com>
5124 * rcs.c, rcs.h (RCS_lock, RCS_unlock): Use RCS_gettag to find the
5125 correct revision so that symbolic tags work correctly. (This
5126 requires removing the "const" from the rev parameter since it's
5127 passed to RCS_gettag which might modify it.)
5128 (Reported by irina sturm <irina.sturm@st.com>.)
5130 2001-01-11 Larry Jones <larry.jones@sdrc.com>
5132 * run.c (close_on_exec): Remove check for FD_CLOEXEC. As far as I
5133 can see, it's *never* been defined, which defeats the whole point.
5134 If F_SETFD is defined, it's probably safe to use it.
5136 * server.c (do_cvs_command): Call close_on_exec on the protocol and
5137 flow control pipes in the child process so they don't get inherited
5138 by any subsidiary processes.
5139 (Reported by Tristan Gingold <tgi@netgem.com>.)
5141 * cvs.h (free_cvsroot_t): Spell correctly (was free_CVSroot_t).
5143 2001-01-10 Derek Price <derek.price@openavenue.com>
5144 Rex Jolliff <Rex_Jolliff@notes.ymp.gov>
5146 * build_src.com: VMS changes
5147 * filesubr.c: replace calls to unlink() with CVS_UNLINK() for VMS
5150 2001-01-10 Derek Price <derek.price@openavenue.com>
5152 * main.c (current_root): explicitly list this as a static global
5154 2001-01-10 Derek Price <derek.price@openavenue.com>
5156 * cvs.h (get_cvs_port_number): change name & prototype from
5158 * client.c (get_cvs_port_number): new function which returns a port
5159 number based on a cvsroot_t rather than requiring all possible sources
5161 (connect_to_pserver): use new get_cvs_port_number function
5162 (connect_to_server): ditto
5163 * login.c (get_password): use new get_cvs_port_number function
5167 2001-01-10 Derek Price <derek.price@openavenue.com>
5169 * Makefile.am ($(srcdir)/version.c): specify $(srcdir) for all subparts
5170 of the build since some systems don't allow mv's across partitions
5171 * Makefile.in: regenerated
5173 2001-01-10 Derek Price <derek.price@openavenue.com>
5175 * Makefile.am (version.c): specify $(srcdir) explicitly in target rule
5176 so version.c gets built properly for all makes.
5177 (version.o): specify $(srcdir)/version.c explicitly so dependency is
5178 found and built properly
5179 * Makefile.in: regenerated
5181 2001-01-09 Derek Price <derek.price@openavenue.com>
5183 * version.c: updated timestamp
5185 2001-01-09 Larry Jones <larry.jones@sdrc.com>
5187 * server.c (server): Change to server_temp_dir immediately after
5188 creating it so that any stray files that happen to be created go
5189 there instead of in the server's initial directory, wherever that
5191 * sanity.sh (modules5-15): Update to match.
5193 * version.c.in: Update to match Derek's change to version.c.
5195 2001-01-09 Derek Price <derek.price@openavenue.com>
5197 * cvs.h: Remove the various CVSroot_* bits and replace them with a
5198 single structure of type cvsroot_t (current_parsed_root)
5200 * root.c (parse_cvsroot): return pointer to a new cvsroot_t rather than
5201 altering global variables
5202 (local_cvsroot): return a pointer to a new cvsroot_t rather than
5203 setting globals. changed the name of this function from
5204 set_local_cvsroot to better explain new functionality
5205 (new_cvsroot_t): new initializer function
5206 (free_cvsroot_t): new function
5207 (others): use current_parsed_root rather than the old CVSroot_* globals
5209 * add.c: use current_parsed_root rather than the old CVSroot_* globals
5214 * create_adm.c: ditto
5217 * expand_path.c: ditto
5218 * find_names.c: ditto
5227 * mkmodules.c: ditto
5229 * parseinfo.c: ditto
5245 2001-01-05 Derek Price <derek.price@openavenue.com>
5247 * cvs.h (enum CVSmethod): add null_method
5248 * root.c (method_names): correlate null_method & "undefined"
5249 (parse_cvsroot): make two error cases non fatal
5250 * sanity.sh (crerepos-6b): account for new error message, re above
5252 2001-01-05 Derek Price <derek.price@openavenue.com>
5254 * src/Makefile.am (cvsbug, cvsbug_EXTRA_DIST, EXTRA_DIST): move cvsbug
5255 target to configure.in - see ../ChangeLog for more
5256 * src/cvsbug.in: Rename from cvsbug.sh
5257 * src/cvsbug.sh: Rename to cvsbug.in
5259 2001-01-04 Larry Jones <larry.jones@sdrc.com>
5261 * Makefile.am (cvsbug): Explicitly list input file ($< is only
5262 valid in inference rules).
5263 * Makefile.in: Ditto.
5265 2001-01-04 Derek Price <derek.price@openavenue.com>
5267 * sanity.sh: use getopts rather than getopt for portability reasons
5269 2001-01-03 Derek Price <derek.price@openavenue.com>
5271 * Makefile.am (remotecheck): depend on 'all'
5272 * Makefile.in: regenerated
5274 2000-12-29 Derek Price <derek.price@openavenue.com>
5276 * sanity.sh: remove explicit "$@" from last checkin and move the 'do'
5277 to the line following the 'for'. Apparently this is more portable.
5279 2000-12-29 Derek Price <derek.price@openavenue.com>
5281 * sanity.sh: make "$@" explicit in 'for' statement since Solaris 5.6's
5282 implementation of Bourne shell doesn't seem to implement this default
5285 2000-12-27 Derek Price <derek.price@openavenue.com>
5287 * sanity.sh: add a -f option for continuing from a particular test
5288 and shorten --keep to -k so we can use the getopt function.
5290 2000-12-27 Derek Price <derek.price@openavenue.com>
5292 * Makefile.am (remotecheck): Make remotecheck dependant on all
5293 * Makefile.in: regenerated
5295 2000-12-26 Derek Price <derek.price@openavenue.com>
5297 * Makefile.in: update timestamp
5298 * stamp-h2.in: ditto
5301 2000-12-26 Derek Price <derek.price@openavenue.com>
5303 * Makefile.am: new target for version.c
5304 (EXTRA_DIST): add version.c.in & version.c so builds work when
5306 * Makefile.in: Regenerated
5307 * stamp-h2.in: update timestamp
5310 2000-12-26 Derek Price <derek.price@openavenue.com>
5312 * Makefile.am (INCLUDES): add zlib
5313 * Makefile.in: Regenerated
5315 2000-12-22 Derek Price <derek.price@openavenue.com>
5317 * Makefile.am (DISTCLEANFILES): added a few files
5318 (INCLUDES): commented
5319 * Makefile.in: Regenerated
5321 2000-12-21 Derek Price <derek.price@openavenue.com>
5323 * .cvsignore: Added .deps directory and a new stamp file
5324 * Makefile.am: New file needed by Automake
5325 * Makefile.in: Regenerated
5326 * stamp-h2.in: New stamp file created by Automake
5327 * version.c.in: use configure to generate version.c
5329 2000-12-16 Derek Price <derek.price@openavenue.com>
5331 * server.c (server_update): Keep the vers structure up to date after
5332 sending a Remove or Remove-entry command to the client
5333 * update.c (update): remove call to server_updated() after
5335 (scratch_file): in server mode, call server_updated(), otherwise keep
5336 the vers structure up to date
5337 (join_file): add a trace, save the revision to Register() on a remove
5338 before calling server_scratch & server_updated
5339 * sanity.sh (join): Add test for a remove/add caused by an update
5340 to a new branch and a join in the same step.
5342 2000-12-15 Larry Jones <larry.jones@sdrc.com>
5344 * error.c (error): Add %ld and %lu.
5346 * history.c: Change hrec.idx from int to long, reformat NEXT_BAR
5347 for readability, add hrec_idx.
5348 (fill_hrec): Change initialization to be portable and always set
5349 idx so it can be used as a line number in error messages; improve
5350 parsing and error checking.
5351 (read_hrecs): Initialize hrec_idx, handle embedded NULs, warn about
5352 no newline at end of file.
5353 (select_hrec): Add basic validity checking.
5355 2000-12-07 Larry Jones <larry.jones@sdrc.com>
5357 * history.c (history): Allow multiple -m options as documented.
5359 2000-11-29 Derek Price <derek.price@openavenue.com>
5361 * root.c (parse_cvsroot): back out yesterday's redundant changes
5362 * main.c (main): fix CVSROOT trace message to look like other trace
5364 * sanity.sh (multiroot2-9): expect new trace message
5366 2000-11-28 Derek Price <derek.price@openavenue.com>
5368 * root.c (parse_cvsroot): add trace on this function
5369 * client.c (get_port_number): make trace print look like others
5371 2000-11-16 Derek Price <derek.price@openavenue.com>
5373 * filesubr.c (cvs_temp_file): back out the previous change in the
5374 interests of portability, add an assertion, and fix the header comment
5376 2000-11-16 Derek Price <derek.price@openavenue.com>
5378 * filesubr.c (cvs_temp_file): refine the exit behavior to notice if
5379 the out param was passed in NULL and, if so, avoid setting it and delete
5380 the temp file for later
5382 2000-11-16 Derek Price <derek.price@openavenue.com>
5384 * filesubr.c (cvs_temp_file): fixed a garble or two, added some
5385 additional error checking, and added a comment
5387 2000-11-15 Derek Price <derek.price@openavenue.com>
5389 * filesubr.c (cvs_temp_file): added cvs_temp_file
5390 function to use mkstemp rather than one of the other temp file
5391 generators as gcc keeps complaining I should.
5392 (cvs_temp_name): altered this function to simply wrap cvs_temp_file
5394 * cvs.h: added prototype for cvs_temp_file
5395 * commit.c (commit): use the new function instead of the old and plug
5396 an old (though related) memory leak.
5397 * import.c (import): use the new function
5398 * login.c (login): Ditto
5399 * logmsg.c (do_editor, do_verify): Ditto
5400 * patch.c (patch_fileproc): Ditto
5402 2000-11-14 Larry Jones <larry.jones@sdrc.com>
5404 * update.c, update.h (do_update): Add xdotemplate parameter.
5406 (update_dirent_proc): Use dotemplate for Create_Admin, not 1.
5407 * checkout.c (checkout_proc): Don't create CVS/Template if
5409 (Reported by Andrey Podkolzin <mdh@zenon.net>.)
5411 2000-11-08 Larry Jones <larry.jones@sdrc.com>
5413 * admin.c (admin): Use getgroups() to check for membership in
5414 CVS_ADMIN_GROUP if it exists. In any event, check the user's
5415 primary group in addition to any additional groups.
5416 (Reported by Thomas Okken <TOkken@refco.com>.)
5418 2000-11-06 Jim Meyering <meyering@lucent.com>
5420 Compile with gcc's -Wformat and fix the exposed problems.
5421 * root.c (parse_cvsroot) [! HAVE_KERBEROS]: Provide an argument
5422 for the %s error format spec.
5423 [! HAVE_GSSAPI]: Likewise.
5424 (normalize_cvsroot): Put comment delimiters around token after `#endif'.
5426 2000-11-03 Larry Jones <larry.jones@sdrc.com>
5428 * sanity.sh: Some versions of sed require a space between -e and
5431 2000-10-27 Larry Jones <larry.jones@sdrc.com>
5433 * checkout.c (checkout): Don't check for a safe location if just
5434 cat'ing the module database.
5435 (Reported by Ilya Martynov <m_ilya@agava.com>.)
5436 Have -s set cat as well as status; it simplifies the code.
5438 2000-10-26 Larry Jones <larry.jones@sdrc.com>
5440 * sanity.sh (join-admin-2): Check output from all commands instead
5441 of (mostly) discarding. (Some of the tests used to produce stray
5442 output in remote mode.)
5444 * sanity.sh (dotest_line_by_line): Handle empty lines in pattern
5445 (expr doesn't distingish between successfully matching nothing
5446 and failing to match anything).
5448 * sanity.sh (dotest_internal): Rearrange and use elif to simplify.
5450 2000-10-24 Jim Meyering <meyering@lucent.com>
5452 Fix a bug, introduced with my fix of 2000-07-10, whereby -kk would
5453 sometimes be ignored for some of the files involved in an update.
5455 * update.c (join_file): Restore the original value of `options'
5456 right after calling checkout_file.
5457 * sanity.sh (join-admin-2): New test for this.
5459 2000-10-23 Derek Price <derek.price@openavenue.com>
5460 James Youngman <jay@gnu.org>
5462 * sanity.sh: it's /gnu/bin, not /gun/bin. Thanks go to James Youngman
5463 <jay@gnu.org> for the bug report and patch.
5465 2000-10-20 Jim Kingdon <http://sourceforge.net/users/kingdon/>
5467 * server.c (switch_to_user): Set CVS_USER. Patch from Sudish
5468 Joseph and popularized by dozens (e.g. mozilla.org, also others).
5470 2000-10-20 Derek Price <derek.price@openavenue.com>
5471 KOIE Hidetaka <hide@koie.org>
5473 * root.c (normalize_cvsroot): plug a memory leak. Thanks to
5474 KOIE Hidetaka <hide@koie.org>
5476 2000-10-18 Derek Price <derek.price@openavenue.com>
5478 * client.c (connect_to_pserver): added a close brace the lack of which
5479 was preventing compilation when gssapi was enabled. Removed a
5480 redundant check for HAVE_KERBEROS.
5482 2000-10-18 Derek Price <derek.price@openavenue.com>
5484 * root.c (normalize_cvsroot): removed references to free_port_s and the
5485 now useless call to free now that port_s is on the stack. Thanks to
5488 2000-10-18 Derek Price <derek.price@openavenue.com>
5490 * root.c (normalize_cvsroot): remove calls to snprintf for
5491 compatibility with M$ Windoze.
5493 2000-10-18 Derek Price <derek.price@openavenue.com>
5495 * sanity.sh (crerepos-6a, crerepos-6a-r): fix a "?" in a regex & pipe
5496 the output of a test to /dev/null since we don't know what error
5497 messages specific rsh implementations will output.
5499 2000-10-17 Derek Price <derek.price@openavenue.com>
5501 * cvs.h: added CVSroot_password variable. Provided prototypes for
5502 get_port_number & normalize_cvsroot.
5503 * client.c (get_port_number): Fixed an ANSI prototype I had included
5504 for get_port_number.
5505 * login.c (login, logout): Removed two checks for a non-null
5506 CVSroot_username since parse_cvsroot now supplies a default in pserver
5507 mode. allow for a password in CVSROOT
5508 (get_cvs_passsword): return CVSroot_password if it was supplied
5510 * root.c (parse_cvsroot): Changed CVSROOT spec from
5511 :method:user@host/port:/cvsroot to
5512 :method:[[user][:password]@]host[:[port]]/cvsroot
5513 Removed the xstrdup function since we'd rather have the error checking
5514 from the version in subr.c anyhow. Moved some error messages which
5515 looked like they would print the wrong error message after a failed
5516 connect_to_gserver call.
5517 (normalize_cvsroot): return a normalized CVSROOT for use in the
5519 * sanity.sh (crerepos-6): fix a test which was expecting an old error
5522 * client.c (connect_to_pserver): Moved some error messages which looked like they
5523 would print the wrong error message after a failed connect_to_gserver
5526 * login.c (login): Paranoiacly zero a password in memory.
5528 2000-10-12 Derek Price <derek.price@openavenue.com>
5530 * client.c (auth_server_port_number -> get_port_number, start_pserver,
5531 start_tcp_server): use a port specified in CVSROOT instead of the
5532 default port. Failing that, use the CVS_CLIENT_PORT environment
5534 * cvs.h: Added global CVSroot_port & renamed auth_server_port_number.
5535 * root.c (parse_cvsroot): Parse the new CVSROOT format properly.
5536 Incidentally reformated some error messages for uniformity and
5538 * sanity.sh (crerepos): fix two tests which were now expecting the
5539 wrong error message.
5541 2000-10-11 Larry Jones <larry.jones@sdrc.com>
5543 * server.c (pserver_authenticate_connection): Fix stupid mistake
5546 2000-10-11 Derek Price <derek.price@openavenue.com>
5548 * main.c (main): Dispose old CVSroot when parsing a '-d' option if
5549 free_CVSroot is set.
5550 * root.c (parse_cvsroot): remove references to 'cvsroot_parsed', a
5551 static boolean I expect hasn't been used since CVS learned to handle
5554 2000-10-10 Larry Jones <larry.jones@sdrc.com>
5556 * server.c (print_error): Make up a message if strerror fails.
5558 * server.c (pserver_authenticate_connection): Give a real error
5559 message for an invalid repository.
5561 2000-10-06 Derek Price <derek.price@openavenue.com>
5563 * add.c (add): Made quiet mode affect some warning messages as seemed
5564 appropriate. Specifically, some of the messages which a user might
5565 want to ignore so they don't have to be quite so specific on the
5566 command line: files added twice, files already in the repository and
5567 check out properly (i.e. but picked up by 'cvs add *'), & files which
5568 are readded in place of a dead revision or onto a branch. '-q' will
5569 not change the non-zero exit code for the cases where at least one
5570 passed in file name was already in the Entries file. There seems to
5571 be a precedent in remove.c.
5572 * remove.c (cvsremove): switched the "use cvs ci to make these changes
5573 permanent message" to only print w/o '-Q' to match the new behavior of
5574 add. This seems appropriate as '-Q' is defined to restrict messages
5576 * sanity.sh (adderrmsg): Added some tests for the above behavior.
5578 2000-10-05 Larry Jones <larry.jones@sdrc.com>
5580 * client.c (call_in_directory): Create CVSADM directory if it doesn't
5581 exist in the directory. This makes client/server work more like
5582 standalone when checking out into an existing (non-CVS) directory.
5583 * sanity.sh (dirs2, conflicts3, toplevel): Update to match.
5585 2000-10-03 Larry Jones <larry.jones@sdrc.com>
5587 * filesubr.c (get_homedir): Ignore $HOME when running in server mode.
5589 2000-10-02 Larry Jones <larry.jones@sdrc.com>
5591 * cvs.h: Define (and use) T_PATCH as a valid file classification
5592 even when SERVER_SUPPORT isn't defined -- it simplifies the code.
5593 * classify.c (Classify_File): Ditto.
5594 * commit.c (check_fileproc): Ditto.
5595 * status.c (status_fileproc): Ditto.
5596 * update.c (update_fileproc): Ditto.
5597 * tag.c (check_fileproc): Accept T_PATCH in addition to T_CHECKOUT.
5598 * sanity.sh (tagc-10): Update to match.
5600 2000-09-29 Larry Jones <larry.jones@sdrc.com>
5602 * client.c (get_responses_and_close): Reset server_fd to -1 after
5604 (Reported by Joerg Thoennes <Joerg.Thoennes@data-sciences.de>.)
5606 2000-09-27 Larry Jones <larry.jones@sdrc.com>
5608 * commit.c (commit): Don't sleep before returning in server mode,
5609 just let the client do it.
5610 * update.c (do_update): Ditto.
5612 * sanity.sh (find_tool): Correct method of checking for GNU tools.
5614 * checkout.c (checkout_proc): Match up user directories with
5615 repository directories instead of using Emptydir.
5616 * sanity.sh (cvsadm, emptydir): Update to match.
5618 2000-09-19 Larry Jones <larry.jones@sdrc.com>
5620 * version.c: Push version number to 1.11.0.1.
5622 * version.c: Version 1.11.
5624 2000-09-07 Larry Jones <larry.jones@sdrc.com>
5626 * Makefile.in: Use @bindir@, @libdir@, @infodir@, and @mandir@
5629 2000-08-23 Larry Jones <larry.jones@sdrc.com>
5631 * mkmodules.c (init): Create an empty val-tags file if it doesn't
5632 already exist to avoid problems with users not having sufficient
5633 permissions to create it later.
5635 2000-09-06 Jim Kingdon <jkingdon@dhcp-net200-89.su.valinux.com>
5637 * main.c (lookup_command_attribute): Add "release" to commands
5638 which can be done by a read-only user.
5640 2000-08-23 Larry Jones <larry.jones@sdrc.com>
5642 * repos.c (Name_Repository): Use pathname_levels to detect attempts
5643 to get above the repository instead of checking for leading ..
5644 which isn't reliable.
5645 * sanity.sh (multiroot3-12 to multiroot3-15): New tests for above.
5647 2000-08-21 Larry Jones <larry.jones@sdrc.com>
5649 * rcs.c (expand_keywords): Handle the unusual case of log == NULL.
5650 (Reported by Craig Metz <cmetz@inner.net>.)
5652 2000-08-01 Larry Jones <larry.jones@sdrc.com>
5654 * subr.c (pathname_levels): Fix bug that miscounts adjacent
5656 (Patch submitted by Tanaka Akira <akr@m17n.org>.)
5658 * loginc.c (login): If available, use getpassphrase instead of
5659 getpass to support long passwords on Solaris.
5661 2000-07-28 Larry Jones <larry.jones@sdrc.com>
5663 * server.c (server_noop): Avoid do_cvs_command() overhead.
5664 (requests): Make noop RQ_ROOTLESS.
5666 2000-07-27 Noel Cragg <noel@red-bean.com>
5668 * root.c (parse_cvsroot): change fork method to behave like other
5669 remote methods -- let the server check that the repository
5670 directory is an absolute pathname.
5672 2000-07-27 Larry Jones <larry.jones@sdrc.com>
5674 * lock.c (set_lock): Include actual lock directory in error message.
5675 * sanity.sh (multiroot3-10): Change to match.
5677 * sanity.sh (client-3): Allow for a potential "broken pipe".
5679 2000-07-26 Larry Jones <larry.jones@sdrc.com>
5681 * commit.c (commit_filesdoneproc): Flush stdout before running script.
5682 * modules.c (do_module): Ditto.
5683 * update.c (update_dirleave_proc): Ditto.
5684 * server.c (do_cvs_command): Give input from the protocol pipe
5685 precedence over input from stdout/stderr. There's no particularly
5686 good justification for this other than helping to avoid out-of-order
5687 messages in sanity.sh.
5689 * admin.c (admin_usage): Add the supported options.
5691 * sanity.sh (info): Try to avoid out-of-order messages.
5693 * sanity.sh (info): Fix problems when running twice in a row.
5695 2000-07-17 Larry Jones <larry.jones@sdrc.com>
5697 * sanity.sh (modules5-7, cvsadm-1e, emptydir-2): Allow for a nil
5698 commit (can happen if the test is run twice in a row).
5700 2000-07-19 Pavel Roskin <proski@gnu.org>
5701 and Larry Jones <larry.jones@sdrc.com>
5703 * mkmodules.c (config_contents): Add a commented out example for
5704 LockDir. Don't suggest PreservePermissions unless it's enabled.
5706 2000-07-17 Larry Jones <larry.jones@sdrc.com>
5708 * login.c (get_cvs_password): Handle malformed ~/.cvspass more
5711 2000-07-12 Larry Jones <larry.jones@sdrc.com>
5713 * sanity.sh (modules5): New tests for module programs.
5715 2000-07-11 Larry Jones <larry.jones@sdrc.com>
5717 * filesubr.c (copy_file, xcmp): Handle systems (like Plan 9) that
5718 don't support mknod() and/or st_rdev.
5719 * import.c (add_rcs_file): Ditto.
5720 * rcs.c (RCS_checkout, RCS_checkin): Ditto.
5721 * update.c (special_file_mismatch): Ditto.
5723 2000-07-10 Larry Jones <larry.jones@sdrc.com>
5725 * zlib.c (gunzip_and_write): Fix type clashes.
5727 * main.c (main): Remove unused variables.
5729 2000-07-10 Jim Meyering <meyering@lucent.com>
5731 When a command like `cvs update -kk -jT1 -jT2' creates a new file
5732 (because it had the T2 tag, but not T1), the subsequent commit of
5733 that just-added file would effectively set the admin `-kk' option
5734 for that file in the repository.
5736 * update.c (join_file): Rename global-shadowing local `options'
5738 Set file-scoped global `options' to NULL just before
5740 * sanity.sh (join-admin): New test for this.
5742 2000-07-08 Larry Jones <larry.jones@sdrc.com>
5744 * version.c, cvs.h (version): New function.
5745 * main.c (cmds[]): Add version command to invoke it.
5746 (main): Also use it in -v.
5747 * server.c (serve_version): New function.
5748 (requests[]): Add version command to invoke it.
5750 2000-07-06 Karl Fogel <kfogel@red-bean.com>
5752 * sanity.sh (pserver-14): remove this test for portability
5753 reasons (it was only recently added for the 2000-07-04 change).
5755 2000-07-06 Larry Jones <larry.jones@sdrc.com>
5757 sanity.sh (modules-148): Don't test for specific revisions.
5759 * main.c (main): Catch SIGABRT to try to clean up after assertion
5760 failures. Don't bother SIG_register'ing Lock_Cleanup because
5761 main_cleanup calls it indirectly anyway.
5762 * patch.c (patch): Catch SIGABRT.
5763 * rcs.c (rcs_internal_lockfile): Ditto.
5764 * server.c (server): Ditto.
5766 * fileattr.c (fileattr_write): Don't delete the unrecog_head list
5768 (fileattr_free): Delete it when freeing!
5770 2000-07-05 Larry Jones <larry.jones@sdrc.com>
5772 * admin.c (admin): Handle -t in client so reading from files works
5773 correctly in client/server mode.
5774 * sanity.sh (log2): Update to match.
5776 2000-07-04 Karl Fogel <kfogel@red-bean.com>
5778 * server.c (pserver_authenticate_connection): use new
5779 getline_safe() during authentication phase, to avoid a
5780 denial-of-service attack in which client sends arbitrary
5781 amounts of data with no newlines.
5782 (Reported by <jpmg@eng.cam.ac.uk>.)
5784 * sanity.sh: new test pserver-14 for above.
5786 * myndbm.c: #include getline.h.
5787 (mydbm_load_file): pass new GETLINE_NO_LIMIT flag to getstr().
5789 2000-07-03 Larry Jones <larry.jones@sdrc.com>
5791 * sanity.sh (modules): Rewrite using dotest. Add "modules-"
5792 prefix to test names.
5794 2000-06-28 Larry Jones <larry.jones@sdrc.com>
5796 * error.c (error_exit): Call rcs_cleanup () to release any rcs locks.
5797 * rcs.c, rcs.h (rcs_cleanup): Make public, close file before trying
5798 to remove (some systems won't remove open files).
5799 (RCS_putdtree): Don't worry about cleaning up before call error
5800 since it now does it for us.
5801 (rcs_internal_lockfile, rcs_internal_unlockfile): Keep track of
5802 lock file fd for rcs_cleanup ().
5804 * client.c (handle_set_checkin_prog, handle_set_update_prog):
5805 Just ignore the request when exporting.
5807 2000-06-27 Larry Jones <larry.jones@sdrc.com>
5809 * create_adm.c, cvs.h (Create_Admin): Add dotemplate argument.
5811 * checkout.c (checkout_proc): Don't create CVS/Template if
5814 2000-06-26 Pavel Roskin <proski@gnu.org>
5815 and Larry Jones <larry.jones@sdrc.com>
5817 * server.c (switch_to_user): Only set CVS_Username if
5818 AUTH_SERVER_SUPPORT is defined.
5820 2000-06-23 Larry Jones <larry.jones@sdrc.com>
5822 * client.c (send_dirent_proc): Don't allocate ignlist if you're
5823 going to skip the directory (plugs memory leak).
5824 (send_dirleave_proc): New function.
5825 (send_files): Use it (plugs memory leak).
5826 * root.c (root_allow_free): Plug memory leaks.
5827 * server.c (serve_directory, serve_notify, check_password,
5828 pserver_authenticate_connection): Ditto.
5829 * update.c (update): Ditto.
5831 This completes the memory leak shoot-out -- the Purify'ed version
5832 of CVS now runs the entire test suite, both local and remote (except
5833 for remote crerepos, which causes Purify to choke) with *no* memory
5836 * server.c (pserver_authenticate_connection): Don't free null pointer.
5838 2000-06-21 Larry Jones <larry.jones@sdrc.com>
5840 * client.c (update_entries, get_responses_and_close): Plug memory leaks.
5841 * commit.c (find_fileproc, commit): Ditto.
5842 * import.c (import): Ditto.
5843 * log.c (cvslog): Ditto.
5844 * recurse.c (start_recursion): Ditto.
5845 * remove.c (cvsremove): Ditto.
5846 * server.c (fd_buffer_initialize, server_notify, do_cvs_command): Ditto.
5847 (fd_buffer_shutdown): New function.
5849 2000-06-20 Larry Jones <larry.jones@sdrc.com>
5851 * root.c (parse_cvsroot): Put the terminating NUL byte into the
5852 string *before* copying it, not after. :-(
5854 2000-06-19 Larry Jones <larry.jones@sdrc.com>
5856 * main.c (main): Plug memory leaks.
5857 * root.c (parse_cvsroot, set_local_cvsroot): Ditto.
5858 * server.c (serve_root): Ditto.
5860 2000-06-16 Larry Jones <larry.jones@sdrc.com>
5862 * fileattr.c (fileattr_read): Plug memory leak.
5863 * rcs.c (RCS_whatbranch): Ditto.
5864 * update.c (update_dirleave_proc): Ditto.
5866 * ignore.c (ign_dir_add): Duplicate string so caller can free.
5868 * modules.c (do_module): Don't write into dbm's memory!
5870 2000-06-15 Larry Jones <larry.jones@sdrc.com>
5872 * checkout.c (checkout_proc): Fix non-ANSI code in call to
5873 findslash(), minor cleanups.
5875 2000-06-14 Larry Jones <larry.jones@sdrc.com>
5877 * tag.c (val_direntproc): Return R_PROCESS instead of 0.
5879 * client.c (update_entries): Fix type clash calling gunzip_and_write().
5880 * server.c (receive_file): Fix type clash calling gunzip_and_write().
5881 (server_updated): Fix type clash calling buf_output().
5882 * error.c (error): Make buf char instead of unsigned char to avoid
5885 * modules.c (do_module): Change callback_proc to pass argc by
5886 value instead of by reference: callback procs shouldn't be
5887 messing with the callers argc/argv, it makes correct memory
5888 management impossible. Plug memory leaks.
5889 * cvs.h: Change to match.
5890 * checkout.c (checkout_proc): Ditto; use a local argv array instead
5891 of messing with caller's.
5892 * modules.c (callback_proc): Ditto.
5893 * patch.c (patch_proc): Ditto; use a local argv array instead
5894 of messing with caller's.
5895 * rtag.c (rtag_proc): Ditto; use a local argv array instead
5896 of messing with caller's.
5897 * server.c (expand_proc): Ditto.
5898 * subr.c (line2argv): Change initial argv_allocated back to 1.
5900 * checkout.c (findslash): Fix non-ANSI code.
5902 * sanity.sh (modes3): Fix test names.
5904 2000-06-13 Larry Jones <larry.jones@sdrc.com>
5906 * add.c (add): Plug memory leaks.
5907 * admin.c (admin_fileproc): Ditto.
5908 * checkout.c (build_dirs_and_chdir): Ditto.
5909 * edit.c (editors_fileproc): Ditto.
5910 * log.c (cvslog, log_parse_revlist, log_parse_date): Ditto.
5911 * rcs.c (RCS_addaccess): Ditto.
5912 * tag.c (check_fileproc): Ditto.
5913 * vers_ts.c (Version_TS): Ditto.
5914 * watch.c (watchers_fileproc): Ditto.
5916 2000-06-12 Larry Jones <larry.jones@sdrc.com>
5918 * rcs.c (rcsbuf_valword): Set rcsbuf->vlen to keep rcsbuf_valcopy()
5919 from allocating more memory than needed for @ strings. Don't declare
5920 unless PRESERVE_PERMISSIONS_SUPPORT (since not defined).
5922 * rcs.c (RCS_abandon): New function to abandon changes.
5923 * rcs.h: Declare it.
5924 * admin.c (admin_fileproc): Use it instead of RCS_reparsercsfile.
5926 * commit.c (commit_fileproc): Fix memory leaks.
5927 * patch.c (patch_fileproc): Ditto.
5928 * rcs.c (RCS_nodeisbranch, RCS_copydeltas): Ditto.
5929 * tag.c (tag_fileproc): Ditto.
5930 * update.c (update): Ditto.
5932 2000-06-09 Larry Jones <larry.jones@sdrc.com>
5934 * rcs.c (RCS_reparsercsfile, RCS_fully_parse, getdelta,
5935 RCS_getdeltatext): Handle newphrases with composite values.
5936 (rcsbuf_getkey): Don't remove @s in composite values -- it makes
5937 it impossible to parse the value! Set special flag to indicate
5939 (rcsbuf_valcopy, rcsbuf_valpolish_internal): Handle composite values.
5940 (putrcsfield): Write composite values.
5941 (RCS_checkin): Set node types in other_delta list.
5942 * hash.h: Add RCSCMPFLD.
5943 * hash.c (nodetypestring): Ditto.
5945 * rcs.c (getdelta): Never allocate space for value, just return
5946 pointer into rcsbuf (fixes memory leaks). Use rcsbuf_getkey to
5947 read a key and value and then parse the value if needed rather
5948 than trying to read it in bits and pieces with rcsbuf_getid,
5949 rcsbuf_getstring, and rcsbuf_getword.
5950 (RCS_reparsercsfile): Change callers to compensate.
5951 (rcsbuf_valcmp, rcsbuf_valword): New functions.
5952 (rcsbuf_getid, rcsbuf_getstring, rcsbuf_getword): Deleted.
5953 * sanity.sh (rcs3-1): Now get slightly different error message.
5955 2000-06-08 Larry Jones <larry.jones@sdrc.com>
5957 * main.c (usg): Update CVS home page URL.
5959 * main.c (main): Provide an actual error message for an unknown
5960 command in addition to the usage message.
5962 2000-06-07 Larry Jones <larry.jones@sdrc.com>
5964 * server.c (serve_root, dirswitch, serve_repository,
5965 serve_static_directory, serve_sticky, receive_partial_file,
5966 receive_file, serve_modified, server_write_entries, serve_notify,
5967 serve_checkin_prog, serve_update_prog, server): Don't set
5968 pending_error before calling alloc_pending, it makes it fail;
5969 use alloc_pending instead of malloc when reasonable; be sure to
5970 save errno before calling functions that might change it.
5971 (Patch submitted by Dietmar Petras <dietmar.petras@elsa.de>.)
5973 2000-06-03 Larry Jones <larry.jones@sdrc.com>
5975 * commit.c (checkaddfile): Plug memory leak.
5976 * rcs.c (RCS_checkin): Plug memory leaks.
5977 * server.c (do_cvs_command): Plug file descriptor leaks.
5978 * tag.c (check_fileproc): Plug memory leak.
5980 2000-05-26 Larry Jones <larry.jones@sdrc.com>
5982 * recurse.c (unroll_files_proc): Plug memory leak.
5984 * recurse.c (addfile): Fix nonportable pointer cast.
5986 * rcs.c (rcsbuf_getstring, rcsbuf_getword, getdelta): Plug memory
5989 2000-05-25 Larry Jones <larry.jones@sdrc.com>
5991 * checkout.c (checkout, build_one_dir, checkout_proc): Move m_type
5992 to file scope and use it instead of continually doing strcmp on
5994 (build_one_dir, checkout_proc): Don't allow export if CVSADM
5995 directory already exists.
5997 2000-05-23 Larry Jones <larry.jones@sdrc.com>
5999 * rcs.c (RCS_checkin, RCS_cmp_file): Plug memory leaks. (Patch
6000 submitted by Chris G. Demetriou <cgd@sibyte.com>.)
6002 2000-05-20 Ian Lance Taylor <ian@zembu.com>
6004 * client.c (connect_to_gserver): Handle server error messages
6007 2000-05-19 Larry Jones <larry.jones@sdrc.com>
6009 * server.c (requests): Make Global_option RQ_ROOTLESS so it can be
6012 2000-05-18 Larry Jones <larry.jones@sdrc.com>
6014 * client.c (start_server): Don't do encryption, authentication,
6015 compression, or case insensitivity when doing init because init
6016 is ROOTLESS and they're not.
6018 * client.c (connect_to_pserver): Include repository and username in
6019 authorization failed message -- if a directory tree crosses multiple
6020 repositories, it can be quite difficult for the user to figure out
6021 which one is the problem.
6023 2000-05-17 Larry Jones <larry.jones@sdrc.com>
6025 * main.c (main): Use full set of options when looking for -f to
6026 avoid misparsing options that take values (previously, -sVAR=foo
6027 was incorrectly parsed as though it were -s -V -A -R -= -f -o -o
6028 because it didn't know that -s takes a value).
6029 * sanity.sh (info-6b): New test for above.
6031 * sanity.sh (conflicts-status): Fix tests so they work remotely, too.
6033 2000-05-17 Jim Meyering <meyering@lucent.com>
6035 * sanity.sh (TESTDIR): Fix braino in last change:
6036 cd to /tmp before invoking pwd.
6038 * sanity.sh: Set TESTDIR so that `make check' passes even when /tmp
6040 (join-36): Use $TESTDIR rather than hard-coding `/tmp/cvs-sanity'.
6041 (conflicts-132): Remove unnecessary `rm aa'.
6043 2000-05-16 Jim Kingdon <kingdon@redhat.com>
6045 * cvs.h, checkout.c (safe_location): Make extern.
6046 * import.c (import): Call it rather than reimplementing
6047 (incompletely) the same check.
6049 2000-05-16 Larry Jones <larry.jones@sdrc.com>
6051 * rcs.h, subr.c (file_has_markers): Check for any of the three
6052 conflict marker lines, not just one.
6053 * sanity.sh (conflicts-status): New tests for above.
6054 * sanity.sh: Revise to avoid tripping the above check when merging
6055 changes into sanity.sh itself.
6057 2000-05-15 Larry Jones <larry.jones@sdrc.com>
6059 * update.c (join_file): When registering the result of the merge,
6060 make sure that the version number is valid (vers->vn_rcs may be
6061 null if the file doesn't exist on the branch yet). (Patch submitted
6062 by Robert de Vries <rhdv@rhdv.cistron.nl>.)
6063 * update.c (join_file): Correct diagnostics (previous change was not
6064 correct -- the file *does* exist in the specified revision, it just
6065 doesn't exist in the sandbox).
6066 * sanity.sh (import-113, join): New tests and changes for above.
6068 2000-05-04 Larry Jones <larry.jones@sdrc.com>
6070 * sanity.sh: Look for a useful id program. Since we're getting
6071 the real username for some tests anyway, use it for all the
6072 tests instead of a generic regular expression that may or may
6073 not match the actual username.
6075 2000-05-04 Larry Jones <larry.jones@sdrc.com>
6077 * server.c: More error messages.
6079 2000-05-02 Donald Sharp <sharpd@cisco.com>
6080 and Larry Jones <larry.jones@sdrc.com>
6082 * history.c (report_hrecs): Added code to print out year instead of
6084 * sanity.sh (basic2-64, history): Update to match.
6086 2000-04-19 Larry Jones <larry.jones@sdrc.com>
6088 * server.c (dirswitch): Set pending_error_text in addition to
6089 pending_error to aid in problem determination.
6091 2000-03-23 Larry Jones <larry.jones@sdrc.com>
6093 * mkmodules.c (mkmodules): Return without doing anything if noexec
6094 is set to avoid trashing existing files.
6096 2000-03-23 Larry Jones <larry.jones@sdrc.com>
6098 * main.c: Alphabetize cmds[] and cmd_usage[] and add server
6099 commands to cmd_usage[].
6101 2000-03-21 Larry Jones <larry.jones@sdrc.com>
6103 * sanity.sh (client-1): May get "Broken pipe" message from the
6104 "server" in addition to the expected output.
6106 2000-03-17 Larry Jones <larry.jones@sdrc.com>
6108 * server.c (switch_to_user): Set CVS_Username if it hasn't already
6109 been set elsewhere. (Patch submitted by Gordon Matzigkeit
6112 2000-03-13 Larry Jones <larry.jones@sdrc.com>
6114 * parseinfo.c: Add extern to logHistory declaration. (Reported by
6115 <John.Tytgat@aaug.net>.)
6116 (parse_config): Reformat logHistory code.
6118 2000-03-10 Larry Jones <larry.jones@sdrc.com>
6120 * add.c (add): Don't try to set cvsroot_len until after checking
6121 for help only -- CVSroot_directory isn't set in that case.
6123 2000-03-03 Larry Jones <larry.jones@sdrc.com>
6125 * mkmodules.c (init): Use mkdir_if_needed to create CVSROOT/Emptydir
6126 so we don't fail if run multiple times. (Reported by KOIE Hidetaka
6128 * sanity.sh (1a): New test for above.
6130 2000-03-02 Larry Jones <larry.jones@sdrc.com>
6132 * main.c: Use identical #if's in the command table and the code
6133 for pserver and kserver to prevent "peculiar" configurations from
6134 having really perverse behavior because the command table entries
6135 are present but the related code isn't.
6137 2000-03-01 Larry Jones <larry.jones@sdrc.com>
6139 * import.c (import): Don't allow importing the repository.
6140 * sanity.sh (errmsg2-20, errmsg2-21): New tests for above.
6142 2000-03-01 Larry Jones <larry.jones@sdrc.com>
6144 * main.c (main): Update year in copyright message.
6146 2000-03-01 Larry Jones <larry.jones@sdrc.com>
6148 * logmsg.c (do_editor): Correct previous change.
6150 2000-02-29 Larry Jones <larry.jones@sdrc.com>
6152 * logmsg.c (do_editor): When reading temp file, check that message
6153 buffer is large enough to hold the next line and expand if needed.
6155 2000-02-28 Larry Jones <larry.jones@sdrc.com>
6157 * commit.c (commit): Use get_file() to read log file correctly
6158 and in text mode rather than binary mode.
6160 * subr.c (get_file): Ignore bufsize if buf is NULL. Include
6161 terminating NUL byte when estimating required buffer size.
6163 2000-02-28 Larry Jones <larry.jones@sdrc.com>
6165 * sanity.sh (find_tool): New function to replace duplicated code.
6167 2000-02-25 Larry Jones <larry.jones@sdrc.com>
6169 * import.c (add_rcs_file): Don't abort just because lstat fails.
6171 2000-02-16 Jim Meyering <meyering@lucent.com>
6173 Avoid race condition whereby a catchable signal could
6174 end up corrupting the repository.
6175 * commit.c (checkaddfile): Put a critical section around the code
6176 that handles the first commit on the trunk of a file that's already
6177 been committed on a branch.
6178 * cvs.h (Sig_inCrSect): Declare new function.
6180 2000-02-21 Karl Fogel <kfogel@red-bean.com>
6182 * main.c (main): still check for repository, but not history file
6183 (correction to 2000-02-18 change -- that's what I get for
6184 believing the comment rather than the code).
6186 2000-02-21 K.J. Paradise <kj@sourcegear.com>
6188 * history.c mkmodules.c parseinfo.c: control which actions
6189 get logged to the cvs history file via CVSROOT/config file
6190 and LogHistory keyword. (John P Cavanaugh <cavanaug@sr.hp.com>)
6192 2000-02-18 Karl Fogel <kfogel@red-bean.com>
6194 * history.c (history_write): don't die if history file not
6195 writable, just warn (unless `really_quiet') and skip out.
6197 * main.c (main): don't bother checking if history file is
6200 * server.c (serve_root): same.
6202 2000-02-17 Larry Jones <larry.jones@sdrc.com>
6204 * sanity.sh (perms symlinks symlinks2 hardlinks): Don't run by
6205 default since PreservePermissions code is now disabled.
6207 2000-02-17 Larry Jones <larry.jones@sdrc.com>
6209 * sanity.sh (import-113): Revise to match Jim Meyering's fix.
6211 2000-02-16 Larry Jones <larry.jones@sdrc.com>
6213 * add.c (add): Don't allow adding files or directories to Emptydir.
6214 (Patch submitted by Chris Cameron <chris.cameron@ot.co.nz>.)
6215 * sanity.sh (emptydir): Revise (emptydir-7 and emptydir-8) for this.
6217 2000-02-16 Jim Meyering <meyering@lucent.com>
6219 * update.c (join_file): Correct typo in diagnostic:
6220 change `file %s is present...' to `file %s is not present...'.
6222 2000-02-10 Larry Jones <larry.jones@sdrc.com>
6224 * parseinfo.c (Parse_Info): Treat matching lines with bad expansions
6225 as errors rather than just ignoring.
6227 2000-02-10 Larry Jones <larry.jones@sdrc.com>
6229 * edit.c (edit): Check for invalid characters in hostname and CurDir.
6230 (Reported by "Andrew S. Townley" <atownley@informix.com>.)
6231 * sanity.sh (devcom2): New tests for above.
6233 2000-02-10 Larry Jones <larry.jones@sdrc.com>
6235 * cvs.h: Always #include "server.h" to prevent compile errors when
6236 neither CLIENT_SUPPORT nor SERVER_SUPPORT is defined.
6237 (Reported by "Crow, Ian" <ian.crow@linklaters.com>.)
6238 * log.c (send_one, send_arg_list): Only define when CLIENT_SUPPORT
6239 is defined to prevent link errors.
6241 * server.c (server): Always create a new temporary directory, don't
6242 try to reuse an existing one since we might not have correct
6243 permissions. Also, include directory name in error messages.
6245 2000-01-29 Jim Kingdon <http://developer.redhat.com/>
6247 * ignore.c (ignore_files): Correctly set errno to 0 when we go
6248 back to the top of the loop. Fixes spurious errors like "cvs
6249 update: error reading current directory: No such file or
6252 2000-01-26 Larry Jones <larry.jones@sdrc.com>
6254 * run.c (run_exec): Conditionalize K.J.'s change so that it only
6255 applies when SETXID_SUPPORT is defined since some platforms don't
6258 2000-01-26 Larry Jones <larry.jones@sdrc.com>
6260 * sanity.sh: Make TESTDIR earlier then use it to check for versions
6261 of expr that don't work right with long expressions.
6263 * sanity.sh (dotest_line_by_line): Have wc read from stdin so it
6264 doesn't output the file name and confuse expr. Make the output a
6265 bit less verbose and easier to read.
6267 2000-01-24 K.J. Paradise <kj@sourcegear.com>
6269 * run.c :> prevents a user from creating a privileged shell from the
6270 text editor when the SETXID_SUPPORT option is selected. This came from
6271 Bob Colle <bcolle@ilx.com>, and is his completely.
6273 2000-01-22 Jim Kingdon <http://developer.redhat.com/>
6275 * sanity.sh (emptydir): Add a case in which one might hope for a
6276 non-Emptydir result, but which result?
6278 2000-01-18 Larry Jones <larry.jones@sdrc.com>
6280 * main.c (main): Allow -z0 to disable gzip compression.
6282 2000-01-17 Larry Jones <larry.jones@sdrc.com> for
6283 K.J. Paradise (kj@sourcegear.com)
6285 * version.c: Push version number to 1.10.8.1.
6287 * version.c: Version 1.10.8.
6289 2000-01-17 Larry Jones <larry.jones@sdrc.com>
6291 * mkmodules.c (init): Create CVSROOT/Emptydir to avoid problems
6292 with users not having sufficient permissions to create it later.
6294 2000-01-04 Larry Jones <larry.jones@sdrc.com>
6296 * client.c (get_responses_and_close): Simplify time-stamp race
6298 * commit.c (commit): Ditto.
6299 * update.c (do_update): Ditto.
6300 (Prompted by patch submitted by Pavel Roskin
6301 <pavel_roskin@geocities.com>.)
6303 * hardlink.c: sizeof (char) is 1, by definition.
6307 2000-01-03 Karl Fogel <kfogel@red-bean.com>
6309 * filesubr.c, subr.c (backup_file): moved this function from
6310 filesubr.c to subr.c, at JimK's suggestion.
6312 2000-01-03 Jim Kingdon <http://developer.redhat.com/>
6314 * sanity.sh (clean): Test the contents of the .#cleanme.txt.1.1
6315 file, not just its existence.
6317 2000-01-03 Karl Fogel <kfogel@red-bean.com>
6319 * cvs.h, filesubr.c (backup_file): use `const' for suffix too;
6320 correct suffix length calculation and appending behavior; discard
6321 unnecessary `void' cast. Thanks to Jim Meyering for noticing.
6323 2000-01-03 Larry Jones <larry.jones@sdrc.com>
6325 * sanity.sh (clean): Fix up expected output.
6327 2000-01-02 John P Cavanaugh <cavanaug@sr.hp.com>
6328 and Karl Fogel <kfogel@red-bean.com>
6330 New -C option to update: overwrites local changes with clean
6331 copies from the repository. (This is an unreversion of the
6332 1999-12-10 change, further modified to work remotely.)
6334 * client.h (BACKUP_MODIFIED_FILES): new #define.
6336 * client.c (struct send_data): new element `backup_modified'.
6337 (send_files): set above element if BACKUP_MODIFIED_FILES flag is
6340 * filesubr.c (backup_file): new function.
6342 * cvs.h: prototype for new function `backup_file'.
6344 * update.c (toss_local_changes): new file-scoped global.
6345 (update): set toss_local_changes if -C flag seen. If
6346 client_active, send "-C" to server, and set SEND_NO_CONTENTS and
6347 BACKUP_MODIFIED_FILES flags before calling send_files().
6349 (update_fileproc): if file is modified and toss_local_changes is
6350 set, then back the file up and then check out a fresh copy from
6351 the repository. Also, fixed indentation and formatting for a
6352 particularly bad stretch of code near (but unrelated to) these
6355 * sanity.sh: new test `clean', for update -C option.
6357 1999-12-29 Jim Kingdon <http://developer.redhat.com/>
6359 * history.c (read_hrecs): st_blksize is unsigned long, not int.
6360 This isn't just cosmetic - getting it wrong will cause coredumps
6361 and such on 64 bit machines.
6363 * import.c (import_descend), ignore.c (ignore_files): Placate gcc
6364 -Wall by parenthesizing foo || (bar && baz).
6366 1999-12-24 Larry Jones <larry.jones@sdrc.com>
6368 * release.c (release): Use fputs to echo lines from update instead
6369 of printf to avoid problems with lines containing "%". (Reported
6370 by Jean-Luc Simard <Jean-Luc.Simard@matrox.com>.)
6372 * history.c (read_hrecs): Allocate a single 2-block buffer instead
6373 of allocating and freeing a buffer for each block.
6374 (fill_hrec): Remove redundant code.
6375 (select_hrec): Plug memory leak.
6377 1999-12-22 Larry Jones <larry.jones@sdrc.com>
6379 * history.c (history): For "modified" or "checkout", sort on
6380 file if user specified -l, even if user also specified a date-
6382 * sanity.sh (history): Update to match; add new tests.
6384 1999-12-15 Pavel Roskin <pavel_roskin@geocities.com>
6385 and Larry Jones <larry.jones@sdrc.com>
6387 * lock.c (lock_name): fixed assertion failure for the
6388 top-level CVS directory when LockDir is used
6389 * sanity.sh (lockfiles-9): new test for this case
6391 1999-12-11 Karl Fogel <kfogel@red-bean.com>
6393 * Revert previous change -- it doesn't work remotely yet.
6395 1999-12-10 John P Cavanaugh <cavanaug@sr.hp.com>
6396 and Karl Fogel <kfogel@red-bean.com>
6398 * update.c: new -C option to update, overwrites local changes with
6399 clean copies from the repository.
6400 Also, fixed indentation and formatting for a particularly bad
6401 stretch of code near these changes in update_fileproc().
6403 * sanity.sh: test new update -C option.
6405 1999-12-10 Larry Jones <larry.jones@sdrc.com>
6407 * commit.c (remove_file): Call history_write with update_dir NULL
6408 like Checkin() does for add and modify.
6409 * sanity.sh (basic2-64): Update to match, add "R" records to expected
6412 1999-12-09 K.J. Paradise (kj@sourcegear.com)
6414 * history.c, commit.c, sanity.sh: found (I think) final
6415 cause of seg fault in history command. Also, added the "R"
6416 history functionality. Fixed basic2-64 so it looks correct for
6419 1999-11-30 K.J. Paradise (kj@sourcegear.com)
6421 * history.c: fixed seg fault caused by 11-03 changes.
6422 off by one in block memory allocations.
6424 1999-11-29 Karl Fogel <kfogel@red-bean.com>
6426 * login.c (logout): free `tmp_name' when done.
6429 1999-11-29 Larry Jones <larry.jones@sdrc.com>
6431 * cvs.h, error.c, import.c: Rename fperror to avoid name clash
6432 on LynxOS. (Reported by Markus Braun <MarkusBraun@gmx.de>.)
6434 1999-11-23 Larry Jones <larry.jones@sdrc.com>
6436 * checkout.c (checkout_proc): Split declaration and initialization
6437 of rp to placate neurotic compilers that gripe about jumping past
6438 an initialization, even when the variable is not subsequently used.
6440 1999-11-19 Larry Jones <larry.jones@sdrc.com>
6442 * server.c (switch_to_user): Correct setgid error messages.
6444 1999-11-19 Karl Fogel <kfogel@red-bean.com>
6446 * edit.c (unedit_usage, unedit): new struct, use it. Now "cvs
6447 unedit" prints an accurate usage message (formerly it printed the
6448 message for "cvs edit", even though the two commands do not have
6451 1999-11-19 Larry Jones <larry.jones@sdrc.com>
6453 * history.c: Move -e documentation from Flags to Reports.
6454 (history): Add -e to list of report types in error message.
6456 * history.c (history): Process file arguments before client/server
6457 processing so they get sent to the server.
6458 * sanity.sh (history): New tests for above. (Also remove comments
6459 about variable spacing -- history output is in variable-width
6460 columns with exactly one space between.)
6462 1999-11-19 Larry Jones <larry.jones@sdrc.com>
6464 * sanity.sh: Reestablish check for running as root (using ``id -u''
6465 instead of ``whoami'').
6467 * sanity.sh(dotest, dotest_lit, dotest_fail, dotest_status,
6468 dotest_sort): Eval the command so quoting and pipes work right.
6469 (spacefiles, dirs, rcslib, modules, unedit-without-baserev,
6470 ignore, rcs, rcs2, history, tagdate, pserver, server, server2)
6471 Simplify various tests based on above.
6473 1999-11-19 Karl Fogel <kfogel@red-bean.com>
6475 * mkmodules.c (init): make history file world-writeable after
6476 creating it, since it needs to be writeable for virtually any
6479 1999-11-10 Jim Kingdon <http://developer.redhat.com/>
6481 * admin.c: Revert change to add -H command option. The help
6482 invocation is "cvs -H admin" not "cvs admin -H" (see cvs.texinfo,
6483 basicb-21 in sanity.sh; fix to cvs.1)
6485 1999-11-08 Jim Kingdon <http://developer.redhat.com/>
6487 * log.c (cvslog): If client_active, send options to the server
6488 based on our parsed options rather than trying to send the exact
6489 strings specified (using canonical forms, like RFC822/1123
6490 dates, in the protocol is just cleaner).
6491 (send_one, send_arg_list): New functions, helpers for above.
6492 * sanity.sh (logopt-6a): New test, for this fix.
6494 1999-11-09 K.J. Paradise <kj@sourcegear.com>
6496 * admin.c: made the -H option do what it is documented to
6499 1999-11-08 Tom Tromey <tromey@cygnus.com>
6501 * client.c (connect_to_gserver): Print more error text if gssapi
6502 initialization fails. From Assar Westerlund <assar@sics.se>.
6504 1999-11-06 Larry Jones <larry.jones@sdrc.com>
6506 *sanity.sh(rcs3-5): Remote output can be out-of-order, so need a
6507 more general pattern to match the assertion failure.
6509 1999-11-05 K.J. Paradise (kj@sourcegear.com)
6511 * history.c: Added a trap to verify that if a
6512 read(file, buffer,blocksize) returns less than blocksize,
6513 that we really are at the end of the file. I can't easily
6514 come up with a test case where this code gets touched, so
6515 it may cause problems. All sanity tests still pass though.
6517 1999-11-05 Jim Kingdon <http://developer.redhat.com/>
6519 * sanity.sh (logopt): New test, for Larry's fix.
6520 * sanity.sh (log-18a, rcs-15 to rcs-19): New tests, to test -d
6521 and -r more thoroughly.
6523 1999-11-05 Larry Jones <larry.jones@sdrc.com>
6525 * log.c (cvslog): Fix -s and -d with spaces on client side.
6526 (log_usage): Revert Karl's change once again.
6527 sanity.sh(rcs3-5): No longer get different results from local
6530 1999-11-04 Karl Fogel <kfogel@red-bean.com>
6532 * log.c (log_usage): Revert Jim Kingdon's reversion of my change
6533 of 1999-11-03. Allowing a space between option and argument
6534 results in lossage; here is a reproduction recipe: run this from
6535 the top of a remote copy of the cvs source tree
6537 cvs log -d '>1999-03-01' > log-out.with-space
6539 and then run this (note there's no space after -d now):
6541 cvs log -d'>1999-03-01' > log-out.no-space
6543 The resulting files differ; furthermore, a glance at the output of
6544 cvs shows that the first command failed to recurse into
6545 subdirectories. Until this misbehavior can be fixed in the source
6546 code, the documentation should reflect the true state of affairs:
6547 if one simply omits the space, everything works fine.
6549 1999-11-04 Jim Kingdon <http://developer.redhat.com/>
6551 * log.c (log_usage): Revert Karl's change regarding -d and
6552 -s. A space is allowed (see sanity.sh for example).
6554 1999-11-03 K.J. Paradise (kj@sourcegear.com>
6556 * history.c: cleaned up my prior change a bit, per Larry Jones'
6557 comments, and John O'Conner's additional comments about bits of
6558 non MS-Visual C++ compliancy of my code.
6560 1999-11-04 Larry Jones <larry.jones@sdrc.com>
6562 * sanity.sh: Check that tr that correctly handles NULs; if not, try
6563 to find a version that does; if none can be found, warn user.
6564 Also fix warnings for defective expr.
6566 1999-11-04 Karl Fogel <kfogel@red-bean.com>
6568 Changes for empty/random passwords in anon pserver access:
6570 * server.c (check_repository_password): if password empty, grant
6571 access no matter what password is received; this is so anon CVS no
6572 longer requires a password but remains backwards-compatible with
6573 all those clients out there.
6575 * client.c (connect_to_pserver): proceed with login even if
6576 password not found in .cvspass file -- just use empty string as
6577 password. And if such a login fails, print a descriptive error.
6579 * login.c (get_cvs_password): don't complain if file or password
6580 not found. That condition is no longer a showstopper, now that
6581 empty passwords are permissible.
6582 Cleaned up conditional chaining a bit, too.
6584 * sanity.sh (pserver-9, pserver-10, pserver-11, pserver-12,
6585 pserver-13): new tests, about empty-password pserver access.
6587 1999-11-03 K.J. Paradise (kj@sourcegear.com>
6589 * history.c: modify parsing routines to parse the history
6590 file a block at a time, rather than all at once. This allows
6591 people with large history files and small amount of memory
6592 to still get some functionality out of the history file.
6594 1999-11-03 Karl Fogel <kfogel@red-bean.com>
6596 * log.c (log_usage): correct usage message for -d and -s options.
6597 Because the space between the option letter and its argument has
6598 been eliminated, I capitalized the argument portion to distinguish
6599 it from the option letter. This makes it slightly inconsistent
6600 with other such usage summaries, but at least it is now both
6601 correct and readable.
6603 1999-10-22 Larry Jones <larry.jones@sdrc.com>
6605 * sanity.sh (dotest_sort): Old versions of tr don't understand \t
6606 so use a literal tab instead.
6608 1999-10-21 Larry Jones <larry.jones@sdrc.com>
6610 * sanity.sh (dotest_sort): Convert any tabs in the output into spaces
6611 before sorting to avoid POSIX.2 sort weirdness.
6612 (import-106, importb-2): Change expected output per above.
6614 1999-10-18 K.J. Paradise <kj@sourcegear.com>
6616 Bug: users 'stan' and 'cartman' both have full read/write access
6617 to the cvs repository. 'cartman' does a 'cvs admin -l foo.c'.
6618 'stan' then does a 'cvs admin -u foo.c'. The lock wouldn't be
6619 removed, and no warning/error would be given. This is now fixed.
6620 * rcs.c:(c.6157) remove caller/user check on the multiple lock
6621 detection routines. Sanity.sh runs with no errors after this fix.
6623 1999-10-14 Larry Jones <larry.jones@sdrc.com>
6625 Make "cvs admin -e" (with no list of users) work:
6626 * admin.c (admin): Remove error message.
6627 (admin_fileproc): If no args for -e, call RCS_delaccess with NULL user.
6628 * rcs.c (RCS_delaccess): Interpret NULL user as request to delete
6630 * sanity.sh (admin-19a-*): Test.
6632 1999-09-29 Larry Jones <larry.jones@sdrc.com>
6634 * entries.c (Subdirs_Known): Use entfilename when opening CVSADM_ENTLOG
6635 like everywhere else. Although this isn't strictly necessary (since
6636 we immediately close it again), it keeps the code consistent and fixes
6637 a bug where an open error reported the wrong file name.
6639 1999-09-16 Larry Jones <larry.jones@sdrc.com>
6641 * log.c (log_parse_revlist): Handle peculiar revision specs like
6642 "-r.", "-r:", and "-r," correctly. (Thanks to Pavel Roskin
6643 <pavel_roskin@geocities.com> for submitting a patch, this fix is
6644 somewhat different.)
6645 * sanity.sh (log): New tests for above.
6647 1999-09-15 Larry Jones <larry.jones@sdrc.com>
6649 * sanity.sh (basica-8b1): New test to check fix for bad diff options
6650 causing cvs to crash.
6652 1999-09-02 Larry Jones <larry.jones@sdrc.com>
6654 * modules.c (do_module): Handle case where module definition has
6655 options and special options but no directory; fix potential problems
6656 running off beginning of string while stripping trailing blanks.
6657 * sanity.sh (modules2): New tests for above.
6659 1999-08-26 Larry Jones <larry.jones@sdrc.com>
6661 * lock.c (lock_name): Remove side-effects from assert() expression
6662 since they won't occur if NDEBUG is defined (not that that's a good
6663 thing to do). (Reported by KOIE Hidetaka <hide@koie.org>.)
6665 1999-08-25 Larry Jones <larry.jones@sdrc.com>
6667 * sanity.sh: Use "${AWK}" instead of "awk" to make it easier for
6668 people to use nawk/gawk/etc.; use an explicit "-print" with find
6669 since some older version don't assume it; rename tests to avoid
6670 duplicate importc-8. (Changes along these lines suggested by
6671 Chris Cameron <chris.cameron@ot.co.nz>.)
6673 1999-08-24 Larry Jones <larry.jones@sdrc.com>
6675 * commit.c (check_fileproc): Don't crash when a file has no
6676 repository, just treat it as unknown. (Reported by Stefaan
6677 Diericx <stefaan.diericx@argenta.be>.)
6678 * sanity.sh (errmsg2): New tests, for this fix.
6680 1999-08-18 Larry Jones <larry.jones@sdrc.com>
6682 * update.c (special_file_mismatch): Initialize *_hardlinks to
6683 avoid trying to free garbage later on. (Reported by Jan
6684 Scheffczyk <herta@Xterminator.StudFB.UniBw-Muenchen.de>.)
6686 1999-08-17 Larry Jones <larry.jones@sdrc.com>
6688 * sanity.sh (basicc-11): Older versions of sh don't understand
6689 ``if ! test...''. (Patch submitted by David J N Begley
6690 <david@avarice.nepean.uws.edu.au>.)
6692 1999-08-17 Larry Jones <larry.jones@sdrc.com>
6694 * client.c, hardlink.c, hash.c, hash.h, main.c, recurse.c: Change
6695 enum constant UNKNOWN to avoid conflicts on HPUX 11.0. (Reported
6696 by Laurent Duperval <laurent.duperval@cgi.ca>.)
6698 1999-08-16 Larry Jones <larry.jones@sdrc.com>
6700 client.c: Eliminate redundant #if. (Patch submitted by Assar
6701 Westerlund <assar@sics.se>.)
6703 1999-07-30 Larry Jones <larry.jones@sdrc.com>
6705 * rcs.c (RCS_checkin): Terminate cleanly if RCS_addbranch fails
6706 rather than blithely continuing on and crashing.
6707 * sanity.sh (basica): New tests, for this fix.
6709 1999-07-29 Larry Jones <larry.jones@sdrc.com>
6711 * import.c (add_rcs_file): change "cannot lstat" message to include
6712 userfile (the actual file causing the problem) instead of user
6713 (which may or may not be the same).
6715 1999-07-29 Eric Sink <eric@sourcegear.com>
6717 * version.c: Push version number to 1.10.7.1.
6719 * version.c: Version 1.10.7.
6721 1999-07-28 Eric Sink <eric@sourcegear.com>
6723 * sanity.sh: before running basicc-11, we need to see if
6724 the cwd has been deleted (by basicc-8). If so, we
6725 recreate it to allow basicc-11 to proceed. This may be
6726 something that only happens under the Linux 2.2 kernel.
6728 1999-07-18 Karl Fogel <kfogel@floss.red-bean.com>
6730 * edit.c (notify_do): chop newline, if any, from the value
6731 obtained from CVSROOT/users. Otherwise it just gets passed along
6732 in the argument to the notification program (usually mail), which
6733 will misinterpret it as signifying the end of the command.
6735 1999-07-19 Larry Jones <larry.jones@sdrc.com>
6737 * rcs.c (RCS_delete_revs): In the WIN32 kludge, be sure that the result
6738 of RCS_getexpand is not NULL before trying to use what it points to.
6739 (Patch submitted by Timothy L. Taylor <ttaylor@mitre.org>.)
6741 1999-07-16 Tom Tromey <tromey@cygnus.com>
6743 * admin.c (admin): Allow `-k' options to be used unrestricted.
6745 1999-06-23 Jim Kingdon <http://www.cyclic.com>
6747 * sanity.sh (symlinks2): New test, for symlinks in working
6748 directory without PreservePermissions. This test (modulo a few
6749 details not relevant to testing whether we are following symlinks)
6750 worked remote as of now, or either remote or local for CVS 1.9.
6751 * subr.c (get_file): Revert 1998-02-15 change to special-case
6752 symlinks. This makes the above test work local too.
6753 * rcs.c (RCS_checkin): Move the logic to handle special-case
6754 symlinks (and other files other than regular files) here, and make
6755 it only happen if PreservePermissions is on.
6757 1999-06-18 Larry Jones <larry.jones@sdrc.com>
6759 * sanity.sh (devcom3-9a): Be less specific about the expected
6760 error message (BSD/OS 4.0 has a bug that can cause exec* to fail
6761 with EACCES instead of ENOENT).
6763 1999-06-08 Larry Jones <larry.jones@sdrc.com>
6765 * sanity.sh (diff-4, dirs2-10, tagf-13, importc-7, conflicts2-142b8):
6766 Use ${PROG} instead of "cvs".
6768 1999-06-05 Jim Kingdon <http://www.cyclic.com>
6770 * recurse.c (do_recursion, do_dir_proc): Make the SERVER_ACTIVE
6771 #ifdef be only around the check for server_active. Modulo a few
6772 cosmetic tweaks, same as a patch submitted by Johannes Stezenbach
6775 1999-06-01 Jim Kingdon <http://www.cyclic.com>
6777 * sanity.sh: Add comment about rcs2-7 failures on certain days.
6779 Make "cvs status -v" on a removed file work:
6780 * status.c (cvsstatus): Reindent the client code.
6781 (status_fileproc): Don't need a CVS/Entries listing to show the
6783 * sanity.sh (rmadd2): New test rmadd2-16 tests the existing
6784 behavior with "cvs log"; new test rmadd2-17 tests the new behavior
6787 * sanity.sh (basicc): To match no output in dotest, put the empty
6788 regexp first. Remove tests which check that first-dir exists,
6789 since that isn't true in the case where the OS let us delete it.
6790 (dotest_internal): Fix so that things work with two regexps, with
6793 1999-05-28 Larry Jones <larry.jones@sdrc.com>
6795 * sanity.sh (server-4): Replace bogus directory with real one since
6796 the server now checks it.
6798 1999-05-27 Jim Kingdon <http://www.cyclic.com>
6800 * sanity.sh (spacefiles): Clean up -c, top, and -b at end.
6801 (spacefiles, files): Fix bad references to CVSROOT_DIRNAME.
6803 Fix two problems pointed out by Olaf Kirch of swb.de/caldera.de:
6804 * server.c (outside_root): New function, contains expanded version
6805 of code from serve_directory.
6806 (serve_directory): Call outside_root.
6807 (outside_dir): New function
6808 (serve_modified, serve_is_modified, serve_notify,
6809 serve_questionable, serve_unchanged): Call outside_dir.
6810 * sanity.sh (server2): New tests, for these fixes.
6812 1999-05-26 Jim Kingdon <http://www.cyclic.com>
6814 * cvs.h, subr.c (xmalloc): Return void* not char*, like xrealloc
6815 has done for some time.
6816 * modules.c (do_module): If we find the module as a directory/file
6817 (rather than in the modules file), skip a bunch of processing
6818 which was unnecessary and also broken in most of the cases
6819 now tested for by the spacefiles sanity.sh test.
6820 * sanity.sh (spacefiles): New test, for specifying filenames
6821 (containing spaces, or starting with '-', or starting with '/') to
6824 1999-05-25 Jim Kingdon <http://www.cyclic.com>
6826 * client.c (update_entries): Make the old DONT_USE_PATCH code the
6827 only code. This means that if people are still on CVS 1.9
6828 servers, then CVS will fall back to transferring entire files.
6829 This is better than looking for an external "patch" program which
6830 causes no end of troubles (especially on Windows, but someone just
6831 posted to info-cvs about a problem with the Solaris patch). (This
6832 change was run by devel-cvs and feedback was positive).
6834 * subr.c (xmalloc, xrealloc): The new error.c does not support
6835 %lu; use sprintf instead.
6837 1999-05-25 Derek Price
6838 <http://www-personal.engin.umich.edu/~oberon/resume.html>
6840 * sanity.sh (server): Escaped a few more newlines in
6841 another awk script. Solaris awk still don't like 'em.
6843 1999-05-25 Derek Price
6844 <http://www-personal.engin.umich.edu/~oberon/resume.html>
6847 * log.c: Remove comment which said "you can delete [this line]"
6848 and which stuck around for over 3 years.
6849 * sanity.sh (errmsg2 & tagdate): Added tests to prove the
6850 current functionality with respect to combining -r and -D.
6852 1999-05-20 Larry Jones <larry.jones@sdrc.com>
6854 * server.c (pserver_authenticate_connection): Previous changes
6855 broke verify_and_exit (reported by Robert Fitzsimons, thanks).
6856 * sanity.sh (pserver): New tests pserver-7 and pserver-8 for this.
6858 1999-05-18 Derek Price
6859 <http://www-personal.engin.umich.edu/~oberon/resume.html>
6861 * sanity.sh (keyword2): Escaped a newline in an awk script.
6862 Apparently Solaris awk don't like 'em.
6864 1999-05-18 Jim Kingdon <http://www.cyclic.com>
6866 * sanity.sh (basicc): Allow the behavior whereby unlink(".")
6867 succeeds. Reported by Jeremy Buhler and Pavel Roskin.
6869 1999-05-17 Steve Cameron of Compaq
6871 * sanity.sh: Modified to no longer use "test -e" for existence
6872 test as it has turned out to be not portable enough. Instead use
6873 "test -f", "test -d", etc.
6874 [SCO Unixware 7 apparently doesn't always support it -kingdon]
6876 1999-05-17 Jim Kingdon <http://www.cyclic.com>
6878 * version.c: Push version number to 1.10.6.1.
6880 * version.c: Version 1.10.6.
6882 1999-05-16 Jim Kingdon <http://www.cyclic.com>
6884 * update.c (patch_file): When we are passing vn_rcs to
6885 RCS_checkout, pass vn_tag as well.
6886 * sanity.sh (keyword): In test keyword-22, test for the fixed
6887 behavior rather than the buggy behavior. Adjust keyword-23. Add
6888 test keyword-24, to see whether keyword-23 really worked.
6890 1999-05-12 Larry Jones <larry.jones@sdrc.com>
6892 * sanity.sh (pserver-4, pserver-5): Bogus error messages from
6893 non-root initgroups on some 4.4BSD derived systems now show up
6894 in different places in the output.
6896 1999-05-12 Jim Kingdon <http://www.cyclic.com>
6898 * import.c (import): Don't allow the user to supply a repository
6899 directory which takes us out of the cvsroot.
6900 * sanity.sh (importc): New tests importc-10 to importc-12, for this.
6902 1999-05-11 Larry Jones <larry.jones@sdrc.com>
6904 * server.c (serve_notify): Allocate enough memory to hold the
6905 "misformed Notify request" message in pending_error_text.
6907 1999-05-11 Jim Kingdon <http://www.cyclic.com>
6909 * server.c (switch_to_user): Ignore EPERM from initgroups. Fixes
6910 pserver-4 in testsuite.
6911 (pserver_authenticate_connection): Only print "I LOVE YOU" after
6912 switch_to_user has come back successfully.
6914 * server.c (pserver_authenticate_connection): Call error_exit
6915 rather than reinventing the wheel ourselves.
6916 (switch_to_user): Check for errors from setuid, setgid, and
6917 initgroups. Fix the #ifdef's (the previous code would skip the
6918 setuid call if SETXID_SUPPORT).
6920 1999-05-10 Jim Kingdon <http://www.cyclic.com>
6922 * server.c (serve_notify), edit.c (notify_do): Check for
6923 and reject characters which will get confused with delimiters.
6924 * sanity.sh (server): New tests server-7 through server-15 test
6925 for this and for other notify behaviors.
6927 * rcs.c (RCS_tag2rev): Also look for a physical branch with
6929 * sanity.sh (tagf): Adjust tagf-12 and following tests to test for
6930 the fixed behavior rather than the broken behavior.
6932 1999-05-07 Jim Kingdon <http://www.cyclic.com>
6934 * server.c (server_notify): Also set last_node to NULL.
6935 * sanity.sh (server): New tests server-6 and server-7, for this.
6937 1999-05-05 Jim Kingdon <http://www.cyclic.com>
6939 * rcs.c (rcs_internal_lockfile): Remove unused variable lockfile.
6941 * add.c (add): Look for directories with the same name in a
6942 different case where appropriate (analogous to fopen_case).
6943 In client code, add comment about how this doesn't do quite
6946 1999-05-03 Jim Meyering <meyering@ascend.com>
6948 Remove rcs-style ,file, lock files upon signal.
6949 * rcs.c (rcs_lockfile): New file-scoped global.
6950 (rcs_cleanup): New function (similar to patch_cleanup).
6951 (rcs_internal_lockfile): Register rcs_cleanup the first time this
6952 function is called. Rename uses of local `lockfile' to refer to new
6953 global, `rcs_lockfile'. Don't free the lock file name string, now
6955 (rcs_internal_unlockfile): Rename `lockfile', as above, and carefully
6956 free and NULL-out the global, rcs_lockfile.
6958 1999-04-30 Jim Kingdon <http://www.cyclic.com>
6960 * rcs.c (annotate_fileproc): Don't cast NULL in passing it to
6961 RCS_deltas. Because there is a prototype in scope the cast is
6962 unnecessary (per HACKING's ANSI C or SunOS4 rule), and in fact it
6963 was causing failures on UNICOS because it cast to size_t instead
6964 of size_t*. (Thanks to Dean Kopesky for reporting this).
6966 1999-04-29 Jim Kingdon <http://www.cyclic.com>
6968 * sanity.sh: If invoked without any arguments, print a usage
6969 message (thanks to Pavel Roskin for a report/patch).
6971 * run.c (piped_child): Make the error messages more verbose.
6972 (close_on_exec): Reindent.
6973 * sanity.sh (devcom3): Several errors are possible in devcom3-9a.
6974 Adjust for change to piped_child error message.
6976 1999-04-28 Jim Kingdon <http://www.cyclic.com>
6978 * sanity.sh (devcom3): Add some tests of the CVS/Notify file and
6979 disconnected "cvs edit".
6981 * main.c (opt_usage): Remove -b.
6983 1999-04-20 Derek Price
6984 <http://www-personal.engin.umich.edu/~oberon/resume.html>
6986 * rcs.c (RCS_delete_revs): RCS_delete_revs uses an
6987 RCS_checkout call to get a new copy of a revision to be
6988 used internally after old revisions were deleted and it was
6989 performing keyword substitutions. This munged all the
6990 the revisions of the file on the branch containing the
6991 deleted revisions and its sub-branches, as the original they
6992 were being patched from was incorrect. Corrected this by
6993 passing in "-ko" as an option to RCS_checkout.
6994 * sanity.sh (keywordlog): modified this test to verify the
6995 correct behavior of 'cvs admin -o'.
6996 [Fixed use of \$ in keywordlog test; added code in RCS_delete_revs
6997 to abort on binary file on Windows -kingdon]
6999 1999-04-21 Derek Price
7000 <http://www-personal.engin.umich.edu/~oberon/resume.html>
7003 * tag.c (tag_check_valid): A bug was causing CVS to spin
7004 indefinately when -j:<date> was specified. CVS now returns
7006 * sanity.sh: Added a test (tagdate-12) to test this.
7008 1999-04-19 Jim Kingdon <http://www.cyclic.com>
7010 * sanity.sh (backuprecover): Clean up the repository at the end.
7012 1999-04-18 Derek Price
7013 <http://www-personal.engin.umich.edu/~oberon/resume.html>
7015 * sanity.sh added a test (backuprecover) to test cvs behavior
7016 with a repository that is out of date relative to the
7017 developer's workspaces.
7018 [Fix --keep code; move test to "Repository Storage" section since
7019 it doesn't really exercise the diff/diff3 library. -kingdon]
7021 1999-04-13 Derek Price
7022 <http://www-personal.engin.umich.edu/~oberon/resume.html>
7024 * sanity.sh (diff): Tests to verify correct operation of
7025 the --ifdef parameter to cvs diff.
7026 [indentation fixed -kingdon].
7028 1999-04-13 Derek Price
7029 <http://www-personal.engin.umich.edu/~oberon/resume.html>
7030 for Noah Friedman <friedman@splode.com>
7032 * diff.c (diff): Put "--ifdef=" in opts string, not "-D"; the
7033 latter is confused by pserver for a date spec.
7035 1999-04-14 Jim Kingdon <http://www.cyclic.com>
7037 * fileattr.h: Adjust comments to reflect the official version of
7038 the fileattr format now being in cvs.texinfo.
7040 1999-04-05 Jim Kingdon
7042 * sanity.sh (watch5): Remove nonstandard --keep code. Don't pass
7043 -f to rm when cleaning up (that tends to mask bugs). Add watch5
7044 to list of tests at start. Add comment explaining why we consider
7045 the behavior we test for the right one. Rename a few tests which
7046 had been erroneously named watch6* instead of watch5*.
7047 * client.c (update_entries): Add comment with brief discussion of
7048 whether there is a better way.
7050 1999-04-05 Derek Price
7051 <http://www-personal.engin.umich.edu/~oberon/resume.html>
7053 * client.c (update_entries): Only call mark_up_to_date
7054 (which deletes the CVS/Base/<filename> file for watched
7055 and edited files) on commit.
7056 * sanity.sh: Make sure the CVS/Base/<filename> file for
7057 a watched and edited file is not removed on a status or
7058 update of a touched/unmodfied file.
7060 1999-03-30 Larry Jones <larry.jones@sdrc.com>
7062 * client.c (get_responses_and_close), commit.c (commit),
7063 update.c (do_update): If the sleep(1) call returns prematurely
7064 (due to the way wakeup is scheduled or receiving a signal), do
7067 1999-03-26 Jim Kingdon <http://www.cyclic.com>
7069 * server.c (server): Add comment about Gzip-stream vs. RQ_ROOTLESS.
7071 * sanity.sh (modules3-11b): Adjust exact text of error message to
7072 reflect 1999-03-24 change to dirswitch.
7074 1999-03-25 Jim Kingdon <http://www.cyclic.com>
7076 * admin.c (admin): Make argument to -e optional, to match the
7078 * sanity.sh (admin-19a-2): Test for this.
7080 * server.c (serve_root): Update comment about checking for missing
7083 1999-03-24 Jim Kingdon <http://www.cyclic.com>
7085 * server.c (dirswitch): Also check dir here, similar to
7086 what server_pathname_check does for other cases.
7087 * sanity.sh (files): Adjust files-14 to test for this.
7089 1999-03-24 Derek Price
7090 <http://www-personal.engin.umich.edu/~oberon/resume.html>
7093 * sanity.sh: added a test (files-13) to test .. indirection
7094 in a path and another (files-14) to make sure we still fail
7095 out when the '..' indirection takes us into the $CVSROOT
7096 directory or beyond.
7098 1999-03-24 Larry Jones <larry.jones@sdrc.com>
7100 * rcs.c: Change enum constants ADD and DELETE to something less
7101 likely to run into conflicts.
7103 1999-03-21 Jim Kingdon <http://www.cyclic.com>
7105 * sanity.sh (tagf): New test, tests for moving a branch tag to a
7106 non-branch tag and trying to recover.
7108 1999-03-12 Jim Kingdon <http://www.cyclic.com>
7110 * sanity.sh (branches): Tweak test branches-5 to test the case in
7111 which one modifies a file and then branches it.
7113 1999-03-09 John Bley of duke.edu
7115 * mkmodules.c (filelist): Missed a NULL in this struct (should
7116 have 3 members, only had 2).
7118 1999-03-07 Jim Kingdon <http://www.cyclic.com>
7120 * sanity.sh (Index): Rename new test from rm_CVS/Root to rmroot
7121 (we don't have a formal rule about funky punctuation in test names
7122 but both underscore and a slash is too funky for me :-)).
7123 Reindent a few tests which were off.
7125 * root.c: Remove the sentence which had the improper English;
7126 there isn't really a need for that sentence and it isn't
7127 particularly accurate any more.
7129 1999-02-27 Derek Price
7130 <http://www-personal.engin.umich.edu/~oberon/resume.html>
7132 * sanity.sh: Added rm_CVS/Root test to test that CVS uses
7133 $CVSROOT rather than dumping core when running remotely and
7134 the admin file CVS/Root is deleted from the workspace.
7136 Also, altered a few 'cvs commit' 's in regular expressions to
7137 fit the .${PROG} commit. portability syntax.
7139 * recurse.c: Stopped CVS from dumping core in the case tested
7142 * root.c: Fixed somebody's improper english.
7144 1999-02-25 Larry Jones <larry.jones@sdrc.com>
7146 * sanity.sh (keyword2-12): Use ${QUESTION} instead of ? in the
7149 1999-02-24 Jim Kingdon <http://www.cyclic.com>
7151 * sanity.sh (keyword2): Restore the original \\\$ instead of $.
7152 The latter ends up working due to various kludgy semantics in the
7153 shell and regular expressions, but the former is cleaner.
7155 * sanity.sh (keyword2): Protect keywords against accidental
7156 expansion in sanity.sh itself (most occurrences had this, but not
7159 1999-02-23 Derek Price <http://www.cyclic.com>
7162 * sanity.sh (keyword2): New test, tests for merging with -kk.
7164 1999-02-22 Jim Kingdon <http://www.cyclic.com>
7166 * version.c: Ease version number to 1.10.5.1.
7168 * version.c: Version 1.10.5.
7170 1999-02-18 Jim Kingdon <http://www.cyclic.com>
7172 * sanity.sh (files): New test, for a relatively obscure spurious
7173 "Up-to-date check failed" in client/server.
7175 * main.c (lookup_command_attribute): Don't check for "history"
7178 1999-02-17 Jim Kingdon <http://www.cyclic.com>
7179 and Hallvard B Furuseth
7181 * root.c (parse_cvsroot): Rearrange ifdefs to squelch possible
7182 warnings about statement not reached.
7184 1999-02-16 Jim Kingdon <http://www.cyclic.com>
7186 * recurse.c (start_recursion): If we are skipping the current
7187 directory (due to it being from the wrong repository), also adjust
7188 the arguments we send to the server accordingly (like we already
7189 do for the case in which there is no CVS directory).
7190 * sanity.sh (multiroot4): New test, for this. All these tests had
7191 passed locally, but remote multiroot4-12 tests for this fix.
7192 (multiroot): Adjust multiroot-diff-1, multiroot-update-2,
7193 multiroot-tag-1, multiroot-status-1, multiroot-update-3, and
7194 multiroot-log-1 to reflect the cosmetic change this produces (one
7195 less "Diffing ." message).
7196 (multiroot2): multiroot2-8 likewise.
7198 1999-02-10 Jim Kingdon <http://www.cyclic.com>
7200 * tag.c (cvstag): Don't pass SEND_NO_CONTENTS if -c specified.
7201 * sanity.sh (tagc): New test, for various tag -c behaviors.
7202 Test tagc-6 tests for this fix.
7204 1999-02-09 Jim Kingdon <http://www.cyclic.com>
7206 * error.c (error): Rewrite to no longer use vasprintf (see
7207 ../lib/ChangeLog for rationale). Note the slight change in
7208 interface - callers which want %8.8s or similar formats need to
7210 * lock.c (lock_wait, lock_obtained): Use sprintf.
7212 1999-02-08 Jim Kingdon <http://www.cyclic.com>
7214 * rcs.c (RCS_delete_revs): Pass -a to diff_exec.
7215 * sanity.sh (binfiles3): New tests binfiles3-9 through
7216 binfiles3-13 test for this fix.
7217 * sanity.sh (binfiles): New tests binfiles-o4 and binfiles-o5
7218 (which don't test this bug, just on general principles).
7220 1999-02-04 Jim Kingdon <http://www.cyclic.com>
7222 * lock.c (lock_name): Permissions of directories in LockDir
7223 shouldn't depend on the umask.
7224 * sanity.sh (lockfiles): Set umask and CVSUMASK, to test for this.
7226 1999-02-01 Jim Kingdon <http://www.cyclic.com>
7228 * sanity.sh (keywordlog): New tests keywordlog-22 and
7229 keywordlog-23 test keyword expansion and $Log. Adjust other tests
7230 so that revisions differ more from each other, so this is a
7233 1999-01-29 Jim Kingdon <http://www.cyclic.com>
7235 * commit.c (checkaddfile): If options is "", treat it the same as
7236 NULL. Centralize this check, and the one for it starting with
7237 "-k", at the start of the function.
7239 * rcs.c, rcs.h (RCS_setexpand): New function.
7240 * admin.c (admin_fileproc): Access keyword expansion field via
7241 RCS_getexpand and RCS_setexpand, rather than directly.
7242 * commit.c (checkaddfile): When resurrecting, set the keyword
7244 * sanity.sh (binfiles3): Adjust tests binfiles3-7 and binfiles3-8
7245 for the new behavior.
7247 1999-01-27 Jim Kingdon <http://www.cyclic.com>
7249 * sanity.sh (multiroot3): Add new variant of multiroot3-10 test
7250 for RELATIVE_REPOS. Move multiroot3-11 test out of the
7251 conditionals; it works the same for remote or local,
7252 RELATIVE_REPOS or no.
7254 * options.h.in: Make RELATIVE_REPOS the default, as has been
7255 announced as a future direction since 1997-10-11.
7256 * sanity.sh (multiroot): Tweak multiroot-update-1a and
7257 multiroot-update-1b tests to work with either RELATIVE_REPOS or
7260 * sanity.sh (client-9): Don't assume the time zone.
7262 1999-01-26 Jim Kingdon <http://www.cyclic.com>
7264 Fix one facet of the "cvs add -kb" re-adding problem (the other
7265 known facet is tested for by binfiles3-8).
7266 * add.c (add): When re-adding a file, set the keyword expansion
7267 as we normally would.
7268 * sanity.sh (binfiles3): New test binfiles3-6a tests for this.
7270 1999-01-22 Jim Kingdon <http://www.cyclic.com>
7272 * sanity.sh (rmadd2): New tests, for undoing a commit.
7274 1999-01-21 Eric Mumpower <nocturne@cygnus.com>
7276 * sanity.sh (reposmv): Actually modify CVSROOT in current
7277 environment when calling functions, rather than trying to achieve
7278 the same effect with "CVSROOT=foo functionname". (Many common
7279 bourne shells, including those in SunOS and Solaris 2.4-2.7,
7280 do not properly handle "ENVVAR=foo command" when "command" is
7281 a user-defined shell function rather than an actual executable.)
7283 1999-01-15 Jim Kingdon <http://www.cyclic.com>
7285 * sanity.sh (rcs3): Redirect awk's stdin to /dev/null like all the
7286 other awk invocations. GNU awk seems not to read stdin in this
7287 case, but that behavior is hard to reconcile with the Single Unix
7288 Spec and some awks don't do it.
7290 * sanity.sh (binfiles, binfiles2, binfiles3, server): Use the same
7291 tr trick as in rcs3. People don't seem to have been complaining,
7292 and this should fix server-4 for HPUX.
7294 1999-01-14 Jim Kingdon <http://www.cyclic.com>
7296 * client.c (recv_line): If the line we are reading contains a
7297 character which would sign-extend to EOF, don't treat it as end of
7298 file. recv() doesn't report end of file this way and this might
7299 fix bugs with 0xff characters.
7301 1999-01-14 Larry Jones <larry.jones@sdrc.com>
7303 * client.c (recv_line): Handle EOF from server.
7305 * sanity.sh (importc-8, importc-9): Accept anything in the seconds
7306 fields of the timestamps since touch doesn't set it reliably.
7307 (This isn't great, but it's better than nothing.)
7309 1999-01-14 Jim Kingdon <http://www.cyclic.com>
7311 * run.c (run_exec): Adjust comment about vfork; this isn't the place
7312 to get into a treatise about fork performance vs. vfork
7313 performance but it isn't quite as simple as whether one has
7316 1999-01-13 Larry Jones <larry.jones@sdrc.com>
7318 * sanity.sh (dotest_fail): Handle spurrious output from assert better.
7320 * sanity.sh (rcs3-4, rcs3-5a): Handle even more variants of the
7321 assertion failure message.
7323 1999-01-12 Larry Jones <larry.jones@sdrc.com>
7325 * sanity.sh (mtfr-3): ls behavior varies wildly on nonexistant files,
7326 just use echo instead.
7328 1999-01-11 Jim Meyering <meyering@ascend.com>
7330 * sanity.sh (mkmodules-temp-file-removal): New test, for this.
7331 * mkmodules.c (mkmodules): Remove each `CVSROOT/.#[0-9]*' temporary
7332 file that's used to check out files listed in CVSROOT/checkoutlist.
7333 Remove extra semicolon at end of line.
7335 1999-01-11 Larry Jones <larry.jones@sdrc.com>
7337 * sanity.sh (rcs3-5a): Allow for multiple lines of output before the
7338 assertion failure message.
7340 * sanity.sh (lockfiles-6, client-8): Work around bug in HP-UX chmod
7341 (doesn't allow anything to follow omitted permissions).
7343 1999-01-09 Jim Kingdon <http://www.cyclic.com>
7345 * client.c (set_sticky): Nonfatal error if we can't write it.
7346 * sanity.sh (dirs2-8 through dirs2-14): New tests, for this.
7348 * sanity.sh (rcs3): Write NUL character with tr not awk, in
7349 accordance with Single Unix Specification. Hopefully will fix
7350 rcs3-7 for HPUX. Will not work on SunOS4, but then again neither
7353 1999-01-05 Jim Kingdon <http://www.cyclic.com>
7355 * client.c, update.c: Rename MD5* functions to cvs_MD5* per
7356 corresponding change to ../lib/md5.h.
7358 1999-01-03 Jim Kingdon <http://www.cyclic.com>
7360 * sanity.sh (client): Give file1 a predictable mode so that the
7361 output in client-9 will not depend on the umask of the user
7364 1998-12-29 Jim Kingdon <http://www.cyclic.com>
7366 * client.c (client_senddate): Use date_to_internet rather than
7367 using our own "5/26/1997 13:01:40 GMT" date format.
7368 * main.c (date_to_internet): Check for errors from sscanf. Always
7369 send a four digit year. Send hours, minutes, and seconds as two
7371 * sanity.sh (client): New tests client-8 and client-9 test for this.
7373 * sanity.sh (rcs2): New tests rcs2-6 through rcs2-8 test for fix
7374 to lib/getdate.y (before the fix, "100 months" or "8 years" would
7375 tend to mean the year 1969, thus the tests would give "cvs update:
7376 file1 is no longer in the repository").
7378 1998-12-28 Larry Jones <larry.jones@sdrc.com>
7380 * entries.c (Register): Return if unable to open log file to avoid
7381 referencing the invalid file pointer.
7382 * sanity.sh (dirs2-7): With above change, no longer fails.
7383 * sanity.sh (rcs3-5a): Another assertion failure message.
7384 * sanity.sh (pserver-4, pserver-5): Some 4.4BSD derived systems spit
7385 out bogus error messages when initgroups is called as non-root.
7387 1998-12-23 Larry Jones <larry.jones@sdrc.com>
7389 * sanity.sh (rcs3, dotest_fail): The assertion failure message varies
7390 wildly between different systems and the resulting abort call can
7391 even result in spurrious output. Fix the regexp to accept nearly
7392 anything containing some kind of assertion failure and ensure that
7393 any spurrious output ends up in the output file instead of on the
7396 1998-12-23 Jim Kingdon <http://www.cyclic.com>
7398 * admin.c, checkout.c, commit.c, cvsrc.c, expand_path.c,
7399 history.c, ignore.c, import.c, log.c, mkmodules.c, modules.c,
7400 myndbm.c, parseinfo.c, rcs.c, remove.c, rtag.c, status.c, subr.c,
7401 tag.c, wrapper.c: Cast all char's to unsigned char before passing
7402 them to ctype.h functions (isalpha, isgraph, isalnum, isspace,
7403 isdigit, isprint, isupper). Whether using ctype.h is the right
7404 thing at all is unclear to me (having the server depend on locale
7405 seems wrong, as we don't necessarily have any good way to set the
7406 right locale, if there even is such a concept as 'right' locale in
7407 this context), but as long as we use ctype.h we might as use it
7408 according to the standards (this affects systems where plain char
7409 is signed but users supply characters with the 8th bit set).
7410 Thanks to Paul Eggert for suggesting this.
7412 1998-12-22 Jim Kingdon <http://www.cyclic.com>
7414 * sanity.sh (rcs3): Oops, the earlier fix for srcdir only fixed
7415 the non-remote case, not the remote case. Fix the other occurrence.
7417 1998-12-22 Jim Kingdon
7419 * sanity.sh (rcs3): The assertion failure message varies slightly
7420 depending on whether CVS was built with srcdir != ".". Fix regexp.
7422 1998-12-21 Jim Kingdon
7424 * rcs.c (RCS_getdate): Reindent Jim Meyering's change; remove
7425 unused variable x_vers.
7427 * rcs.c: When printing an unexpected character we found in the RCS
7428 file, print it in hex rather than as a character (see comment for
7430 * sanity.sh (rcs3): Adjust rcs3-2 and rcs3-7 tests accordingly.
7432 * sanity.sh (rcs3): New test, for some error handling cases
7433 involving parsing RCS files.
7435 1998-12-16 Jim Meyering <meyering@ascend.com>
7437 * rcs.c (RCS_getdate): Handle the case in which a file is first
7438 imported after its initial version has been created.
7439 * sanity.sh (import-after-initial): New test for that.
7441 1998-12-17 Jim Kingdon
7443 * server.c (serve_root): Pserver_Repos only exists if
7444 AUTH_SERVER_SUPPORT is defined.
7446 1998-12-12 Jim Kingdon, and Derek R. Price of Stortek.
7448 * sanity.sh (multiroot): Change + to ${PLUS}.
7450 1998-12-12 Jim Kingdon, and Gary Young of Motorola
7452 * sanity.sh (admin): In tests admin-13, admin-25, and admin-29,
7453 allow 4 digit year in addition to 2 digit year.
7455 1998-12-12 Jim Kingdon
7457 * sanity.sh (log): New tests log-14a and log-14b test for -rHEAD
7458 and for HEAD as (nonexistent) file name.
7460 1998-12-02 Jim Kingdon
7462 * version.c: Squish version number to 1.10.4.1.
7464 * version.c: Version 1.10.4.
7466 1998-11-24 Jim Kingdon
7468 * recurse.c (do_file_proc): Check for errors from RCS_parse.
7469 * sanity.sh (rcslib-symlink-7 through rcslib-symlink-10): New
7470 tests, test for this.
7472 * sanity.sh (reposmv-2): Adjust for 22-Nov change to Find_Names.
7474 * entries.c (Register): If we can't write Entries.Log, make it a
7476 * sanity.sh (dirs2): Test for this fix.
7478 * sanity.sh (dirs2): Clean up working directory at end of test.
7480 1998-11-23 Jim Kingdon
7482 * sanity.sh (dirs2): New test, for some more cases involving
7483 deleting directories and such.
7485 * sanity.sh (dirs): Update for yesterday's change in Find_Names
7486 error handling. The error in dirs-4 is fairly different now; in
7487 dirs-3 and dirs-3a it is the obvious change.
7489 1998-11-22 Jim Kingdon
7491 * sanity.sh (release): Move the commments listing "cvs release"
7492 tests from modules2-6 to here.
7493 * release.c (release): Update comment to reflect "? foo" case.
7495 * find_names.c (Find_Names): If we can't read the repository, make
7496 it a nonfatal error. Tell the caller whether this happened.
7497 (find_rcs): Add comment regarding this behavior.
7498 * recurse.c (do_recursion): If Find_Names gives an error, skip
7499 the directory and print a message saying so.
7500 * sanity.sh (modes3): New test, for this.
7502 1998-11-18 Jim Kingdon
7504 * rtag.c (rtag_usage), tag.c (tag_usage): Use "-r rev"
7507 * sanity.sh (conflicts3): Tests conflicts3-24 through
7508 conflicts3-28 test for another case similar to conflicts3-22.
7510 1998-11-14 Jim Kingdon
7512 * sanity.sh (diff): New test, for now just tests for the "I know
7515 * sanity.sh (conflicts2-142b7 through conflicts2-142b11): New
7516 tests; resurrecting doesn't work from one level up.
7518 * sanity.sh (mwrap-7): Remote prints the messages in a different
7521 1998-11-13 Jim Kingdon
7523 * tag.c (check_fileproc): Log tag deletions.
7524 * rtag.c (check_fileproc): Likewise.
7525 * sanity.sh (taginfo-14 through taginfo-18): New tests, for
7528 1998-11-12 Jim Kingdon
7530 * sanity.sh (mwrap-7): Update for the noexec fix.
7532 * server.c (server_copy_file): Add comment about noexec.
7534 * update.c (checkout_file): Handle noexec case involving revbuf
7536 (update_fileproc): In case T_NEEDS_MERGE, let merge_file take care
7537 of noexec, so it can tell the user if there would be conflicts.
7538 (merge_file): Print "conflicts found in FILE" message
7539 regardless of noexec. Add comment about checking for whether the
7540 file already contained the changes, and noexec.
7541 * sanity.sh (conflicts-192a): New test, for this.
7543 1998-10-20 Jim Kingdon
7545 Use the gzip library on the server. Probably doesn't speed things
7546 up as currently implemented, but does avoid hassles in terms of
7547 finding an external gzip program.
7548 * zlib.c, server.h (gunzip_and_write, read_and_gzip): Now returns
7549 whether a fatal error occurred, rather than expecting error (1,
7551 * client.c (update_entries, send_modified): Change callers.
7552 * server.c (receive_file): Rewrite gzip code to use
7553 gunzip_and_write rather than filter_through_gunzip.
7554 (server_updated): Likewise, use read_and_gzip rather than
7555 filter_through_gzip.
7556 * client.c, client.h (filter_through_gzip, filter_through_gunzip),
7557 run.c, cvs.h (filter_stream_through_program): Removed; no longer used.
7558 * sanity.sh (server): New tests server-4 and server-5 test
7559 this feature (note that CVS 1.10 also passes these tests; the
7560 behavior is supposed to be unchanged).
7562 1998-10-19 Jim Kingdon
7564 * sanity.sh (multiroot3): New test, tests for a few more
7567 * lock.c (lock_name): Set the permissions on each directory we
7568 create to that of the parent directory.
7569 * sanity.sh (lockfiles): New chmod and tests lockfiles-7a and
7570 lockfiles-7b test for this. Adjust lockfiles-5 for new text of
7573 1998-10-15 Jim Kingdon
7575 * server.c (requests): Set RQ_ROOTLESS for "Set".
7576 * sanity.sh (info): Also clean up $HOME/.cvsrc.
7577 (server): Test that we can send Set before Root (had been tested
7578 by crerepos-6b, but only if you ran the info test first). Tests
7581 1998-10-14 Jim Kingdon
7583 * subr.c (expand_string): Tweak the algorithm so that the size
7584 that it allocates is generally a power of two.
7586 1998-10-14 Eivind Eklund and Jim Kingdon
7588 * commit.c (commit): For the client, don't worry about whether we
7591 1998-10-13 Jim Kingdon
7593 * server.h (struct request): Change status field to flags and add
7595 * client.c (handle_valid_requests, supported_request): Change
7597 * server.c (requests): Change status to flags. Add RQ_ROOTLESS.
7598 * server.c (server): If not RQ_ROOTLESS, and we haven't gotten a
7599 Root request, give an error.
7601 1998-10-12 Jim Kingdon
7603 * version.c: Slide version number to 1.10.3.1.
7607 * sanity.sh (modules2-17): Update for 9 Oct 1998 change to
7610 1998-10-11 Jim Kingdon
7612 * commit.c (checkaddfile, commit_fileproc): A numeric value for
7613 'tag' does not mean that we are adding on a branch.
7614 * sanity.sh (keywordlog): Adjust this test, to test for this
7615 (replaces comment saying we should be doing it).
7618 * sanity.sh (rmadd): New test, tests for various existing
7619 behaviors with "cvs ci -r".
7621 1998-10-09 Jim Kingdon
7623 * update.c (update_dirent_proc): For local CVS, if the directory
7624 does not exist in the working directory nor in the repository,
7626 * sanity.sh (dirs): New tests dirs-3a, dirs-7 and dirs-8 test for
7627 this and related behaviors. Note that the new behavior was also
7628 the previous behavior for remote; we are only changing it for local.
7630 * wrapper.c, cvsrc.c, ignore.c: Add comments about ignoring .cvsrc
7631 and friends if we can't find a home directory.
7632 * expand_path.c (expand_path): If we can't find the home
7633 directory, give an error rather than a coredump (or worse).
7634 * login.c (construct_cvspass_filename): Don't use errno in error
7635 message; get_homedir doesn't set it. Add comment about this
7638 1998-10-07 Jim Kingdon <kingdon@harvey.cyclic.com>
7640 * diff.c (diff): Set variables to NULL at the start, and free
7642 * sanity.sh (multiroot2): Add tests for this (before the fix,
7643 multiroot2-12 would abort with "no more than two revisions/dates
7646 1998-10-06 Jim Kingdon <kingdon@harvey.cyclic.com>
7648 * Makefile.in (installcheck check): Remove references to RCSBIN;
7649 they don't do anything now that RCSBIN is ignored.
7651 * client.c: Clean up horrible confusion about whether stored_mode
7652 or stored_mode_valid (or nothing :-)) indicates whether
7653 stored_mode is allocated. Should fix crashes (for example, on NT
7654 when the server has renamed multiple files from uppercase to
7657 * sanity.sh (dirs): New tests, tests for some cases involving
7658 admins who do surgery on the repository.
7660 1998-10-03 Johannes Stezenbach <johannes.stezenbach@propack-data.de>
7662 * vers_ts.c (Version_TS): If UTIME_EXPECTS_WRITABLE, if
7663 necessary change the file to be writable temporarily to set its
7666 1998-10-03 Jim Kingdon <kingdon@harvey.cyclic.com>
7668 * client.c (handle_error): Add comment about indicating which
7669 errors are from the server.
7671 1998-10-01 Jim Kingdon <kingdon@harvey.cyclic.com>
7673 * sanity.sh (devcom-180): Allow one digit day.
7675 1998-09-30 Jim Kingdon <kingdon@harvey.cyclic.com>
7677 * main.c (main): Don't call Name_Root if -d specified.
7678 * recurse.c (do_recursion, do_dir_proc): Don't check CVS/Root
7679 if -d was specified.
7680 * import.c (import): Indentation fix.
7681 * sanity.sh (multiroot): Update for this change.
7682 (reposmv): New test, tests for this.
7684 1998-09-28 Jim Kingdon <kingdon@harvey.cyclic.com>
7686 * sanity.sh (multiroot2): New test, tests some nested directory
7689 1998-09-25 Jim Kingdon <kingdon@harvey.cyclic.com>
7691 * sanity.sh (multiroot): Change a few comments which said modules
7692 when they meant directories.
7694 1998-09-25 Jim Meyering <meyering@ascend.com>
7696 * sanity.sh (devcom-180): Add 0-9 to the range of characters allowed
7699 1998-09-25 Jim Kingdon <kingdon@harvey.cyclic.com>
7701 * sanity.sh (log2): New test log2-7a tests for one error handling
7702 case. Add a comment about another.
7704 1998-09-24 Jim Kingdon <kingdon@harvey.cyclic.com>
7706 * sanity.sh: Change crerepos test back to :ext: (for several
7707 reasons; see comments).
7709 1998-09-24 Noel Cragg <noel@swish.red-bean.com>
7711 * sanity.sh (rcslib-symlink-5, rcslib-symlink-6): new tests to
7712 check the operation of "tag" when there are symlinks in the
7715 * rcs.c (RCS_checkin): remove old code that resolved the symlink
7716 and call resolve_symlink instead.
7717 (RCS_rewrite): call resolve_symlink before doing anything else to
7718 make sure we're operating on the file and not the symlink.
7720 * subr.c (resolve_symlink): new routine -- resolves a symbolic
7721 link chain to its destination.
7722 * cvs.h: add prototype.
7724 * sanity.sh (basica-6.2, basica-6.3): changed match expressions to
7725 reflect new diff output.
7727 * rcs.c (make_file_label): generate labels for files that include
7728 the pathname so that output from "cvs diff" is useable by patch.
7729 Looks like I came up with the mods as Andy Piper
7730 <andyp@parallax.co.uk>; his patch was on the Cyclic unofficial
7733 * sanity.sh: change remote access method from ext to fork. This
7734 results in a significant speed improvement when running the
7735 testsuite. The ext method on my machine (i586 120MHz Linux 2.0.35
7736 with TCP wrappers installed) runs in 450% of the time of the local
7737 method while the fork method runs in only 150% of the time of the
7738 local method! Yow! Am I SWAPPING yet?!
7739 (crerepos-6a, crerepos-6b): change to reflect different error
7740 messages for fork method.
7743 * client.c (connect_to_forked_server): new routine.
7744 (start_server): call the above when method is fork_method.
7746 * root.c: add a new method named "fork". This method uses the
7747 remote protocol, but does so by forking a "cvs server" process
7748 directly rather than doing "rsh host cvs server" (for example).
7749 This new method has few advantages for day-to-day use, but has
7750 three important benefits for debugging:
7752 1) Most secure installations these days don't allow rsh access.
7753 With this new method, we can still test the remote protocol on
7754 these machines because we don't need to be able to make a local
7757 2) Even if installations allow rsh access, they almost always
7758 have TCP wrappers to check permissions by IP/hostname. This
7759 causes a short delay for every connection. For invocations from
7760 the command line, this doesn't matter much, but it adds up to a
7761 significant amount of time when running the testsuite.
7763 3) On machines that can't (or do not usually) provide rshd
7764 access (I'm thinking of WNT/W95 in particular), we can now run
7765 tests of the remote protocol using this method. Indeed, we can
7766 run remote protocol tests on any machine that has an
7767 implementation of piped_child().
7769 (parse_cvsroot): handle new method.
7770 (error_exit, xstrdup, isabsolute): new stub functions to use when
7771 compiling root.c with the DEBUG option.
7772 (main): fix a few typos.
7773 * cvs.h (CVSmethod): add fork_method.
7775 * server.c (create_adm_p): use Emptydir as the placeholder
7776 directory instead of "." to avoid problems with "cvs update -d" et
7779 1998-09-22 Noel Cragg <noel@swish.red-bean.com>
7781 * sanity.sh (devcom-180): fixed typo in regexp.
7783 * main.c (main): remove need_to_create_root and related code
7784 (including CVS_IGNORE_REMOTE_ROOT environment variable). The
7785 current implementation (just removed) of rewriting the contents of
7786 the CVS/Root file isn't desirable for a number of reasons:
7788 1) Only the top-level CVS/Root directory is updated. If we're
7789 really interested in pointing our WD at another CVSROOT, we
7790 should have a separate command.
7792 2) With the new multiroot mods, we don't ever want to rewrite
7793 CVS/Root files in the way the removed code did. Consider:
7795 cvs -d repository1 co a
7797 cvs -d repository2 co b
7798 cvs -d repository2 update b
7800 The update command would rewrite the contents of a/CVS/Root to
7801 the incorrect value. Bad. We then wouldn't be talking to the
7802 correct repository for files in a.
7804 3) The removed code seems to be a quick hack to support working
7805 directories checked out from multiple repositories. With the
7806 CVS_IGNORE_REMOTE_ROOT variable set, one could perform commands
7807 as in example 2, above, without worring about updating CVS/Root
7808 files. While in pre-1.10.1 recursive commands wouldn't handle
7809 that working directory hierarchy, one could use commands like
7810 "cvs foo -l" instead. While not great, this allows you (with a
7811 lot of manual interaction) to have a multiroot WD. Since we now
7812 have multiroot mods checked in, we don't need this code.
7814 (lookup_command_attribute): while we don't need the
7815 CVS_CMD_USES_WORK_DIR flag anymore (since it only was supporting
7816 the need_to_create_root code), I'm leaving it in. It may come in
7817 handy at some later date.
7819 1998-09-18 Jim Kingdon <kingdon@pennington.cyclic.com>
7821 * version.c: Advance version number to 1.10.2.1.
7825 1998-09-13 Jim Kingdon <kingdon@harvey.cyclic.com>
7827 * client.c: Refuse to Copy-file to another directory
7828 * sanity.sh (client): New test, tests for this.
7830 * edit.c (editors_fileproc), watch.c (watchers_fileproc): Use
7831 cvs_output rather than writing to stdout.
7832 * sanity.sh (devcom): Use dotest for tests 178, 180, and 183
7833 (tests that we preserve existing behavior on "cvs editors").
7835 * commit.c (check_fileproc): Don't allow commits in Emptydir.
7836 * sanity.sh (emptydir-8): Test for this change in behavior.
7838 * sanity.sh: Add some compatibility tests to TODO comments at end.
7840 1998-09-10 Jim Kingdon <kingdon@harvey.cyclic.com>
7842 * wrapper.c (wrap_add): Remove obsolete comment about -m.
7844 * server.c (server_updated): Check for error from CVS_UNLINK.
7846 1998-09-09 Jim Kingdon <kingdon@harvey.cyclic.com>
7848 * server.c (serve_root): Allocate with malloc, not xmalloc.
7850 * root.c (set_local_cvsroot): Move memory allocation from here...
7851 * server.c (serve_root): ...to here. Fixes error handling.
7853 * root.c (parse_cvsroot): Don't call check_root_consistent;
7854 parse_cvsroot is only used for local and client.
7855 * root.c (set_local_cvsroot): Move check_root_consistent
7856 functionality from here...
7857 * server.c (serve_root): ...to here. Fixes error handling. Also
7858 made the error more explicit, while I am at it.
7859 * server.c (Pserver_Repos): Now static.
7860 * cvs.h: Don't declare it.
7861 * root.c (check_root_consistent): Removed; no longer needed.
7862 * sanity.sh (pserver): New test, tests for this behavior and some
7863 other basic pserver stuff.
7865 * update.c (merge_file): Use cvs_output for "already contains the
7866 differences" message. Found this one when I actually observed the
7867 out-of-order bug in Real Life(TM).
7869 1998-09-09 Jim Kingdon
7871 * find_names.c (find_dirs): Make sure to zero errno before
7872 going around the loop again.
7873 * find_names.c (find_rcs): Make sure to set save_errno.
7874 (thanks to Alexandre Parenteau for reporting both problems).
7876 1998-09-09 Jim Kingdon <kingdon@harvey.cyclic.com> and Michael Pakovic
7878 * edit.c (notify_do): Only free line if it is not NULL.
7880 1998-09-07 Jim Kingdon <kingdon@harvey.cyclic.com>
7882 * cvs.h: dirs_sent_to_server should not be inside
7883 AUTH_SERVER_SUPPORT (reported by both Richard Levitte and Murray
7886 * lock.c, cvs.h: New variable lock_dir.
7887 * parseinfo.c (parse_config): New option LockDir.
7888 * lock.c (lock_name): New function, abstracts out lock file naming
7889 and also supports LockDir.
7890 * lock.c (lock_simple_remove, Reader_Lock, write_lock, set_lock):
7891 Call it (6 places, to create/remove read/write/master locks).
7892 (Lock_Cleanup): Refuse to reenter this function.
7893 * sanity.sh (lockfiles): New test, tests for this feature.
7895 1998-09-03 Jim Kingdon <kingdon@harvey.cyclic.com>
7897 * sanity.sh (multiroot): Expect ${TESTDIR} in output instead of
7898 assuming it is /tmp/cvs-sanity (thanks to Mark D. Baushke of Cisco).
7899 Clean up working directory when done (fixes apparent thinko).
7901 * server.c (create_adm_p): Fix one "return" which didn't return a
7903 (dirswitch): Check for errors from create_adm_p.
7905 * sanity.sh: Set LC_ALL rather than just LC_COLLATE.
7907 Wed Sep 2 02:30:22 1998 Jim Kingdon <kingdon@pennington.cyclic.com>
7909 * version.c: Bump version number to 1.10.1.1.
7913 1998-09-01 Jim Kingdon <kingdon@harvey.cyclic.com>
7915 Administrative note regarding Noel's changes to allow one to
7916 switch from one CVS root to another in a single command: The
7917 ChangeLog entries for the changes which Noel just checked in
7918 appear for 1998-09-01, 1998-08-28, 1998-08-25, 1998-08-19, and
7919 1998-08-18, rather than being all together.
7921 * main.c (set_root_directory): Fix whitespace.
7922 (main): Nuke new -m option and just have that message controlled
7924 * server.c (server): Revert the CVS_SERVER_SLEEP code back the way
7925 it was in CVS 1.10. Attaching to the parent process is relatively
7926 boring (you can just run "cvs server" under a debugger instead),
7927 but connecting to the child process is what the old code was for.
7928 * recurse.c, server.c: Remove DEBUG_NJC code.
7930 1998-09-01 Noel Cragg <noel@swish.red-bean.com>
7932 * server.c (do_cvs_command): add another environment variable,
7933 CVS_SERVER_SLEEP2, after forking to pause the program so one can
7936 * sanity.sh (crerepos): clean up crerepos-18 now that multiroot
7938 (multiroot): finalize tests for local vs. remote operation.
7940 * recurse.c (start_recursion): near the beginning, save the list
7941 of directories to spoof as command-line arguments, if necessary.
7942 Use that list near the end and call send_file_names to send those
7943 arguments to the server.
7944 (do_argument_proc): removed, since we call send_file_names now.
7946 * main.c (main): re-initialize dirs_sent_to_server on each pass
7947 through the loop for each CVSROOT.
7949 * cvs.h: add proto for global variable which keeps track of which
7950 directories have been sent to the server when in client mode.
7952 * client.c (is_arg_a_parent_or_listed_dir): new function.
7953 (arg_should_not_be_sent_to_server): new function. Tries to decide
7954 whether the given argument should be sent to the server, based on
7955 the current CVSROOT and the list of directories sent to the
7957 (send_repository): add the directory name to the list of
7958 directories sent to the server.
7959 (send_file_names): call arg_should_not_be_sent_to_server.
7961 * add.c (add): switch the order of send_files and send_file_names
7962 to make multiple repository support possible. send_files needs to
7963 create a list of directories being requested so that
7964 send_file_names can decide which command-line arguments to send to
7965 the server for the given current CVSROOT.
7966 * admin.c (admin): same.
7967 * commit.c (commit): same.
7968 * diff.c (diff): same.
7969 * edit.c (editors): same.
7970 * log.c (cvslog): same.
7971 * rcs.c (annotate): same.
7972 * remove.c (cvsremove): same.
7973 * status.c (cvsstatus): same.
7974 * tag.c (cvstag): same.
7975 * update.c (update): same.
7976 * watch.c (watch_addremove): same.
7979 1998-08-31 Jim Kingdon <kingdon@harvey.cyclic.com>
7981 * sanity.sh: Remove "debug" function; it was apparently checked
7982 in accidentally by Norbert Kiesel's change.
7984 1998-08-31 Norbert Kiesel <nk@iname.com>
7986 * release.c (release): modify last patch to release so that
7987 save_cwd is called only once and restore_cwd is always called when
7988 neccessary. Also fixed a tiny memory leak.
7990 * sanity.sh (release): added some more tests for "cvs release"
7991 including a test with two dirs and a "no" for the first one (which
7992 fails without the above patch).
7994 1998-08-28 Noel Cragg <noel@swish.red-bean.com>
7996 * sanity.sh (crerepos-18): add new comment and change test
7997 slightly to support multiroot.
7998 (multiroot): add more tests.
8000 * server.c (create_adm_p): new function.
8001 (dirswitch): call create_adm_p. Modify the code to always write a
8002 new CVSADM_REP file, since create_adm_p might have put a
8003 placeholder there and our value is guaranteed to be correct.
8004 (server): move the CVS_SERVER_SLEEP check here so we can debug
8005 things at an earlier stage.
8007 * recurse.c (start_recursion): add large comment about the ideal
8008 solution to the "Argument xxx" problem.
8010 * main.c (main): move position of debugging comment for -m flag.
8012 * diff.c (diff): clear a static variable.
8014 * client.c (send_file_names): check to see if we should send this
8015 argument to the server based on the contents of the appropriate
8016 CVSADM directory. This avoids "nothing known about foo" messages
8017 and problems with duplicate modules names in multiple
8019 (send_a_repository): change method of calculating toplevel_repos
8020 to support multiple CVSROOTs.
8021 (start_server): clear some static variables.
8023 1998-08-28 Jim Meyering <meyering@ascend.com>
8025 * sanity.sh (basicc-8, basicc-11): Use `.*' instead of explicit
8026 `Operation not permitted'. Solaris2.5.1 gets a different error:
8029 1998-08-26 Eric M. Hopper
8031 * sanity.sh: Set LC_COLLATE to "C".
8033 1998-08-25 Noel Cragg <noel@swish.red-bean.com>
8035 * sanity.sh (multiroot): new set of tests to check the behavior of
8038 * diff.c (diff): set options value to NULL after freeing to reset
8039 the state for the next time around.
8041 1998-08-25 Jim Kingdon <kingdon@harvey.cyclic.com>
8043 Fix problems with trying to rename an open file:
8044 * rcs.c, rcs.h (RCS_setattic): New function.
8045 * commit.c (remove_file, checkaddfile): Call it.
8047 1998-08-24 Jim Kingdon <kingdon@harvey.cyclic.com>
8049 * release.c (release): Use save_cwd and restore_cwd to get back to
8050 where we started, rather than hoping that CVS_CHDIR ("..") will do
8051 something useful. This removes the need for most of
8052 release_delete, so remove that function and inline what is left.
8053 * sanity.sh (basicc): Adjust tests for this fix, also some tests
8054 with multiple arguments to "cvs release" (in the non-"-d"-case, it
8055 would seem like the old code would CVS_CHDIR into directories and not
8056 CVS_CHDIR back, but I'm not going to investigate this and it
8057 should be a moot point with this fix.).
8059 * sanity.sh (basicc): Add tests for a serious bug in "cvs release
8062 More error handling fixes:
8063 * ignore.c (ignore_files): Check for errors from opendir and
8065 * find_names.c (Find_Names): Check for errors from find_rcs.
8066 (find_rcs, find_dirs): Comment error handling better; also return
8067 an error if we got one from readdir.
8068 * filesubr.c (deep_remove_dir): Also check for errors from readdir.
8069 * import.c (import_descend): Print message on error from opendir
8071 * commit.c (remove_file): Check for errors from CVS_MKDIR and
8073 (remove_file): No need to remove the file in the temporary
8074 directory; server.c now informs time_stamp_server of what is going
8075 on via CVS/Entries rather than a file with a kludged up timestamp.
8076 * client.c, entries.c, login.c, logmsg.c, mkmodules.c, patch.c,
8077 remove.c, update.c: Check for errors from unlink_file.
8078 * mkmodules.c (write_dbmfile, rename_dbfile, rename_rcsfile):
8079 Check for errors from fclose, CVS_RENAME, and CVS_STAT.
8080 * mkmodules.c (checkout_file): Clarify error handling convention.
8081 * mkmodules.c (mkmodules): Call checkout_file accordingly.
8082 * entries.c (Entries_Open): Check for errors from fclose.
8084 1998-08-21 Ian Lance Taylor <ian@cygnus.com>
8086 * import.c (import): Output suggested merge command using
8087 cvs_output_tagged rather than just cvs_output. Don't put
8088 CVSroot_cmdline in the log file.
8089 * client.c (importmergecmd): New static struct.
8090 (handle_mt): Handle +importmergecmd tag.
8091 * sanity.sh (import): Use an explicit -d in importb-2, to test
8092 whether it is reported in the suggested merge command.
8094 1998-08-20 Ian Lance Taylor <ian@cygnus.com>
8096 * sanity.sh (import): Rewrite tests to use dotest.
8098 1998-08-20 Jim Kingdon <kingdon@harvey.cyclic.com>
8100 * sanity.sh: Add comments about binary files and cvs import.
8102 1998-08-19 Jim Kingdon <kingdon@harvey.cyclic.com>
8104 * sanity.sh (importc): Use ${username} in one place where I had
8107 Make import -d work client/server:
8108 * client.c, client.h (client_process_import_file): Take new
8109 argument, for whether -d is specified, and send Checkin-time
8110 request if it is set.
8111 * import.c (import_descend): Pass it.
8112 * main.c, cvs.h (date_to_internet): New function.
8113 * server.c (server_modtime): Call date_to_internet.
8114 * server.c (serve_checkin_time): New function.
8115 (requests): Add "Checkin-time" request.
8116 (serve_modified): If it was sent, set the timestamp in the
8117 temporary directory.
8118 * import.c (import): If the client sends a -d option, complain.
8119 (import): For the server, always use the timestamps from the temp
8121 (import): Don't send a -d option to the server.
8122 * sanity.sh (importc): Add tests for import -d.
8124 Wed Aug 19 15:19:13 1998 Larry Jones <larry.jones@sdrc.com>
8126 * sanity.sh (unedit-without-baserev-5): use ${DOTSTAR} instead
8127 of .* since we expect to match multiple lines.
8129 1998-08-19 Ian Lance Taylor <ian@cygnus.com>
8131 * cvs.h (CVSroot_cmdline): Declare.
8132 * root.c (CVSroot_cmdline): Define.
8133 * main.c (main): Set CVSroot_cmdline if the -d option is used.
8134 * import.c (import): If CVSroot_cmdline is not NULL, then mention
8135 an explicit -d option in the suggested merge command line.
8137 Wed Aug 19 00:28:50 1998 Noel Cragg <noel@swish.red-bean.com>
8139 * recurse.c (do_dir_proc): don't muck with CVS/Root directories
8140 when running in server mode.
8141 (do_recursion): same.
8143 * main.c (main): add the command-line option `m' to help debug the
8144 multiroot environment; it prints out the value of CVSROOT for each
8145 iteration through the main loop. Also, changed the main loop so
8146 that it gets executed only once when running in server mode (the
8147 server will only deal with a single CVSROOT).
8149 * recurse.c (do_recursion): change default for
8150 PROCESS_THIS_DIRECTORY to true; we should always process a
8151 directory's contents unless there's an existing CVS/Root file with
8152 a different root than the current root to tell us otherwise.
8153 (do_dir_proc): same.
8155 Tue Aug 18 14:30:59 1998 Noel Cragg <noel@swish.red-bean.com>
8157 * recurse.c (do_recursion): check the current value of CVS/Root
8158 and add it to our list of CVSROOTs if it doesn't exist. Decide
8159 whether or not to process files in this directory based based on
8160 the value of CURRENT_ROOT.
8161 (do_dir_proc): same.
8163 * main.c: add two new globals -- root_directories and current_root
8164 -- which keep track of the values of CVSROOT we've seen and which
8165 value of CVSROOT we're currently processing.
8166 (main): put the main loop for stepping through cvsroot values
8167 here, since we might need to send command-specific arguments for
8168 every unique non-local cvsroot. Moved blocks of code around so
8169 that one-time initializations happen first (outside the loop) and
8170 the other stuff happens inside the loop.
8171 (set_root_directory): helper function.
8173 * cvs.h: add prototypes for root_directories and current_root, two
8174 new globals for keeping track of multiple CVSROOT information.
8176 1998-08-18 Jim Kingdon <kingdon@harvey.cyclic.com>
8178 * sanity.sh: Don't assume that the shell leaves $^ unexpanded in
8179 an unquoted here-document (suggested by Bart Schaefer to help when
8182 1998-08-17 Ian Lance Taylor <ian@cygnus.com>
8184 * commit.c (checkaddfile): Don't call fix_rcs_modes.
8185 (fix_rcs_modes): Remove.
8187 1998-08-16 Jim Kingdon <kingdon@harvey.cyclic.com>
8189 * create_adm.c (Create_Admin): Don't condition traces on
8190 SERVER_SUPPORT; SERVER_SUPPORT shouldn't do (much of) anything
8191 independent of server_active.
8193 * sanity.sh (binfiles3): New test, for yet another binary file
8194 bug (sigh). Thanks to Jason Aten for reporting this one.
8196 1998-08-15 Jim Kingdon <kingdon@harvey.cyclic.com>
8198 * rcscmds.c (call_diff_write_output): Update to reflect new
8199 calling convention for the write_output callback.
8201 1998-08-15 Jim Meyering <meyering@ascend.com>
8203 * update.c (merge_file): Warn about failed unlink when not due
8206 * server.h (CLIENT_SERVER_STR): New macro
8207 * create_adm.c (Create_Admin): Use it.
8208 * entries.c (Scratch_Entry, Register): Use it.
8209 * filesubr.c (copy_file, xchmod, rename_file, unlink_file): Use it.
8210 * history.c (history_write): Use it.
8211 * modules.c (do_module): Use it.
8212 * no_diff.c (No_Difference): Use it.
8213 * run.c (run_popen): Use it.
8214 * server.c (server_register): Use it.
8216 1998-08-14 Jim Meyering <meyering@ascend.com>
8218 * hardlink.c (lookup_file_by_inode): Use existence_error rather than
8219 comparing errno to ENOENT directly.
8221 * client.c (copy_a_file): Unlink destination before doing copy.
8222 * sanity.sh (join-readonly-conflict): New test for this -- it would
8223 fail only in client/server mode.
8225 * sanity.sh (rcsmerge-symlink-4): Don't use `test -L', it's not
8226 portable. Instead, match against the output of `ls -l'.
8227 (dotest tag8k-16): Simplify tag-construction code and at the same
8228 time, avoid using expr's `length' and `substr' operators. Not
8229 all versions of expr support those.
8231 1998-08-14 Jim Kingdon <kingdon@harvey.cyclic.com>
8233 * version.c: Bump version number to 1.10.0.1.
8235 Thu Aug 13 11:15:24 1998 Noel Cragg <noel@swish.red-bean.com>
8237 * version.c: Change version number to 1.10 and name to `Halibut'.
8239 * sanity.sh (rcslib): new tests to check behavior of symlinks in
8242 Wed Aug 12 15:39:38 1998 Noel Cragg <noel@swish.red-bean.com>
8244 * main.c (lookup_command_attribute): the `annotate' command
8245 shouldn't require access to the repository. Add comment about
8246 commands that do not use the working directory.
8248 Mon Aug 10 10:26:38 1998 Noel Cragg <noel@swish.red-bean.com>
8250 * version.c: Change version number to 1.9.30.
8252 Thu Aug 6 17:44:50 1998 Noel Cragg <noel@swish.red-bean.com>
8254 * server.c (serve_rdiff): change the name of the command (for
8255 error reporting, etc.) from "patch" to "rdiff."
8256 (serve_remove): rename from "cvsremove" to "remove."
8258 * main.c (lookup_command_attribute): the `rdiff' command shouldn't
8259 require write access to the repository.
8261 1998-08-06 David Masterson of kla-tencor.com
8264 * commit.c (commit_filesdoneproc): Don't call strlen ("CVSROOT")
8265 from within the assert statement. Apparently HP's cc compiler on
8266 HPUX 10.20 has trouble with that.
8268 1998-08-06 Jim Kingdon <kingdon@harvey.cyclic.com>
8270 * rcs.c (RCS_checkin): When adding branch, if there is a lock on
8271 the branchpoint owned by someone else, leave it alone. This
8272 restores CVS 1.9 (RCS 5.7) behavior, fixing a core dump.
8273 * sanity.sh (reserved): New tests reserved-16 through reserved-19
8276 1998-08-05 Jim Kingdon <kingdon@harvey.cyclic.com>
8278 * sanity.sh (unedit-without-baserev): Use ${QUESTION} not "?".
8279 This makes it work with GNU expr 1.12 as well as 1.16.
8281 Sun Aug 2 20:27:44 1998 Noel Cragg <noel@swish.red-bean.com>
8283 * mkmodules.c: add comment about TopLevelAdmin for the initial
8284 contents of CVSROOT/config.
8286 1998-07-29 Jim Kingdon <kingdon@harvey.cyclic.com>
8288 * rcs.c (RCS_checkin): Only try to call xreadlink if HAVE_READLINK
8291 Tue Jul 28 19:33:08 1998 Noel Cragg <noel@swish.red-bean.com>
8293 * version.c: Change version number to 1.9.29.
8295 * rcs.c (RCS_checkin): add code to follow symbolic links in the
8298 Sun Jul 26 05:14:41 1998 Noel Cragg <noel@swish.red-bean.com>
8300 * This set of changes reverts the code to pre-1.9.2 behavior and
8301 does not create CVS directories at top-level (except for the
8302 obvious "cvs co ."). Added a new configuration option to switch
8303 between 1.9 and 1.9.2 behavior.
8305 * recurse.c (do_argument_proc): new function.
8306 (start_recursion): in the case that we've done a command from
8307 top-level but have no CVS directory there, the behavior should be
8308 the same as "cvs <cmd> dir1 dir2 dir3...". Make sure that the
8309 appropriate "Argument" commands are sent to the server by calling
8310 walklist with do_argument_proc.
8312 * client.c (call_in_directory): only create the top-level CVS
8313 directory when we're checking out "." explicitly. The server will
8314 force creation of this directory in all other cases.
8316 * checkout.c (checkout_proc): only generate the top-level
8317 directory when the TopLevelAdmin=yes. Also send a message to the
8318 client to do the same.
8320 * parseinfo.c (parse_config): handle TopLevelAdmin option. Set
8323 * main.c: add new variable top_level_admin.
8324 * cvs.h: add extern definition for above.
8326 * sanity.sh: since we're reverting to pre 1.9.2 behavior for
8327 top-level CVS directories, I needed to make changes to a bunch of
8328 tests that made assumptions about said directories.
8329 (preamble): make sure to add read and execute access to everything
8330 in TMPDIR before removing, since some tests make things read-only.
8331 (basicb-1a, basicb-1b, basicb-9a, basicb-9b): use dotest_fail
8332 because these tests check for the non-existant top-level CVS
8334 (basicc-3, emptydir-6, emptydir-7, crerepos-6): use "rm -rf" so it
8335 won't complain when trying to remove the non-existant top-level
8337 (106.5): remove imported-f2-orig.tmp.
8338 (modules2-10, emptydir-4, abspath-1ba, abspath-1bb): cd into the
8339 directory where files exist before using the "add" command so cvs
8340 can find CVSROOT in CVS/Root.
8341 (cvsadm-2): look at a different CVS/Repository file, since the
8342 top-level one doesn't exist.
8343 (taginfo-3): create the directory in the repository directly
8344 rather than relying on the fact that the top-level CVS directory
8345 was created in a previous test.
8346 (serverpatch-6): update first-dir explicity, rather than relying
8347 on the non-existant top-level CVS/Entries file.
8348 (crerepos-18): look at CVS/Repository in a subdirectory rather
8349 than in the non-existant top-level CVS directory.
8350 (toplevel): add code to set TopLevelAdmin=yes.
8351 (toplevel2): new tests -- same as toplevel, but TopLevelAdmin=no.
8353 1998-07-21 Jim Meyering <meyering@ascend.com>
8355 * rcs.c (RCS_checkout): Hoist frees of rev and value.
8356 Warn and return 1 in several cases rather than exiting via
8357 `error (1, ...'. The latter could abort a multi-file commit
8358 in mid-stream, leaving stale locks in the repository.
8360 1998-07-16 Jim Kingdon <kingdon@harvey.cyclic.com>
8362 * build_src.com (rcscmds.c): Also look for include files in
8363 [-.diff], just like Ian's 1998-06-18 change to Makefile.in
8365 1998-07-14 Jim Kingdon <kingdon@harvey.cyclic.com>
8367 * tag.c (pretag_proc), rtag.c (pretag_proc): Don't pass RUN_REALLY
8368 to run_exec. This means that taginfo does not get executed if the
8369 global -n option is specified. Which makes it like loginfo, -i,
8370 -e, -o, -t, -u in modules, editinfo, and verifymsg and unlike
8371 commitinfo. The old behavior was pretty bad in the sense that it
8372 doesn't provide any way to log only the tags which actually
8374 * sanity.sh (taginfo): New tests taginfo-11 to taginfo-13, for this.
8376 1998-07-12 Jim Kingdon <kingdon@harvey.cyclic.com>
8378 * sanity.sh (ann-id): Write the test so that it tests for the
8379 current (buggy) behavior.
8381 * sanity.sh (taginfo): Also clean up cvsroot/first-dir.
8383 1998-07-12 Jim Meyering <meyering@ascend.com>
8385 * sanity.sh (ann-id): New (currently failing) test for bug in how
8386 rcs keywords are expanded in the output of `cvs annotate'.
8388 1998-07-12 Jim Kingdon <kingdon@harvey.cyclic.com>
8390 * sanity.sh (taginfo): Write the TESTDIR into the script rather
8391 than having the script look at the environment. This means that
8392 it will work if TESTDIR is set by sanity.sh as well as if
8393 sanity.sh finds TESTDIR in the environment.
8395 1998-07-11 Jim Kingdon <kingdon@harvey.cyclic.com>
8397 * tag.c (check_fileproc): Calculate the revision to be tagged the
8398 same way that tag_fileproc does.
8399 * sanity.sh (taginfo): New tests, test for this (before this fix,
8400 brtag had said 1.1 not 1.1.2.1).
8402 1998-07-10 Jim Kingdon <kingdon@harvey.cyclic.com>
8404 * sanity.sh (unedit-without-baserev): Also clean up "2" directory.
8406 1998-07-08 Jim Kingdon <kingdon@harvey.cyclic.com>
8408 * edit.c (unedit_fileproc): If the Baserev file is missing, don't
8409 get the working file from CVS/Base. The previous code could get
8410 you version 1.1 of the working file and put 1.2 in CVS/Entries.
8411 * sanity.sh (unedit-without-baserev): New tests test for this.
8413 1998-07-02 Jim Kingdon <kingdon@harvey.cyclic.com>
8415 * sanity.sh (unedit-without-baserev): Move the test itself to be
8416 in the same order as in the "tests" variable.
8418 1998-07-02 Ian Lance Taylor <ian@cygnus.com>
8420 * rcscmds.c: Don't include <stdarg.h> or <vasprintf.h>. Don't
8422 (call_diff_printf_output): Remove.
8423 (call_diff_stdout_callbacks): Don't initialize printf_output
8424 field--it has been removed from the interface.
8425 (call_diff_file_callbacks): Likewise.
8427 1998-07-01 Jim Meyering <meyering@ascend.com>
8429 * edit.c (unedit_fileproc): Handle the case in which base_get
8430 returns a NULL baserev. That happens when a file being `unedit'ed
8431 exists in the CVS/Base directory, but isn't listed in the CVS/Baserev
8432 file. The one case I've seen had no Baserev file at all. The symptom
8433 (if you're lucky) is a segmentation fault upon unedit. If you use
8434 SunOS4.1.4 for which printf prints NULL pointers as `(null)', your
8435 unedit command will complete normally, but it will have corrupted
8436 your CVS/Entries file and a subsequent update may result in an
8437 assertion failure, a core dump, and a stale lock in the repository.
8438 * sanity.sh (unedit-without-baserev): New test for this.
8440 1998-07-01 Andy Mortimer of aeat.co.uk
8441 and Jim Kingdon <kingdon@harvey.cyclic.com>
8443 * server.c (server_updated): Use a prototype if we are using them
8446 1998-06-29 Jim Kingdon <kingdon@harvey.cyclic.com>
8448 * sanity.sh (commit-readonly): Protect keyword against expansion
8449 in sanity.sh itself. Keep the keyword in the file which we check
8450 in (or else this fails to test for the RCS_checkout change).
8452 1998-06-27 Jim Meyering <meyering@ascend.com>
8454 * rcs.c (RCS_checkout): If opening the local workfile fails due to
8455 lack of write access, try to chmod the file and retry the open.
8456 Before, a commit could fail part way through merely because the
8457 open to rewrite with newly expanded rcs keywords would fail. It's
8458 easy to make this happen if you use `cvs -r' or CVSREAD and you
8459 apply a patch to one of your read-only source files -- patch
8460 preserves the read-only setting for the file and your next commit
8461 will fail after committing that file, but before rewriting
8462 (checking out) your working copy.
8463 * sanity.sh (commit-readonly): New test for this.
8465 1998-06-25 Jim Kingdon <kingdon@harvey.cyclic.com>
8467 * update.c (patch_file): Update comments regarding context diffs
8468 to reflect diff library.
8470 1998-06-23 Jim Kingdon <kingdon@harvey.cyclic.com>
8472 * sanity.sh (modules4): Add tests for reversing the order of the
8473 "!first-dir/sdir" and "first-dir".
8475 1998-06-23 Jim Kingdon <kingdon@harvey.cyclic.com>
8476 and Dave Wolfe@Motorola.
8478 * sanity.sh (modes2): Touch the file before chmod'ing it.
8480 1998-06-21 Ian Lance Taylor <ian@cygnus.com>
8482 * update.c (merge_files): Revert changes of 1998-06-19. Instead,
8483 register a merged file with a dummy time stamp. Only set
8484 last_register_time if we need to.
8485 (join_file): Likewise. Always register a merged file, not just
8486 when the merge fails.
8488 1998-06-21 Jim Kingdon <kingdon@harvey.cyclic.com>
8490 * call_diff_write_output, call_diff_printf_output,
8491 call_diff_flush_output, call_diff_write_stdout, call_diff_error,
8492 call_diff_stdout_callbacks, call_diff_file_callbacks): Re-indent.
8494 1998-06-19 Ian Lance Taylor <ian@cygnus.com>
8496 * update.c (merge_file): Make sure the time stamp of the file is
8497 different from the time stamp we register in the Entries file.
8498 (join_file): Likewise.
8500 1998-06-18 Ian Lance Taylor <ian@cygnus.com>
8502 * rcscmds.c: Include <stdio.h>. Include either <stdarg.h> or
8503 <varargs.h>. Declare vasprintf.
8504 (call_diff_write_output): New static function.
8505 (call_diff_printf_output): New static function.
8506 (call_diff_flush_output): New static function.
8507 (call_diff_write_stdout): New static function.
8508 (call_diff_error): New static function.
8509 (call_diff_stdout_callbacks): New static variable.
8510 (call_diff_file_callbacks): New static variable.
8511 (call_diff): Don't sleep. Use a callback structure when calling
8513 (call_diff3): Likewise.
8515 * rcscmds.c: Include diffrun.h.
8516 (call_diff, call_diff3): Pass NULL callback parameter.
8517 (diff_run, diff3_run): Don't declare.
8518 * Makefile.in (rcscmds.o): New target, to use -I for diff
8520 (zlib.o): Depend upon zlib.h.
8522 1998-06-09 Mike Sutton@SAIC
8524 Make it compile with Sun's bundled K&R C compiler:
8525 * rcs.c (count_delta_actions): Change to static to match
8527 * client.c (handle_wrapper_rcs_option): Rename error label to
8528 handle_error to avoid clash with function name.
8530 1998-06-09 Jim Kingdon <kingdon@harvey.cyclic.com>
8532 * rcs.c (RCS_delete_revs): If we are trying to delete all
8533 revisions, give an error rather than assertion failed.
8534 * sanity.sh (basicb): New tests basicb-o* test for this.
8536 1998-06-04 Jim Kingdon <kingdon@harvey.cyclic.com>
8538 * add.c (add): Only send "Directory" requests if we need to.
8540 1998-06-02 Assar Westerlund <assar@sics.se>
8542 * client.c: Check for HAVE_GSS_C_NT_HOSTBASED_SERVICE rather than
8543 assuming that GSS_C_NT_HOSTBASED_SERVICE is a macro.
8544 * server.c: Likewise.
8546 1998-06-02 Jim Kingdon <kingdon@harvey.cyclic.com>
8548 * fileattr.c (fileattr_read): Check for NULL return from strchr.
8549 * sanity.sh (devcom3): New test devcom3-10 checks for this.
8551 1998-06-01 Assar Westerlund <assar@sics.se>
8552 and Ian Lance Taylor <ian@cygnus.com>
8554 * client.c: If HAVE_GSSAPI_H, include <gssapi.h>. Only include
8555 <gssapi/gssapi.h> if HAVE_GSSAPI_GSSAPI_H. Only include
8556 <gssapi/gssapi_generic.h> if HAVE_GSSAPI_GSSAPI_GENERIC_H.
8557 (GSS_C_NT_HOSTBASED_SERVICE): Define if not defined.
8558 (connect_to_gserver): Use GSS_C_NT_HOSTBASED_SERVICE instead of
8559 gss_nt_service_name.
8560 * server.c: Same header file changes.
8561 (GSS_C_NT_HOSTBASED_SERVICE): Define if not defined.
8562 (gserver_authenticate_connection): Use GSS_C_NT_HOSTBASED_SERVICE
8563 instead of gss_nt_service_name.
8565 1998-06-01 Jim Meyering <meyering@ascend.com>
8567 * sanity.sh (tag8k): Add a test for the 1998-05-02 rcs.c bug fix.
8569 1998-05-26 Jim Kingdon <kingdon@harvey.cyclic.com>
8571 * rcs.c (annotate): Call tag_check_valid like the other functions
8572 which have a -r option.
8573 * sanity.sh (ann): New test ann-14 tests for this.
8575 1998-05-24 Jim Kingdon <kingdon@harvey.cyclic.com>
8577 * sanity.sh (importc): New tests importc-5 through importc-8 test
8578 for a (fairly obscure) regression from CVS 1.9.
8580 1998-05-23 Jim Kingdon <kingdon@harvey.cyclic.com>
8582 * sanity.sh (modules2): Add comment listing cvs release tests.
8583 (info): New test info-cleanup-0 tests "cvs -n release".
8585 * rcs.c (rcsbuf_getid): Remove semicolon at end of #undef. I'm
8586 kind of surprised that compilers accepted this at all, but
8587 removing it squelches a warning for some compilers.
8589 * version.c: Change version number to 1.9.28.1.
8593 1998-05-22 Jim Kingdon <kingdon@harvey.cyclic.com>
8595 * rcs.c (RCS_cmp_file): Check for errors from CVS_FOPEN. This
8596 restores the CVS 1.9 behavior (fatal error if we can't open the
8597 file), and corrects an apparent oversight in Ian's 13 Apr 1997
8599 * sanity.sh (modes2): New test, tests for this.
8601 1998-05-22 Ian Lance Taylor <ian@cygnus.com>
8603 * server.c (server_updated): Correct test for whether to unlink
8606 1998-05-20 Jim Kingdon <kingdon@harvey.cyclic.com>
8608 * wrapper.c (wrap_add): Disable -t/-f wrappers at least until the
8609 serious bug can be fixed.
8611 1998-05-15 Jim Kingdon <kingdon@harvey.cyclic.com>
8613 * checkout.c (checkout): Call server_pathname_check on the
8614 argument to "cvs co -d".
8615 * server.c (server_pathname_check): Add comment about how we could
8616 be handling absolute pathnames.
8617 * sanity.sh (abspath): Rewrite the tests which run "cvs co -d /foo"
8618 for remote, to reflect this.
8620 * sanity.sh (abspath): Also do the "cannot rename" work-around for
8623 1998-05-13 Jim Kingdon <kingdon@harvey.cyclic.com>
8625 * commit.c (commit_filesdoneproc): Free admin_dir when done with it.
8627 1998-05-13 Jim Meyering <meyering@ascend.com>
8629 * sanity.sh (editor): Change bogus sed command, `s/^/x&/g', to `s/^/x/'.
8630 The former exercised a bug in GNU sed-3.01-beta3.
8631 (emptydir-8): Add `Rebuilding administrative file database' message,
8632 since now it does that.
8633 * commit.c (commit_filesdoneproc): Pass only the admin directory
8634 pathname to mkmodules.
8635 Remove #if 0, now that it's fixed.
8637 * status.c (cvsstatus): Rename from `status' to avoid shadowing
8638 lots of locals and parameters by the same name.
8639 * server.c (serve_status): Update caller.
8640 * main.c (cmds[]): Update table entry.
8641 * cvs.h: Update prototype.
8643 * commit.c (commit_filesdoneproc): Remove trailing blanks.
8644 (commit) [CLIENT_SUPPORT]: Remove unnecessary (and local-shadowing)
8645 declaration of `err'.
8646 Rename global `tag' to `saved_tag' to avoid overshadowing `tag'
8647 parameters of three functions.
8648 Rename global `message' to `saved_message' to avoid overshadowing
8649 `message' parameter of a function.
8650 Rename global `ulist' to `saved_ulist' and move dcl up with others.
8652 1998-05-12 Jim Kingdon <kingdon@harvey.cyclic.com>
8654 * commit.c (commit_filesdoneproc): #if 0 the new code until it can
8657 * commit.c (commit_filesdoneproc): Add comment explaining last
8660 1998-05-12 Jim Meyering <meyering@ascend.com>
8662 * commit.c (commit_filesdoneproc): Call mkmodules not just when
8663 committing a file directly under CVSROOT, but also when committing
8664 files in subdirectories of CVSROOT.
8666 1998-05-08 Jim Meyering <meyering@ascend.com>
8668 * filesubr.c (xreadlink): NUL-terminate the symbolic link name.
8669 Use a much smaller initial buffer length.
8670 Test errno only if readlink fails.
8671 Use xstrdup then free the original link name so we don't waste space.
8673 1998-05-02 Jim Meyering <meyering@ascend.com>
8675 * rcs.c (rcsbuf_getword): Fix off-by-one error that would result in
8676 an abort (the first one in rcsbuf_getkey) when operating on on some
8677 ,v files with over 8192 bytes of tag and branch info.
8679 1998-05-04 Jim Kingdon <kingdon@harvey.cyclic.com>
8681 * sanity.sh (ann): New tests ann-12 and ann-13 test for specifying
8684 1998-05-02 Jim Kingdon <kingdon@harvey.cyclic.com>
8686 * rcs.c: Add comments about getting rid of rcsbuf_getid,
8687 rcsbuf_getword, and rcsbuf_getstring.
8689 * sanity.sh (abspath): Revise the workarounds to deal with exit
8692 1998-04-30 Jim Kingdon <kingdon@harvey.cyclic.com>
8694 * sanity.sh (abspath): Work around the "cannot rename" bug.
8696 1998-04-27 Jim Kingdon <kingdon@harvey.cyclic.com>
8698 * classify.c (Classify_File): Add comments about checking whether
8699 command name is "update".
8701 1998-04-22 Jim Kingdon <kingdon@harvey.cyclic.com>
8703 * version.c: Change version number to 1.9.27.1.
8707 1998-04-20 Jim Kingdon <kingdon@harvey.cyclic.com>
8709 (This diff was run by devel-cvs and everyone seemed to like it).
8710 * diff.c (diff_file_nodiff): Make HEAD mean the head of the branch
8711 which contains the sticky tag, not the sticky tag itself.
8712 * rcs.c, rcs.h (RCS_branch_head): New function.
8713 * sanity.sh (head): Update for this changed behavior.
8715 1998-04-19 Jim Kingdon <kingdon@harvey.cyclic.com>
8717 * sanity.sh: Move emptydir tests from basicb to new test emptydir.
8718 This is because we now need a module definition to create Emptydir;
8719 "co -d" doesn't cut it anymore.
8721 1998-04-17 Petri Virkkula
8723 * server.c (mkdir_p): Ignore EROFS error (like for EACCES).
8725 1998-04-16 Jim Kingdon <kingdon@harvey.cyclic.com>
8727 * checkout.c (checkout_proc): Don't create directories above the
8728 last one specified in "co -d".
8729 (build_dirs_and_chdir): Revert Noel's change of 17 Feb 1998.
8730 (struct dir_to_build): New field just_chdir.
8731 (build_dirs_and_chdir): Test it.
8732 * sanity.sh (abspath): New tests abspath-7* test for a bug which
8733 we fix, in which CVS would create bogus "D/////" entries in
8735 (abspath): Revise abspath-3* tests to test for the fact that we no
8736 longer create directories above the last one specified in "co -d".
8737 I checked that CVS 1.9 gives an error on this, so changing this
8738 behavior back should be OK.
8739 (cvsadm-2d3): Likewise (also checked CVS 1.9 for this case).
8740 (cvsadm-2d3d): Likewise (also checked CVS 1.9 for this case).
8741 (cvsadm-2d{4,5,6,7,8}, cvsadm-N2d{3,4,5,6,7,8}): Adjust for new
8742 behavior (same case as cvsadm-2d3).
8743 (cvsadm-2d{4,5,6,7,8}d, cvsadm-N2d{3,4,5,6,7,8}d): Remove test
8744 (same case as cvsadm-2d3d).
8745 (cvsadm): For remote, skip most these tests.
8746 (abspath): When cleaning up, delete mod1 and mod2 rather than mod1
8747 twice (longstanding bug, apparently only becomes visible if you
8748 run the tests in a certain order).
8750 1998-04-14 Wilfredo Sanchez <wsanchez@apple.com>
8752 * rcs.c: variable "lockfile" was being referenced after being
8753 free'd. Bad. Moved the free() call down.
8755 1998-04-12 Jim Kingdon <kingdon@harvey.cyclic.com>
8757 * sanity.sh (rcs): Add test for annotate and the year 2000.
8759 * server.c (do_cvs_command): If there are partial lines left when
8760 the child process is done, send them along.
8761 * sanity.sh (rcs, rcs2): Enable all tests for remote; tests for
8764 1998-04-11 Jim Kingdon <kingdon@harvey.cyclic.com>
8766 * client.c (client_senddate): Pass SDATEFORM not DATEFORM to
8767 sscanf. This fixes a Y2K bug.
8769 * history.c (history, select_hrec): Change since_date from time_t
8770 to RCS format. Use the usual machinery (in particular, Make_Date
8771 and client_senddate) so that it will work on VMS too.
8772 * main.c, cvs.h (date_from_time_t): New function.
8773 * sanity.sh (history): New test, to test that this didn't break
8774 anything (also tests client_senddate fix).
8776 1998-04-11 Norbert Kiesel <nk@iname.com>
8778 * server.c (cvs_output_binary): Shut up "gcc -Wall" by removing
8779 unnecessary else if test.
8780 * server.c (check_password): Fix uninitialized memory read if
8781 shadow passwords are used. Also added some comments.
8782 * rcs.c (RCS_checkout): Make sure to call chown with -1 for uid or
8783 gid if they should not be changed
8785 1998-04-10 Jim Kingdon <kingdon@harvey.cyclic.com>
8787 * sanity.sh (rcs2): New test, tests for various Y2K cases.
8788 * rcs.c (getdelta): Value for "state" keyword is optional (bug
8789 discovered incidentally in writing rcs2 test).
8791 1998-04-09 Jim Kingdon <kingdon@harvey.cyclic.com>
8793 * filesubr.c, cvs.h (link_file): Remove; no longer used.
8795 1998-04-08 Jim Kingdon <kingdon@harvey.cyclic.com>
8797 * recurse.c (do_dir_proc): Restore update_dir rather than a
8798 computation which appears to, but does not necessarily, restore it
8799 (reported by various people; this fix is from Greg Hudson).
8800 * sanity.sh (importc): New test, tests for this fix.
8802 1998-03-27 Jim Kingdon <kingdon@harvey.cyclic.com>
8804 * rcs.c (RCS_lock): If the revision is already locked, give an
8805 error rather than dumping core.
8806 * sanity.sh (reserved): New test reserved-13c tests for this.
8808 1998-03-25 Loren J. Rittle
8810 * import.c (add_rev): Rewrite to use RCS_FLAGS_KEEPFILE option
8811 of RCS_checkin() to avoid damage to imported files instead of
8812 externally undoing damage after the fact. The side effect is
8813 that callers of add_rev() may now incrementally walk the
8814 entries of the current directory without seeing gratuitous
8815 changes to the directory structure (under at least one file
8816 system under at least one OS).
8818 1998-03-18 Jim Kingdon <kingdon@harvey.cyclic.com>
8820 * error.c (error): Save and restore errno. Should fix test case
8821 conflicts3-23 on SCO 5.0.2. Reported by Steve Cameron.
8823 * sanity.sh (admin): Rename admin-26-o* to admin-26-*; the "o"
8824 stands for "cvs admin -o". Add comment about length of tests.
8827 1998-03-05 Dan Wilder <dan@gasboy.com>
8829 * Fix problem with cvs admin in which -ntag:branch
8830 option associated tag with the branch's head revision.
8831 Should have used branch number. Entailed in this fix,
8834 * Add new functions "RCS_exist_rev", "RCS_exist_tag",
8835 "RCS_tag2rev", and "RCS_valid_rev" to rcs.c. RCS_tag2rev
8836 is similar to RCS_gettag, but does less interpretation.
8838 * Plug a small memory leak.
8840 * Add tests admin-26 through admin-29 to sanity.sh,
8841 to test "cvs admin -n".
8843 1998-03-17 Samuel Tardieu <sam@inf.enst.fr>
8845 * server.c (server_register): protect dereferencing timestamp in
8846 the trace message when it is null, to avoid a segmentation fault.
8848 1998-03-16 Jim Kingdon <kingdon@harvey.cyclic.com>
8850 * options.h.in (MY_NDBM): Rewrite the comment explaining this
8851 option. It was not clear to everyone who "my" referred to, for
8854 * hardlink.c (list_linked_files_on_disk): Remove unused variables
8856 (list_linked_files_on_disk): Add comment about memory allocation
8858 * rcs.c (rcsbuf_getword): Shut up gcc -Wall with a "return 0".
8859 (RCS_checkin): Remove unused variable fullpath.
8860 * sanity.sh (hardlinks): Remove comment about spurious warnings;
8861 the warnings are gone.
8863 1998-03-12 Tim Pierce <twp@skepsis.com>
8865 New functions for parsing and writing hardlink fields.
8866 * rcs.c [PRESERVE_PERMISSIONS_SUPPORT] (puthardlink_proc): New
8868 (putdelta) [PRESERVE_PERMISSIONS_SUPPORT]: Use it.
8869 (rcsbuf_getid, rcsbuf_getstring, rcsbuf_getword): New functions.
8870 (getdelta): Call them, storing `hardlinks' field in vnode->hardlinks.
8871 (RCS_reparsercsfile): When setting rdata->desc, xstrdup value
8872 rather than rcsbuf_valcopying it (due to changes in how getdelta
8873 handles keys and values in newphrases).
8875 * sanity.sh (hardlinks): Use uglier filenames. Checking out
8876 hardlinked files no longer produces the same spurious diagnostics,
8878 (hardlinks-2.3): Renamed from hardlinks-2.2 (duplicate test name).
8880 New infrastructure for managing hardlink lists internally...
8881 * hardlink.c, hardlink.h (list_linked_files_on_disk,
8882 compare_linkage_lists, find_checkedout_proc): New functions.
8883 * rcs.h (struct rcsversnode) [PRESERVE_PERMISSIONS_SUPPORT]: New
8885 * update.c (special_file_mismatch): Get hardlinks from
8886 vp->hardlinks instead of from vp->other_delta.
8887 * rcs.c (free_rcsvers_contents): Comment about freeing hardlinks
8889 (RCS_checkout) [PRESERVE_PERMISSIONS_SUPPORT]: Get hardlinks from
8890 vers->hardlinks list instead of vers->other_delta.
8892 ... and removed obsolete code from earlier revs.
8893 * hardlink.c, hardlink.h (list_files_linked_to,
8894 cache_hardlinks_proc, list_files_proc, set_hardlink_field_proc):
8896 * hardlink.h: Removed `links' member from hardlink_info struct.
8897 * commit.c (commit): Remove the call to cache_hardlinks_proc.
8898 (check_fileproc) [PRESERVE_PERMISSIONS_SUPPORT]: Removed reference
8900 * hardlink.c (update_hardlink_info): Same.
8901 * update.c (get_linkinfo_proc): Same.
8903 * rcs.c (RCS_checkout) [PRESERVE_PERMISSIONS_SUPPORT]: Use
8904 vp->hardlinks and find_checkedout_proc to find recently-updated
8905 files that may be hardlinked.
8906 * update.c (special_file_mismatch): Use List * structures and
8907 compare_linkage_lists for rev1_hardlinks and rev2_hardlinks.
8909 1998-03-16 Larry Jones <larry.jones@sdrc.com>
8911 * server.c (check_password): If shadow passwords are supported but no
8912 entry is found in the shadow file, check the regular password file.
8914 1998-03-07 Jim Kingdon <kingdon@harvey.cyclic.com>
8916 * sanity.sh: Rename permissions test to perms since that is what
8917 each of its individual tests are named.
8918 * sanity.sh (perms symlinks hardlinks): Change CVSROOT to
8919 CVSROOT_DIRNAME where appropriate.
8920 (perms symlinks hardlinks): Disable/adjust the meat of the tests for
8922 (symlinks): Link to ${TESTDIR}/fumble rather than
8923 /fumble/mumble/grumble. We shouldn't be making assumptions about
8924 what might exist in random directories outside ${TESTDIR}.
8925 * hardlink.c (cache_hardlinks_proc): Add comment about trimming
8928 1998-03-07 Tim Pierce <twp@skepsis.com>
8930 * rcs.c (RCS_checkout): Negation bug when checking out symlinks:
8931 existence_error should be !existence_error.
8932 * sanity.sh (permissions symlinks hardlinks): New tests, for
8933 PreservePermissions.
8935 1998-03-04 Jim Kingdon <kingdon@harvey.cyclic.com>
8937 * version.c: Change version number to 1.9.26.1.
8941 * entries.c, cvs.h (Entries_Open): New argument update_dir; use it
8943 * add.c, checkout.c, client.c, find_names.c, import.c, recurse.c,
8944 update.c: Pass it (as NULL except in call_in_directory).
8945 * entries.c (Subdirs_Known): Just return if there is no CVSADM
8946 directory (as in subdir_record).
8947 * sanity.sh (conflicts3): New tests conflicts3-20a and
8948 conflicts3-23 test for these fixes.
8950 * commit.c (commit): Only set up hardlist if preserve_perms.
8952 * commit.c, import.c, no_diff.c, parseinfo.c, rcs.c, rcscmds.c,
8953 update.c: Omit the preserve_perms code if
8954 PRESERVE_PERMISSIONS_SUPPORT is not defined. Much of that code
8955 won't even compile on non-unix systems.
8957 * hardlink.c, hardlink.h: Use the 'standard' copyright (as found
8959 * commit.c, rcs.c: Minor whitespace changes to Tim's submission.
8960 * commit.c (check_fileproc), update.c (get_linkinfo_proc): Remove
8961 unused variable delta.
8962 * hardlink.c (set_hardlink_field_proc), update.c
8963 (get_linkinfo_proc): Return a value rather than falling off the
8964 end of the function.
8966 1998-03-02 Tim Pierce <twp@skepsis.com>
8968 * update.c (special_file_mismatch): Compare the hard links of the
8971 * rcs.c (RCS_checkout):
8973 * hardlink.c, hardlink.h: New files.
8974 (hardlink_info): New struct.
8975 (hardlist, working_dir): New variables.
8976 (list_files_proc, cache_hardlinks_proc, set_hardlink_field_proc,
8977 lookup_file_by_inode, update_hardlink_info, list_files_linked_to):
8980 * Makefile.in (SOURCES): Add hardlink.c.
8981 (OBJECTS): Add hardlink.o.
8982 (HEADERS): Add hardlink.h.
8983 * commit.c: Include hardlink.h.
8984 (commit): Save the working directory before recursing. Walk the
8985 hardlink list, calling set_hardlink_field_proc on each node.
8986 (check_fileproc): Add each file's link information to hardlist.
8987 * rcs.c: Include hardlink.h.
8988 (RCS_checkin): Save list of hardlinks in delta node.
8989 (RCS_checkout): Look up the file's `hardlinks' delta field, and
8990 see if any of the files linked to it have been checked out
8991 already. Link to one of those files if so.
8992 * update.c: Include hardlink.h.
8993 (get_linkinfo_proc): New function.
8994 (do_update): Extra recursion to collect hardlink info.
8995 (special_file_mismatch): Reparse the RCS file if necessary.
8997 fsortcmp is now used by several files, so let's make it extern.
8998 * hash.c, hash.h (fsortcmp): New function.
8999 * find_names.c (fsortcmp): Removed.
9000 * lock.c (fsortcmp): Removed.
9002 1998-03-03 Jim Kingdon <kingdon@harvey.cyclic.com>
9004 * sanity.sh (conflicts3): New tests conflicts3-14a,
9005 conflicts3-14b, and conflicts3-21, conflicts3-22 test that we can
9006 skip over a working directory with a CVSADM directory missing.
9008 1998-02-26 Jim Kingdon <kingdon@harvey.cyclic.com>
9010 * sanity.sh (conflicts3): Tests conflicts3-16 and conflicts3-20
9011 test that we include update_dir in messages. Rename test
9012 conflicts3-14 to fix typo.
9014 Sun Feb 22 23:14:25 1998 Steve Cameron <steve.cameron@compaq.com>
9015 and Ian Lance Taylor <ian@cygnus.com>
9017 * update.c (tag_update_dir): New static variable.
9018 (update_dirent_proc): If no tag or date were specified when
9019 creating a subdirectory, use the tag and/or date of the parent
9021 (update_dirleave_proc): If we set the tag and/or date in
9022 update_dirent_proc, reset them when we leave the directory.
9023 * sanity.sh (branches2): New set of tests for above patch, and
9026 Sun Feb 22 13:31:51 1998 Ian Lance Taylor <ian@cygnus.com>
9028 * commit.c (lock_RCS): Don't call RCS_rewrite.
9030 * update.c (patch_file): If the revision is dead, let
9031 checkout_file handle it.
9032 * sanity.sh (death2): Add test for above patch: add
9033 death2-10a, death2-10b, death2-13a, and adjust
9034 death2-{2,4,5,11,14,diff-11,diff-12,19}.
9036 * cvs.h (RCS_FLAGS_KEEPFILE): Define.
9037 * rcs.c (RCS_checkin): If RCS_FLAGS_KEEPFILE is set in the flags
9038 parameter, don't unlink the working file.
9039 * checkin.c (Checkin): Don't copy the file. Instead pass
9040 RCS_FLAGS_KEEPFILE to RCS_checkin, and only check the file out
9041 again if it has changed.
9043 1998-02-21 Jim Kingdon <kingdon@harvey.cyclic.com>
9045 * rcs.c (rcs_internal_unlockfile, RCS_rewrite): Don't assume errno
9046 means anything just because ferror is set.
9048 Sat Feb 21 20:02:24 1998 Ian Lance Taylor <ian@cygnus.com>
9050 * Makefile.in (clean): Change "/bin/rm" to "rm".
9052 * buffer.c (buf_append_buffer): Correct typo in comment.
9053 * rcs.c (RCS_putadmin): Likewise.
9055 Fri Feb 20 17:53:06 1998 Ian Lance Taylor <ian@cygnus.com>
9057 * rcs.c (rcs_internal_unlockfile): Pass errno when calling error
9058 because ferror is true.
9060 1998-02-20 Jim Kingdon <kingdon@harvey.cyclic.com>
9062 * sanity.sh (abspath): Don't assume that we can't write to /; this
9063 is the kind of thing that is sure to break sooner or later
9064 (especially on Windows).
9066 * sanity.sh: Add summary of which modules tests are which (at
9067 "modules"). Move cvsadm, abspath, and toplevel next to modules.
9068 Add comments to clarify the structure (such as it is).
9070 Fri Feb 20 12:47:14 1998 Larry Jones <larry.jones@sdrc.com>
9072 * admin.c (admin_fileproc): Better fix for -b.
9074 * rcs.c (RCS_whatbranch): Back out previous change.
9075 (RCS_getversion): Ditto.
9076 (RCS_setbranch): Treat an empty revision string like a null pointer.
9078 1998-02-18 Jim Kingdon <kingdon@harvey.cyclic.com>
9080 * rcs.c (RCS_whatbranch): Fix indentation.
9082 * patch.c (patch_fileproc): Check for errors from fclose; check
9083 for errors from fopen properly.
9085 Wed Feb 18 16:03:37 1998 Larry Jones <larry.jones@sdrc.com>
9087 * admin.c (admin_fileproc): Convert -b argument from symbolic name
9088 to revision number before storing in the RCS file.
9089 * rcs.c (RCS_whatbranch): Allow numeric as well as symbolic revision.
9090 (RCS_getversion): Take advantage of above.
9091 * sanity.sh (admin): Add/revise/renumber admin-10c, admin-11a,
9092 admin-12, and admin-12a to check above.
9094 * commmit.c (lock_RCS): Minor clean-up.
9096 * sanity.sh (abspath-6a): Don't depend on the sepcific contents of
9097 CVSROOT, it depends on which other tests have been run.
9099 Wed Feb 18 01:56:04 1998 Ian Lance Taylor <ian@cygnus.com>
9101 * rcs.c (putsymbol_proc): Use putc and fputs rather than fprintf.
9102 (RCS_putadmin): Don't call RCS_symbols if the symbols have not yet
9103 been converted to a list.
9105 * rcs.c (rcsbuf_cache, rcsbuf_cache_open, rcsbuf_cache_close): New
9106 static functions to avoid closing and reopening the RCS file.
9107 (cached_rcs, cached_rcsbuf): New static variables.
9108 (RCS_parse): Call rcsbuf_cache_close. Don't call fclose.
9109 (RCS_parsercsfile): Likewise.
9110 (RCS_parsercsfile_i): Call rcsbuf_cache rather than
9111 rcsbuf_close. Call fclose on error. Remove comment about
9112 inefficiency of opening file twice.
9113 (RCS_reparsercsfile): Call rcsbuf_cache_open rather than fopen and
9114 rcsbuf_open. Call rcsbuf_cache rather than rcsbuf_close and
9116 (RCS_fully_parse, RCS_checkout, RCS_deltas): Likewise.
9117 (RCS_rewrite): Likewise.
9118 (RCS_checkin): Call rcsbuf_cache_close.
9120 * rcs.c (RCS_copydeltas): Fix code which checks for an extra
9121 newline in buffered data.
9123 * rcs.c (rcsbuf_getkey): Save an indirection by using start rather
9124 than *valp when trimming trailing whitespace from value.
9126 * rcs.c (rcsbuf_get_buffered): New static function.
9127 (RCS_copydeltas): After we have done all the required special
9128 actions, and inserted any new revision, just copy the file bytes
9129 directly, rather than interpreting all the data.
9130 (count_delta_actions): New static function.
9131 * sanity.sh (rcs): Add rcs-6a and rcs-6b to commit a new branch
9132 revision, to force CVS to interpret all the data, rather than just
9133 copying it. Adjust rcs-5 to add a branch tag. Adjust rcs-8a and
9134 rcs-14 for the changes created by rcs-6b.
9136 Tue Feb 17 18:34:01 1998 Ian Lance Taylor <ian@cygnus.com>
9138 * sanity.sh (cvsadm, diffmerge2): Remove directories at the end of
9141 * import.c (expand_at_signs): Rewrite to use memchr and fwrite
9144 Rewrite RCS file reading routines for speed:
9145 * rcs.c (struct rcsbuffer): Define.
9146 (rcsbuf_open, rcsbuf_close, rcsbuf_getkey, rcsbuf_getrevnum,
9147 rcsbuf_fill, rcsbuf_valcopy, rcsbuf_valpolish,
9148 rcsbuf_valpolish_internal, rcsbuf_ftell): New static functions.
9149 (getrcskey, getrcsrev, getrevnum): Remove.
9150 (many functions): Change to use new rcsbuf functions instead of
9151 old getrcskey/getrcsrev/getrevnum functions.
9152 (RCS_reparsercsfile): Add rcsbufp parameter. Change all callers.
9153 (RCS_deltas): Add rcsbuf parameter. Change all callers.
9154 (getdelta): Change fp parameter to rcsbuf parameter. Change all
9156 (RCS_getdeltatext): Add rcsbuf parameter. Change all callers.
9157 (RCS_copydeltas): Add rcsbufin parameter. Change all callers.
9158 * rcs.h (RCS_reparsercsfile): Update declaration.
9159 * admin.c (admin_fileproc): Update calls to RCS_reparsercsfile for
9162 1998-02-17 Jim Kingdon <kingdon@harvey.cyclic.com>
9164 * sanity.sh (toplevel): Also clean up second-dir (not a new
9165 bug, but triggered by running tests as "toplevel abspath").
9167 * create_adm.c (Create_Admin): Just print update_dir to tell the
9168 user where we are; not the whole xgetwd. Cleaner than
9169 Noel's change (which also had problems in errno handling).
9170 * sanity.sh (toplevel-12): Update accordingly.
9172 Tue Feb 17 02:32:21 1998 Noel Cragg <noel@swish.red-bean.com>
9174 [These mods make "checkout" work with "-d /absolute/pathname"
9177 * checkout.c (checkout_proc): the -d flag on the command line
9178 should override the -d flag in the modules file if the latter is
9179 an absolute path. The loop that assembles the list of directories
9180 to build has been reorganized slightly to prepare for rewriting
9181 with last_component rather than assuming '/' as a path separator.
9182 Also added to that loop was some code to handle absolute
9184 (build_dirs_and_chdir): add a new argument that tells this routine
9185 whether or not to check before it creates and populates
9188 * filesubr.c (last_component): return the top-level directory when
9189 asked about the top-level directory.
9191 * sanity.sh (toplevel-12): change test to reflect the new style of
9194 * create_adm.c (Create_Admin): include the directory in the error
9197 1998-02-16 Jim Kingdon <kingdon@harvey.cyclic.com>
9199 * diff.c (diff_fileproc), import.c (import, add_rcs_file), rcs.c
9200 (RCS_cmp_file): Don't ignore errors from CVS_UNLINK and fclose.
9202 * patch.c (patch_fileproc): Check for errors from fclose; if we
9203 get -1 from getline check for end of file vs. error.
9205 * rcs.c (RCS_checkout): Comment return value (0/1, not -1).
9206 * commit.c, diff.c, mkmodules.c, patch.c, rcs.c, update.c: Update
9207 to match this convention. Don't suppress errors based on
9208 quiet or really_quiet variables.
9210 Fix a longstanding bug which also makes stamps-8kw in make
9211 remotecheck work again (it stopped working with Ian's 8 Feb 98
9213 * client.c, client.h (change_mode): If new argument respect_umask
9214 is set, then honor the umask.
9215 * client.c, server.c: Update callers.
9217 Cleanups to Tim's checkin:
9218 * rcs.c (RCS_checkout): Use existence_error not ENOENT.
9219 * commit.c (checkaddfile): Remove comment about whether we want to
9220 check for errors from fclose; there is no reason not to.
9221 * rcs.c (RCS_checkout), update.c (special_file_mismatch): sscanf
9222 on %ld requires an unsigned long, not a dev_t.
9223 * update.c (special_file_mismatch): Remove unused variable
9225 * mkmodules.c (config_contents): Between two settings, use a blank
9226 line not a "#" line.
9228 1998-02-15 Tim Pierce <twp@skepsis.com>
9230 [This is the code as submitted. I'll be checking in my cleanups
9231 shortly. This work sponsored by Abbott Labs. -kingdon]
9233 Support for device special files, symbolic links, user and group
9234 ownerships, and file permissions.
9236 * parseinfo.c: (parse_config): Handle new config variable
9237 `PreservePermissions'.
9238 * mkmodules.c (config_contents): Add new PreservePermissions var.
9240 * rcs.c, rcs.h (preserve_perms): New variable.
9241 (RCS_checkout, RCS_checkin): Support for newphrases `owner',
9242 `group', `permissions', `special', `symlink'.
9243 (RCS_checkout): If `workfile' and `sout' are symlinks, remove them
9244 before attempting to open them for writing.
9245 * import.c (add_rcs_file): Support for newphrases. Do not attempt
9246 to read data from special files or symlinks. Error message
9247 `cannot fstat' is now `cannot lstat'.
9249 New metrics for deciding when two files are different:
9251 * update.c, cvs.h (special_file_mismatch): New function.
9252 (merge_file, join_file): Call it.
9253 * no_diff.c (No_Difference): Call it.
9255 * filesubr.c (xcmp): Consider files to be different if they are of
9256 different types; if they are symlinks which link to different
9257 pathnames; or if they are devices with different device numbers.
9258 Error message is now `cannot lstat'.
9259 * rcs.c (RCS_cmp_file): Use `xcmp' to compare files, simplifying
9260 the special handling for nonregular files.
9262 * rcscmds.c (diff_exec, diff_execv): If asked to obtain diffs for
9263 special files, report no differences.
9265 Miscellaneous changes to make special file support possible:
9267 * commit.c (fix_rcs_modes): Don't attempt to `fix' permissions on
9270 * import.c (add_rcs_file): Don't try to close fpuser if it was
9271 never opened (e.g. when operating on a symlink).
9273 * filesubr.c, cvs.h (isdevice, xreadlink): New functions.
9274 * filesubr.c (copy_file): Handle special files and symlinks.
9275 (xchmod): Do nothing if `preserve_perms' is set.
9277 * commit.c (checkaddfile): Replace `copy_file (DEVNULL, ...)' with
9278 fopen/fclose calls. Copy_file no longer attempts to read data
9281 * filesubr.c (islink): Use CVS_LSTAT, not lstat.
9282 * vers_ts.c (time_stamp, time_stamp_server): Use CVS_LSTAT, not stat,
9283 to get symlinks right.
9284 * subr.c (get_file): Same. Don't attempt to read from special
9287 * classify.c (Classify_File): Doc fix.
9289 Fri Feb 13 17:07:32 1998 Eric Mumpower <nocturne@cygnus.com>
9290 and Ian Lance Taylor <ian@cygnus.com>
9292 Fix some file system ordering problems found on Irix 6.4:
9293 * sanity.sh (basic2): Use dotest_sort for test 56.
9294 (importb): Use dotest_sort for tests importb-1 and importb-2.
9295 (head): Use dotest_sort for test head-1.
9297 Thu Feb 12 15:15:33 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
9299 * import.c (add_rcs_file): If add_logfp is NULL, don't call fperror.
9301 11 Feb 1998 Andy Piper
9303 * server.c (cvs_output_binary): Use OPEN_BINARY not _O_BINARY.
9305 Mon Feb 9 18:34:39 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
9307 Tweaks to Ian's checkin:
9308 * update.c (merge_file): Remove comment about sending file to
9309 client before the message. It doesn't apply to this code any more
9310 (it does apply to checkout_file, but I'm not sure it is important
9311 to have such a comment anyway).
9312 * buffer.c (buf_default_memory_error, buf_length): Reindent.
9313 * server.h: Declare struct buffer before use.
9315 Mon Feb 9 21:05:28 1998 Ian Lance Taylor <ian@cygnus.com>
9317 * rcs.c (RCS_fully_parse): Call getrevnum rather than getrcsrev.
9318 Don't bother with ungetc.
9320 * rcs.c (getrcsrev): Rewrite to simply call getrevnum.
9322 Sun Feb 8 15:49:39 1998 Ian Lance Taylor <ian@cygnus.com>
9324 Don't have the server check out a revision into a file and then
9325 immediately read the file; just read into a buffer instead.
9326 * update.c: Include buffer.h.
9327 (update_fileproc): Let checkout_file call server_updated.
9328 (checkout_file): Add merging and update_server parameters. Change
9329 all callers. If server_active, don't mess with backup files. If
9330 server_active, copy the revision into a buffer rather than a file
9331 when possible. If update_server, call server_updated. Fix
9332 handling of error status.
9333 (checkout_to_buffer): New static function used by checkout_file.
9334 (merge_file): Let checkout_file call server_updated.
9335 (join_file): Likewise.
9336 * server.c (server_updated): Change file_info parameter to mode
9337 parameter. Add filebuf parameter. Change all callers. If
9338 filebuf is not NULL, don't read the file.
9339 * server.h (server_updated): Update declaration.
9340 * buffer.c (buf_free): New function.
9341 (buf_append_buffer): New function.
9342 (buf_length): New function.
9343 * buffer.h (buf_free, buf_append_buffer, buf_length): Declare.
9345 * buffer.c: (buf_initialize): If the memory parameter is NULL, use
9346 buf_default_memory_error.
9347 (buf_default_memory_error): New static function.
9348 * buffer.h (BUFMEMERRPROC): Define typedef.
9349 * client.c (buf_memory_error): Remove.
9350 (start_server): Pass NULL rather than buf_memory_error as buffer
9351 memory error function.
9353 Sat Feb 7 16:27:30 1998 Ian Lance Taylor <ian@cygnus.com>
9355 * rcs.c (RCS_parsercsfile_i): Read the expand keyword from the RCS
9356 file. We do this because Version_TS calls RCS_getexpand in many
9357 common cases, and we don't want to reopen the file just for that.
9358 (RCS_reparsercsfile): Skip the expand keyword.
9359 (RCS_getexpand): Don't call RCS_reparsercsfile.
9361 * rcs.c (STREQ): New macro. In all string equality tests in the
9362 file, replace strcmp with STREQ.
9364 Fri Feb 6 16:14:49 1998 Ian Lance Taylor <ian@cygnus.com>
9366 * update.c (checkout_file): If we've already removed the backup
9367 file once, don't try to remove it again.
9369 * filesubr.c (unlink_file_dir): Call stat rather than isdir, and
9370 don't call unlink if the file does not exist.
9372 * myndbm.c (mydbm_load_file): Rename line_len to line_size. Call
9373 getstr rather than getline, to avoid any confusion between \n and
9374 \012. Use the line length returned by getstr rather than calling
9375 strlen. Remove local variable len.
9377 Fri Feb 6 13:23:46 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
9379 * rcs.c (RCS_parsercsfile_i): Don't suppress errors on
9381 (RCS_parsercsfile_i, RCS_reparsercsfile, RCS_fully_parse,
9382 RCS_deltas, getdelta, getrcskey, RCS_getdeltatext):
9383 Check for errors. Include errno in error messages. Include
9384 filename in error messages. Pass new argument to getrcskey.
9385 (getrcskey): New argument NAME, so we can report errors ourself.
9387 Fri Feb 6 12:10:18 1998 Ian Lance Taylor <ian@cygnus.com>
9389 * rcs.c (RCS_reparsercsfile): Don't use ftell/fseek; just keep
9390 track of whether we've already read a key/value pair. Use sizeof
9391 rather than strlen for a constant string. Pass the current key
9392 and value to getdelta, and get them back as well.
9393 (getdelta): Add keyp and valp parameters. Don't use ftell/fseek;
9394 just return the key/value pair to the caller. Don't allocate
9395 vnode before we know we need it. Check one getrcskey return
9396 value. Use sizeof rather than strlen for a constant string.
9398 * rcs.c (getrcskey): Correct comment describing return value.
9400 Thu Feb 5 22:51:13 1998 Ian Lance Taylor <ian@cygnus.com>
9402 * subr.c (getcaller): Cache the result, so that we don't keep
9403 searching the password file.
9405 Wed Feb 4 23:31:08 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
9407 * rcs.c (max_rev): Don't prototype. Interesting that noone
9408 complained about this until now.
9410 4 Feb 1998 Jim Kingdon
9412 * rcs.c (RCS_checkin): When adding a new file, read it
9413 with "rb" if binary.
9415 Fri Jan 30 11:32:41 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
9417 * sanity.sh: Also test "first-dir" as the regexp in loginfo in
9420 * main.c (main): Update year in copyright notice to 1998.
9422 Thu Jan 29 00:01:05 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
9424 * version.c: Change version number to 1.9.25.
9428 * sanity.sh (multibranch2): File file2 and tests multibranch2-13
9429 through multibranch2-15 test a slightly different case than the
9430 rest of multibranch2.
9432 * mkmodules.c (cvswrappers_contents): Rewrite. The text didn't
9433 describe -k and had various other problems.
9435 28 Jan 1998 Karl Fogel and Jim Kingdon
9437 New feature to let server tell client about wrappers.
9438 * client.h (struct response): Add comment about args being
9439 '\0' terminated when passed to handle_* functions.
9440 * client.c (start_server): send "wrapper-sendme-rcsOptions" to
9441 server iff supported.
9442 (responses): new response "Wrapper-rcsOption"; allows the server
9443 to send certain lines from its cvswrappers file.
9444 (handle_wrapper_rcs_option): new func, handles "Wrapper-rcsOption"
9445 response from server.
9446 * server.c (serve_wrapper_sendme_rcs_options): new func, sends
9447 server side CVSROOT/cvswrappers rcs option lines to client.
9448 (requests): new request "wrapper-sendme-rcsOptions"; if received,
9449 we know we can send "Wrapper-rcsOption..." to the client.
9450 * wrapper.c (wrap_unparse_rcs_options): new func; repeated calls
9451 step down the wrapper list returning rcs option entries, but
9452 repackaged as cvswrappers lines.
9453 (wrap_setup): new guard variable `wrap_setup_already_done'; if
9454 this function has run already, just return having done nothing.
9455 Add comment concerning environment variable.
9456 * cvs.h: declare wrap_unparse_rcs_options().
9458 Tue Jan 27 18:27:19 1998 Ian Lance Taylor <ian@cygnus.com>
9460 * rtag.c (rtag_dirproc): Call ignore_directory, and skip the
9461 directory if it returns true.
9462 * sanity.sh (modules4): New set of tests to test some aspects of
9463 excluding directories in the modules file, including the above
9466 Thu Jan 22 10:05:55 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
9468 * server.c (serve_kopt): Check for length of arg. Based on
9469 inspection of the code, plugs a buffer overrun security hole which
9470 was introduced Monday.
9472 * server.c (serve_is_modified): Don't call xmalloc; we aren't
9473 allowed to call error() here. Remove duplicate (and potentially
9474 confusing) variable 'p'.
9476 * log.c (log_fileproc): Look for first character of version
9477 '0' AND second character '\0', rather than OR. I didn't try to
9478 come up with a test case but this looks like a simple thinko
9479 (albeit one which would show up in obscure cases if at all).
9481 Tue Jan 20 19:37:53 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
9483 * client.c (send_dirent_proc): Don't send nonexistent directories
9485 * sanity.sh (modules2): New tests modules2-13 through modules2-18
9488 Mon Jan 19 11:17:51 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
9490 * server.c (serve_kopt): New function.
9491 (requests): Add "Kopt" request.
9492 (kopt): New variable.
9493 (serve_is_modified): Write kopts from there into entries.
9494 (serve_modified): Call serve_is_modified so we do the same.
9495 Declare serve_modified and serve_is_modified.
9496 * vers_ts.c (Version_TS): Set ->options even for a dummy ("D"
9498 * import.c (process_import_file): Check for -k options.
9499 * client.c (client_process_import_file): Send Kopt request.
9500 (send_fileproc): Likewise, for "cvs add".
9501 * sanity.sh: Enable test binwrap3-sub2-add1 for remote.
9502 Add -I .cvswrappers to binwrap3-2a; adjust binwrap3-2d
9503 accordingly. Tests for this fix.
9505 Mon Jan 19 08:48:59 1998 Larry Jones <larry.jones@sdrc.com>
9507 * sanity.sh (errmsg1): Append test 168 output to log file.
9509 Sat Jan 17 08:01:51 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
9511 * sanity.sh (ann-10, ann-11): Don't make assumptions about the
9512 number of characters in the username.
9514 Fri Jan 16 15:34:02 1998 Larry Jones <larry.jones@sdrc.com>
9516 * diff.c (diff_fileproc): Free label1 and label2 when finished.
9518 * edit.c (editor_set): Don't free edlist until after we're
9521 * rcscmds.c (RCS_merge): Free xrev1 and xrev2 when finished.
9523 * subr.c (make_message_rcslegal): Don't access uninitialized or
9524 unallocated memory; only strip trailing blank lines.
9525 * sanity.sh (log-3): Enhance to test this fix.
9527 Fri Jan 16 12:41:03 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
9529 * sanity.sh: Add keywordlog to list of tests run by default.
9531 * rcs.c (RCS_deltas): Don't call cvs_output if length is zero;
9532 passing zero length to cvs_output does not mean output zero
9533 bytes. The 27 Dec 1997 change to no longer '\0'-terminate the
9534 ->text field turned this from a time bomb to a user-visible bug.
9535 * sanity.sh (ann): New tests, test for this fix and other annotate
9538 Thu Jan 15 23:52:00 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
9540 * root.c (root_allow_ok): If inetd.conf didn't specify an
9541 --allow-root options at all, we know we are in trouble. Give a
9542 specific error message.
9544 Thu Jan 15 21:24:59 1998 Ian Lance Taylor <ian@cygnus.com>
9546 * sanity.sh (dotest_sort): New variant of dotest which sorts the
9547 output, for use when the output depends upon details of the file
9548 system, typically when doing an import.
9549 (rdiff): Use dotest_sort for rdiff-1.
9550 (ignore): Use dotest_sort for 188a, 188b, 189d, 190, and 191.
9552 * sanity.sh: (TESTSHELL): New variable.
9553 (editor, info, reserved): Use TESTSHELL in temporary script.
9555 * sanity.sh (ignore): Do all tests in subdirectory, to avoid
9556 conflict between cvsroot and CVSROOT on Windows.
9557 (binwrap3, mwrap, info, config): Likewise.
9559 * sanity.sh (binfiles2): Correct test name binfile2-7-brmod to
9562 * release.c (release_delete): If __CYGWIN32__ is defined, don't
9563 worry about mismatched inodes. This is a hack, but then I think
9564 the test is rather peculiar anyhow.
9566 Thu Jan 15 16:07:36 1998 Larry Jones <larry.jones@sdrc.com>
9568 * sanity.sh (reserved-9): Use ${PROG} instead of "cvs".
9570 Wed Jan 14 15:43:13 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
9572 * Split ChangeLog into ChangeLog-97 and ChangeLog.
9573 * Makefile.in (DISTFILES): Add ChangeLog-97.
9575 13 Jan 1998 Jim Kingdon
9577 * client.c: Declare handle_mt.
9579 Tue Jan 13 22:21:30 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
9581 * sanity.sh: Add comment about how pwd and /bin/pwd often differ
9582 in behavior (but are not guaranteed to).
9584 Tue Jan 13 13:49:53 1998 Ian Lance Taylor <ian@cygnus.com>
9586 * sanity.sh: When setting TMPPWD use just pwd, not /bin/pwd.
9588 * update.c (checkout_file): Don't pass set_time as true to
9589 Version_TS if the file is dead.
9590 * sanity.sh (modules): Add tests modules-155c6 through
9591 modules-155c8 to test for above patch (without the above patch,
9592 modules-155c8 will fail when remote).
9594 Tue Jan 13 10:37:02 1998 Larry Jones <larry.jones@sdrc.com>
9596 * client.c (send_modified): Change bufsize and newsize from int
9597 to size_t to avoid type clashes in call to read_and_gzip.
9599 Tue Jan 13 10:33:02 1998 Larry Jones <larry.jones@sdrc.com>
9601 * zlib.c (read_and_gzip): Set finish to 0; it was uninitialized.
9603 Tue Jan 13 10:26:43 1998 Larry Jones <larry.jones@sdrc.com>
9605 * add.c, rcs.c: Plug memory leaks.
9607 Mon Jan 12 10:45:27 1998 Larry Jones <larry.jones@sdrc.com>
9609 * server.c (mkdir_p): Don't try to create nameless directories
9610 (i.e., given "/foo//bar", don't try to create "/foo/",
9611 just "/foo" and "/foo//bar") since it isn't necessary and
9612 it fails on some systems in unexpected ways.
9614 1998-01-11 enami tsugutomo <enami@but-b.or.jp>
9616 * rcs.c (linevector_copy): Delete lines before overwriting them.
9618 Sat Jan 10 11:05:40 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
9620 * cvsrc.c, entries.c, login.c, logmsg.c, myndbm.c, patch.c,
9621 release.c, server.c: Check for errors from getline, CVS_FOPEN,
9622 fprintf, CVS_UNLINK and fclose. Note that the new errors are
9623 nonfatal. This is because of conservatism more than because
9624 it is always the best thing.
9625 * login.c (get_cvs_password): Close the file when done with it.
9626 * client.c (notified_a_file): If -1 return from getline, check
9627 feof rather than assuming errno is set.
9629 Fri Jan 9 14:38:54 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
9631 * server.c (expand_proc): Also output server_dir in
9632 "Module-expansion", not just in output_dir ("Created", &c).
9633 * sanity.sh (modules2): New tests modules2-9 through modules2-12
9636 Thu Jan 8 12:56:55 1998 Yasutoshi Hiroe <hiroe@rgk.ricoh.co.jp>
9638 * import.c (import): Don't strcat on uninitialized memory. Fixes
9639 possible SIGSEGV with zero-length message.
9641 Tue Jan 6 22:56:29 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
9643 * sanity.sh (crerepos): Fix mistaken variable name which caused us
9644 not to clean up at the end of the test.
9646 Mon Dec 22 01:40:57 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
9648 * add.c (add): Also look for .cvswrappers files.
9649 * sanity.sh (binwrap3): New tests binwrap3-2*, binwrap3-sub2-add*
9652 Tue Jan 6 11:50:38 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
9654 * sanity.sh (crerepos): New tests crerepos-8 through crerepos-18
9655 test behaviors when mixing repositories.
9657 Sun Jan 4 17:40:22 1998 Jim Kingdon <kingdon@harvey.cyclic.com>
9659 * version.c: Change version number to 1.9.23.
9664 For older changes see ChangeLog-97.