/contrib/cvs/src/ChangeLog-97

https://bitbucket.org/freebsd/freebsd-head/ · #! · 3249 lines · 2405 code · 844 blank · 0 comment · 0 complexity · 8e1477da70eeee62eff09bdaf26da9c0 MD5 · raw file

Large files are truncated click here to view the full file

  1. 1997-12-30 enami tsugutomo <enami@but-b.or.jp>
  2. * rcs.c (RCS_checkin): Use gmtime() instead of localtime()
  3. (restores behavior from RCS 5.x which was broken with RCS library
  4. -kingdon).
  5. Mon Dec 29 12:53:00 1997 Ian Lance Taylor <ian@cygnus.com>
  6. * modules.c (do_module): Check for a request for a file within a
  7. module which is not a directory.
  8. * sanity.sh (modules): Add test 149b1 for above patch.
  9. * client.c (start_tcp_server): Remove useless assignment, left
  10. behind by Dec 15 patch.
  11. Sat Dec 27 17:41:11 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  12. * client.c, options.h.in, history.c, import.c, main.c, rcs.c,
  13. update.c: Remove !HAVE_RCS5 code. It had bit-rotted a while ago,
  14. and more to the point is obsolete with the RCS library.
  15. 27 Dec 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  16. * zlib.c, server.h (gunzip_and_write): New function.
  17. * client.c (update_entries): Call it instead of a gunzip subprocess.
  18. * zlib.c, server.h (read_and_gzip): New function.
  19. * client.c (send_modified): Call it instead of a gzip subprocess.
  20. Sat Dec 27 13:07:38 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  21. Decrease RCS_deltas memory usage to what we need (approximately
  22. the size of the file we are patching plus the size of the largest
  23. patch). Previously memory usage had been approximately the size
  24. of the RCS file because we never freed lines until the end.
  25. * rcs.c (linevector_free, linevector_copy, linevector_add,
  26. linevector_delete):
  27. Instead of having all the lines and struct line's in the alloc_*
  28. space, have each line and its struct line in its own malloc'd
  29. space. Use a refcount to deal with curlines vs. headlines
  30. vs. trunklines in RCS_deltas.
  31. (struct allocblock, blocks, block_alloc, block_free): Remove; no
  32. longer used.
  33. (apply_rcs_changes, RCS_deltas): Don't copy lines into allocated
  34. space; linevector_add now does that for us.
  35. (rcs_change_text, RCS_deltas): Don't call block_free.
  36. Tue Dec 23 08:28:44 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  37. * cvsbug.sh: Change bug-cvs address from prep.ai.mit.edu to gnu.org
  38. per email from Martin Hamilton.
  39. Sun Dec 21 21:49:50 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  40. * rcs.c (RCS_checkin): Disable keyword expansion when generating
  41. the change text.
  42. * sanity.sh: Move tests keyword-24 through keyword-27 into
  43. new section keywordlog and expand greatly. Note that CVS 1.9.18
  44. passes the new tests both local and remote but the current
  45. version failed them both local and remote before this fix.
  46. Sat Dec 20 19:56:00 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  47. * rcs.c (RCS_delete_revs): Clean up temporary files even if noexec.
  48. Without this fix, basica-o5a in sanity.sh would leave files around.
  49. Thu Dec 18 13:05:00 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  50. * run.c: Fix typo in declaration (evecvp -> execvp) (credit to
  51. Erik Walthinsen for reporting this). Only declare it if not
  52. HAVE_UNISTD_H. Move declaration to before the first use.
  53. Tue Dec 16 12:59:00 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  54. * update.c: Collapse two identical declarations for join_file.
  55. Mon Dec 15 16:01:49 1997 Ian Lance Taylor <ian@cygnus.com>
  56. * client.c (start_tcp_server): Remove calls to htons and add one
  57. call to ntohs (init_sockaddr calls htons on the port argument).
  58. Mon Dec 15 00:07:02 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  59. * client.c (failure_exit): New variable.
  60. (get_server_responses): If it is set, then return
  61. failure.
  62. (updated_seen, updated_fname): New variables.
  63. (update_entries): Use updated_fname if set. In the "move away
  64. foo.c; it is in the way" case print "C" not "U", and set
  65. failure_exit.
  66. (handle_mt): If we get +updated tagged text, stash it away in
  67. updated_fname rather than printing it immediately.
  68. (handle_mt, get_server_responses): If we stashed a filename and
  69. didn't get around to printing it, go ahead and print it.
  70. * sanity.sh (conflicts2-142d2): Adjust to test for fix. Remote is
  71. now like local was in terms of exit status and "C aa.c" message.
  72. Sun Dec 14 00:27:26 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  73. Implement tagged text feature:
  74. * update.c (write_letter): Take a single finfo argument rather
  75. than file and update_dir. While we are at it change it to return
  76. void (since the returned value always had been 0).
  77. * update.c: Update callers.
  78. * server.c, cvs.h (cvs_output_tagged): New function.
  79. * client.c (responses): Add "MT" response.
  80. (handle_mt): New function.
  81. * update.c (write_letter): Output via cvs_output_tagged.
  82. Sun Dec 14 14:13:05 1997 Ian Lance Taylor <ian@cygnus.com>
  83. * recurse.c (do_dir_proc): Only check for CVS/Repository if
  84. W_LOCAL.
  85. * sanity.sh (devcom-t2, devcom-t3): New tests for above patch.
  86. Sun Dec 14 00:27:26 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  87. * root.c (parse_cvsroot): Initialize check_hostname (fixes thinko
  88. in GSSAPI changes).
  89. Sat Dec 13 13:15:35 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  90. * server.c: Use indentation to indicate nesting of #ifdef's.
  91. * client.c (connect_to_gserver): Reindent (in one place).
  92. Fri Dec 12 17:38:15 1997 Chris Provenzano <proven@cygnus.com>
  93. and Ian Lance Taylor <ian@cygnus.com>
  94. * cvs.h (CVSmethod): Add gserver_method.
  95. * root.c (method_names): Add gserver.
  96. (parse_cvsroot): Handle :gserver:.
  97. * client.h (cvsauthenticate): Declare.
  98. (cvs_gssapi_encrypt): Declare if HAVE_GSSAPI and ENCRYPTION.
  99. (cvs_gssapi_wrap_buffer_initialize): Declare if HAVE_GSSAPI.
  100. (connect_to_pserver): Update declaration.
  101. (pserver_authenticate_connection): Declare when HAVE_GSSAPI and
  102. SERVER_SUPPORT is defined in addition to other case.
  103. * client.c: If HAVE_GSSAPI, include GSSAPI header files.
  104. (gcontext): New static variable if HAVE_GSSAPI.
  105. (connect_to_pserver): Add do_gssapi parameter. Change all
  106. callers. Move rejection handling to bottom of function.
  107. (recv_bytes): New static function if HAVE_GSSAPI.
  108. (connect_to_gserver): Likewise.
  109. (start_server): Handle gserver_method. Handle GSSAPI encryption
  110. and authentication.
  111. * server.c: Include <sys/socket.h> if HAVE_GSSAPI, in addition to
  112. existing cases. If HAVE_GSSAPI, include GSSAPI header files.
  113. Include <grp.h> even if AUTH_SERVER_SUPPORT is not defined.
  114. (gcontext, cvs_gssapi_wrapping): New static variables if
  115. HAVE_GSSAPI.
  116. (cvs_gssapi_encrypt): New global variable if HAVE_GSSAPI and
  117. ENCRYPTION.
  118. (serve_gssapi_encrypt): New static function if HAVE_GSSAPI and
  119. ENCRYPTION.
  120. (serve_gssapi_authenticate): New static function if HAVE_GSSAPI.
  121. (requests): Add Gssapi-encrypt if HAVE_GSSAPI and ENCRYPTION. Add
  122. Gssapi-authenticate if HAVE_GSSAPI.
  123. (switch_to_user): Compile if HAVE_GSSAPI, in addition to existing
  124. cases.
  125. (pserver_authenticate_connection): Likewise. Ifdef out part of
  126. the code for AUTH_SERVER_SUPPORT. Handle a GSSAPI request.
  127. (gserver_authenticate_connection): New static function if
  128. HAVE_GSSAPI.
  129. (cvsauthenticate): New global variable.
  130. (struct cvs_gssapi_wrap_data): Define if HAVE_GSSAPI.
  131. (cvs_gssapi_wrap_buffer_initialize): New function if HAVE_GSSAPI.
  132. (cvs_gssapi_wrap_input): New static function if HAVE_GSSAPI.
  133. (cvs_gssapi_wrap_output): Likewise.
  134. * main.c (opt_usage): Mention -a.
  135. (main): Handle -a. Handle pserver if HAVE_GSSAPI, in addition to
  136. existing cases.
  137. * login.c (login): Pass new argument to connect_to_pserver.
  138. Fri Dec 12 15:33:19 1997 Ian Lance Taylor <ian@cygnus.com>
  139. * buffer.c (PACKET_SLOP): Define.
  140. (packetizing_buffer_initialize): Use PACKET_SLOP when allocating
  141. holdbuf.
  142. (packetizing_buffer_input): Allow up to PACKET_SLOP bytes in
  143. stackoutbuf.
  144. (packetizing_buffer_output): Use just BUFFER_DATA_SIZE + 2 for
  145. inbuf. Allow PACKET_SLOP + 4 extra bytes in stack_outbuf.
  146. Correct >= to > in test of incoming number of bytes. Use
  147. PACKET_SLOP in other tests.
  148. Fri Dec 12 10:27:08 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  149. * client.c (start_tcp_server): Revise comment to reflect
  150. SOCK_STRERROR and SOCK_ERRNO now being in use.
  151. Thu Dec 11 15:32:31 1997 Ian Lance Taylor <ian@cygnus.com>
  152. * client.c (init_sockaddr): Compile if HAVE_KERBEROS, as well as
  153. if AUTH_CLIENT_SUPPORT. Return a pointer to a struct hostent.
  154. (start_tcp_server): Clean up. Use init_sockaddr. Use
  155. SOCK_STRERROR and SOCK_ERRNO. Don't bind the socket.
  156. Generalize buffering code used by Kerberos encryption routines
  157. into a generic packetizing buffer. The new code in buffer.c is a
  158. modified version of the code removed from server.c.
  159. * buffer.c (struct packetizing_buffer): Define.
  160. (packetizing_buffer_initialize): New function.
  161. (packetizing_buffer_input): New static function.
  162. (packetizing_buffer_output): New static function.
  163. (packetizing_buffer_flush): New static function.
  164. (packetizing_buffer_block): New static function.
  165. (packetizing_buffer_shutdown): New static function.
  166. * buffer.h (packetizing_buffer_initialize): Declare.
  167. * server.c (struct krb_encrypt_data): Rename from
  168. krb_encrypt_buffer, and remove all fields not related to
  169. encryption.
  170. (krb_encrypt_buffer_initialize): Just call
  171. packetizing_buffer_initialize.
  172. (krb_encrypt_input): New static function.
  173. (krb_encrypt_output): New static function.
  174. (krb_encrypt_buffer_input): Remove.
  175. (krb_encrypt_buffer_output): Remove.
  176. (krb_encrypt_buffer_flush): Remove.
  177. (krb_encrypt_buffer_block): Remove.
  178. (krb_encrypt_buffer_shutdown): Remove.
  179. Wed Dec 10 15:39:44 1997 Ian Lance Taylor <ian@cygnus.com>
  180. * buffer.c (stdio_buffer_initialize): Correct formatting.
  181. Sun Dec 7 09:37:19 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  182. * sanity.sh (basicb-0d0): New test, for checkout on existing
  183. directory.
  184. Sat Dec 6 00:25:11 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  185. * sanity.sh (binwrap3): Clean up repository too. Clean up working
  186. directory with "rm -r" not "rm -rf".
  187. Thu Dec 4 17:11:18 1997 Larry Jones <larry.jones@sdrc.com>
  188. * subr.c (check_numeric): Don't reference argv[1] when argc is 1
  189. (should be argv[0]).
  190. * sanity.sh: Fix lines that look like conflict markers but aren't
  191. to prevent problems checking in.
  192. (binwrap3): Remove local CVSROOT when done so that later
  193. tests that expect to create it don't fail.
  194. Thu Dec 4 18:19:21 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  195. * cvs.h: Remove mempcpy definition. I think the polite way to
  196. describe my feelings about mempcpy is something like "we don't
  197. have agreement that it is a good idea".
  198. * rcs.c (truncate_revnum): Don't call it.
  199. * sanity.sh: Run multibranch2 test by default.
  200. (multibranch2): Use ${TESTDIR} a few places.
  201. (multibranch2-9): Accept "P file1" as well as "U file1".
  202. * sanity.sh: Don't add 1997 to the copyright notice. Add GPL
  203. terms. Add discussion of copyright issues.
  204. * rcs.c (truncate_revnum, truncate_revnum_in_place,
  205. compare_truncated_revnums): Reindent.
  206. 1997-12-04 Jim Meyering <meyering@na-net.ornl.gov>
  207. * subr.c (xstrdup): Use memcpy rather than strcpy.
  208. (compare_revnums): Declare parameters to be `const'.
  209. Remove unnecessary uses of xstrdup and corresponding frees.
  210. (increment_revnum): Declare parameter to be `const'.
  211. Use memcpy rather than strcpy.
  212. (gca): Declare parameters to be `const'.
  213. (check_numeric): Declare REV parameter to be `const'.
  214. (file_has_markers): Declare parameter to be `const'.
  215. (get_file): Declare `char*' parameters to be `const'.
  216. * run.c (run_exec): Declare `char*' parameters to be `const'.
  217. * cvs.h (mempcpy) [! HAVE_MEMPCPY]: Define it.
  218. Add `const' to types in several prototypes.
  219. * rcs.c (truncate_revnum): New function.
  220. (truncate_revnum_in_place): New function.
  221. (compare_truncated_revnums): New function.
  222. (max_rev): New function.
  223. (RCS_addbranch): Make BRANCH parameter `const'.
  224. Use the above functions rather than open-coding them.
  225. When BRANCH is a revision number, insert it *in order*
  226. in the sorted list of branch numbers, not at the end.
  227. Add assertion that insertion succeeds.
  228. * sanity.sh (multibranch2): Test for this.
  229. (Copyright): Add 1997.
  230. Dec 1997 Karl Fogel <kfogel@floss.red-bean.com>
  231. * wrapper.c (wrap_name_has): loop as far as wrap_count +
  232. wrap_temp_count, not wrap_count + wrap_saved_count, otherwise
  233. some wrappers get skipped.
  234. (wrap_matching_entry): same.
  235. * sanity.sh (binwrap3): new test, for import with
  236. CVSROOT/cvswrappers and .cvswrappers specifying -k 'b' options.
  237. 1997-11-30 Jim Meyering <meyering@na-net.ornl.gov>
  238. * client.c (send_a_repository): Strip trailing slashes from the name
  239. of the update directory. Otherwise, running `cvs update dir/' provokes
  240. this failure `protocol error: illegal directory syntax in dir/' when
  241. running in client/server mode.
  242. * hash.c (insert_before): New function derived from addnode.
  243. (addnode): Simply return insert_before.
  244. (addnode_at_front): Simply return insert_before.
  245. * hash.h (insert_before): Add prototype.
  246. * server.c (dirswitch): Compute `strlen(dir)' once and save it,
  247. rather than computing it four times. Also do s/illegal/invalid/ to
  248. this diagnostic: "E protocol error: illegal directory syntax in %s".
  249. Sun Nov 30 18:03:02 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  250. * admin.c: Fix comment (no longer a front-end to "rcs").
  251. * error.c, error.h (rcserror): Remove.
  252. * admin.c, rcs.c: Call error instead of rcserror. This changes
  253. the format of these messages from "rcs: <path>: error" to "cvs
  254. <command>: <path>: error". The former format wasn't quite what
  255. RCS printed anyway (because RCS would sometimes print "ci", "co",
  256. &c, not "rcs"), and preserving RCS's exact output probably is not
  257. a good idea anyway (because it will make people think that the
  258. error was caused by an external program). In two cases, I tidied
  259. up the message in a more drastic fashion ("cannot stat" in
  260. RCS_checkin and "could not diff" in RCS_delete_revs).
  261. * sanity.sh (basica-o2b, binfiles2-o1, admin-18, admin-22-o10,
  262. admin-22-o17): Look for "cvs <command>" not "rcs".
  263. * run.c, cvs.h (run_setup): Replace varargs nonsense with a single
  264. argument which gets parsed as the result of the vasprintf
  265. used to.
  266. * client.c, commit.c, logmsg.c, modules.c, rtag.c, tag.c, update.c,
  267. wrapper.c: Update callers, either to do the sprintf themself or to
  268. just call run_arg if it will do the job.
  269. * rcscmds.c: Likewise for call_diff_setup and callers.
  270. * run.c, cvs.h (run_args): Remove; nowhere used.
  271. Sat Nov 29 22:15:06 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  272. * options.h.in: Remove declaration of getwd; see lib/ChangeLog for
  273. rationale.
  274. 1997-11-29 Jim Meyering <meyering@na-net.ornl.gov>
  275. * update.c (checkout_file): Initialize `backup'.
  276. * diff.c (diff_fileproc): Initialize `tmp' and `fname'.
  277. * modules.c (do_module): Initialize `server_dir_to_restore'.
  278. (do_module): Initialize `value' in an else clause.
  279. * rcs.c (RCS_checkin): Initialize `commitpt'.
  280. (RCS_delete_revs): Initialize `revp'.
  281. (RCS_copydeltas): Always initialize `insertbefore'.
  282. * run.c (run_print): Define `outfn' even in error case.
  283. Mon Nov 24 17:28:50 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  284. * rcs.c (RCS_findlock_or_tip): Prototype.
  285. (RCS_checkin): Fix call to pass correct number of arguments.
  286. Sun Nov 23 10:34:03 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  287. * recurse.c (do_dir_proc): Move check for CVS/Repository and
  288. CVS/Entries to before where we call the direntproc.
  289. * client.c (send_dirent_proc): Remove code to check for
  290. CVS/Repository, now that recurse.c does it.
  291. * sanity.sh (conflicts3-18 through conflicts3-19): New tests, for this.
  292. Sat Nov 22 10:54:16 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  293. * recurse.c (do_dir_proc): Check that CVS/Repository and
  294. CVS/Entries exist.
  295. * sanity.sh (conflicts3-14 through conflicts3-17): New tests, for this.
  296. * client.c (send_fileproc): Send options field from
  297. vers->entdata->options not vers->options.
  298. * cvs.h (struct entnode): Add comment (options and timestamp must
  299. not be NULL).
  300. * sanity.sh (binfiles-9 through binfiles-13, binfiles-sticky5,
  301. keyword-17): Remove kludges for remote; tests for fix.
  302. * update.c (update_fileproc): Fix comment; direct checkout is
  303. still faster than patches for local but not for quite the
  304. same reasons.
  305. * add.c (add): Pass SEND_NO_CONTENTS to send_files.
  306. Wed Nov 19 18:25:03 1997 Mike Glendinning <mikeg@sequent.com>
  307. * update.c (patch_file_write): Missing cast provided.
  308. Wed Nov 19 15:57:59 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  309. * rcs.c (RCS_deltas): Solve trigraph problem (once and for all, I
  310. hope) with 3 calls to cvs_output.
  311. Wed Nov 19 01:52:57 1997 Andy Piper <andyp@parallax.co.uk>
  312. and Jim Kingdon <kingdon@harvey.cyclic.com>
  313. * classify.c (Classify_File), cvs.h (struct vers_ts), vers_ts.c
  314. (Version_TS): Clarify NULL versus "" for options in comments.
  315. * vers_ts.c (Version_TS): Treat "" the same way as NULL in options
  316. and vers_ts->options.
  317. * sanity.sh: New tests binfiles-sticky5 through binfiles-17 test
  318. for this.
  319. 1997-11-16 Karl Fogel <kfogel@floss.red-bean.com>
  320. * client.c (update_entries): parse server-sent entries line even
  321. in the case of "cvs export", because we need to know if -kb option
  322. is set.
  323. Init `options' to NULL like anything else.
  324. Tue Nov 18 09:20:29 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  325. * version.c: Change version number to 1.9.21.
  326. * Version 1.9.20.
  327. Mon Nov 17 14:35:31 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  328. * server.c (server_updated): If scratched_file and noexec are set,
  329. clean up so we don't get a "duplicate Scratch_Entry" warning
  330. later.
  331. * sanity.sh: New tests conflicts3-10 to conflicts3-13, for this.
  332. * sanity.sh (conflicts3): Don't allow "file1 was lost" messages
  333. here; I don't think CVS actually produced them, and they don't
  334. belong.
  335. Sun Nov 16 23:19:41 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  336. * sanity.sh: Accept either "U file1" or "P file1".
  337. Fri Nov 14 12:32:05 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  338. * rcs.c: Add comment about cleaning up ,foo, file on ^C.
  339. Fri Nov 14 11:56:29 1997 Andy Piper <andyp@parallax.co.uk>
  340. and Jim Kingdon <kingdon@harvey.cyclic.com>
  341. * filesubr.c (unlink_file_dir): Don't print trace message in the
  342. server.
  343. Fri Nov 14 11:28:55 1997 Jim Meyering and Jim Kingdon
  344. * rcs.c (RCS_getdatebranch): If the branch we are looking for
  345. doesn't exist, return a revision which matches the date, not
  346. just NULL.
  347. * sanity.sh (tagdate): New test, for this.
  348. Thu Nov 13 10:11:48 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  349. * sanity.sh (basicb-21): Fix comment which described a behavior
  350. which no longer exists.
  351. Wed Nov 12 16:24:45 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  352. Clean up infrastructure made unnecessary by RCS library:
  353. * rcscmds.c (diff_exec, diff_execv): Use literal "diff" not DIFF.
  354. * options.h.in (DIFF), rcs.h (RCS, RCS_CI, RCS_DIFF,
  355. RCS_RCSMERGE): Removed; no longer used.
  356. * commit.c (commit), patch.c (patch_fileproc),
  357. rcscmds.c (RCS_exec_rcsdiff), start of rcscmds.c: Update comments
  358. to reflect librarification of RCS.
  359. * options.h.in (RCSBIN_DFLT): Removed.
  360. * main.c, cvs.h (Rcsbin, free_Rcsbin): Removed.
  361. * main.c (main): Don't check RCSBIN environment variable. -b
  362. global option is now a noop.
  363. * cvs.h (RCSBIN_ENV): Removed.
  364. * expand_path.c (expand_variable): $RCSBIN is now an error.
  365. * mkmodules.c (config_contents): Remove RCSBIN.
  366. * parseinfo.c (parse_config): RCSBIN now a noop.
  367. * server.c (server): Don't put Rcsbin in PATH.
  368. Mon, 10 Nov 1997 Jim Kingdon
  369. * rcs.c (RCS_checkin): Actually, when we get a change text
  370. for a text file using get_file, we want text mode, although
  371. the reasons are kind of subtle (see comment).
  372. * rcs.c (RCS_checkin): Pass correct mode to get_file for
  373. binary files.
  374. * rcscmds.c: Declare vasprintf.
  375. Mon Nov 10 11:11:17 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  376. This fixes problems with windows-NT/run.c improperly quoting, and
  377. is cleaner anyway.
  378. * rcscmds.c (call_diff_setup, call_diff_arg, call_diff_add_arg,
  379. call_diff_argv, call_diff_argc, call_diff_argc_allocated): New
  380. functions/variables, lightly adapted from src/run.c.
  381. * cvs.h, run.c (call_diff, call_diff3): Move from here...
  382. * rcscmds.c: ...to here.
  383. Sun, 9 Nov 1997 Jim Kingdon
  384. * rcs.c (rcs_internal_unlockfile): Call rename_file not rename.
  385. This makes it work on NT again.
  386. Sun Nov 9 16:54:28 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  387. * sanity.sh (diffmerge2): Protect keywords against unwanted
  388. expansion. They got clobbered and the testcase stopped working
  389. when I checked it in.
  390. Fri Nov 7 13:23:38 1997 Karl Fogel <kfogel@floss.red-bean.com>
  391. and Jim Kingdon <kingdon@harvey.cyclic.com>
  392. * sanity.sh (diffmerge1, diffmerge2): new tests, for bugs, or
  393. potential bugs, in ../diff/analyze.c which were fixed by Paul
  394. Eggert's patch.
  395. Sun Nov 9 10:28:43 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  396. * rcs.c (RCS_settag): Reindent.
  397. * rcs.c (rcs_internal_lockfile): Fix typo (thow -> throw).
  398. Sat Nov 8 15:58:53 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  399. * sanity.sh (cvsadm): Remove most of the tests which tested
  400. CVS/Root. This takes the run time for the cvsadm tests from
  401. about 5 minutes 15 seconds to about 4 minutes 10 seconds with no
  402. significant loss in coverage.
  403. * rcs.c (rcs_internal_lockfile): Check for errors from system
  404. calls. If open() gives an error, don't muck with stat and errno
  405. (I don't know what the RCS code that this comes from was trying to
  406. do, but it clearly isn't accomplishing anything here).
  407. (RCS_rewrite, RCS_delete_revs): Check for errors from system calls.
  408. Sat Nov 1 14:21:29 1997 Michael L.H. Brouwer <michael@thi.nl>
  409. * rcs.c (RCS_checkin): Change type of bufsize from int to size_t.
  410. (RCS_delete_revs): Change type of bufsize and len from int to size_t.
  411. (RCS_getdeltatext): Change type of textlen from int to size_t.
  412. * rcs.h (struct deltatext): Change len from int to size_t to keep
  413. the compiler happy on systems where size_t is unsigned int.
  414. [This goes well beyond keeping the compiler happy; if sizeof
  415. (size_t) != sizeof (int), the old code was quite broken -kingdon]
  416. Sat Nov 1 14:21:29 1997 Michael L.H. Brouwer <michael@thi.nl>
  417. and Jim Kingdon <kingdon@harvey.cyclic.com>
  418. * rcs.c (RCS_checkin): When checking if we were holding the lock
  419. use delta->author instead of user since the latter might have been
  420. clobbered by a call to getcaller. This resulted in the failure of
  421. test basica-7.
  422. [I don't completely follow the scenario where it gets clobbered,
  423. it but sounds vaguely plausible and the replacement seems
  424. cleaner, precisely because it avoids allocation issues -kingdon]
  425. Wed Nov 5 20:16:12 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  426. * checkin.c, checkout.c, commit.c, cvs.h, import.c, login.c,
  427. main.c, update.c: Change FALSE to 0 and TRUE to 1 and replace
  428. monstrosities like "cvswrite == TRUE" with just "cvswrite". FALSE
  429. and TRUE sometimes conflicted with system headers (NextStep3.3?),
  430. but more to the point, good old 1 and 0 are fine and were used by
  431. most of CVS already.
  432. Tue Nov 4 12:19:28 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  433. * rcs.c (RCS_checkin, RCS_lock, RCS_unlock): Rename local variable
  434. quiet to checkin_quiet or some such, to avoid confusion with
  435. global variable quiet.
  436. * lock.c: Update comment to refer to add_rcs_file rather than "rcs
  437. -i".
  438. * rcs.h (struct rcsnode): Add comments for all fields.
  439. * rcs.c (RCS_delete_revs): Refuse to delete revisions which have
  440. symbolic names. Fix fencepost bug which caused us to sometimes
  441. check one more revision than we should for locks, branches, and
  442. this.
  443. (findtag): New function, to help above code.
  444. * admin.c (admin): Take out writelocks not readlocks. This has
  445. been a bug "forever", but may become more noticeable with
  446. rcs_internal_lockfile relying on the writelocks.
  447. Mon Nov 3 10:17:19 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  448. * rcs.c (RCS_rewrite): Don't write the file if noexec.
  449. * sanity.sh (basica, branches): Test for this.
  450. Sat Nov 1 10:01:56 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  451. * rcs.h (struct deltatext): Comment text and log fields.
  452. * admin.c (admin_fileproc): Call RCS_reparsercsfile not
  453. RCS_fully_parse. Don't muck with ->other field in RCSVers (it
  454. doesn't need to be set).
  455. * rcs.h, rcs.c (RCS_reparsercsfile): No longer static. No point
  456. in having this static when RCS_rewrite and RCS_fully_parse are not.
  457. * rcs.c (getdelta): Remove obsolete comment about not storing the
  458. newphrases from the deltas, since we now do.
  459. Sat Nov 1 10:01:56 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  460. and Paul Eggert
  461. * rcs.c (rcs_internal_lockfile): Clarify the comments about O_EXCL
  462. and such matters.
  463. Sat Nov 1 10:01:56 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  464. * rcs.c (RCS_delete_revs): Pass force_tag_match to RCS_settag.
  465. * sanity.sh (basica-o2a, basica-o2b): Test for this.
  466. 1997-11-01 Peter Brandstrom <d91-pbr@nada.kth.se>
  467. * sanity.sh: Use ${username} more places.
  468. Sat Nov 1 00:14:00 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  469. * rcs.c (rcs_internal_lockfile): Add comments about what we are
  470. trying to accomplish here (versus what RCS tries to accomplish).
  471. * rcs.c (RCS_parsercsfile_i): Clarify/expand comment about
  472. the purpose of having both this and RCS_reparsercsfile.
  473. (RCS_rewrite): Add comment about how this works.
  474. * admin.c (admin_fileproc): Add comment about call to
  475. RCS_fully_parse not RCS_reparsercsfile.
  476. * rcs.h: Comment on what delta_pos field of struct rcsnode is.
  477. Fri Oct 31 16:38:39 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  478. and Abe Feldman
  479. * client.c (update_entries): If UTIME_EXPECTS_WRITABLE, if
  480. necessary change the file to be writable temporarily to set its
  481. modification time.
  482. Thu Oct 30 17:42:59 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  483. * admin.c (admin): Deal with new :: syntax for ranges.
  484. * rcs.c, rcs.h (RCS_delete_revs): New arg inclusive (set for the old
  485. behavior, clear to enable new code).
  486. * admin.c (admin_fileproc): Set it if :, clear it if ::.
  487. * sanity.sh (basica, head, branches, log): Add tests for this feature.
  488. * admin.c (admin_fileproc): Clean up the error message which
  489. happens if one of the RCS_* functions returns an error status; it
  490. is confusing to say that "rcs" failed now that this is implemented
  491. internally.
  492. * sanity.sh (admin): Update accordingly.
  493. Wed Oct 29 07:07:36 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  494. * sanity.sh (admin-22-o24): New test, tests that admin -o
  495. correctly munged the deltatexts on a branch too.
  496. * rcs.c (RCS_delete_revs): If we are deleting an entire branch,
  497. delete the node in ->branches rather than setting the ->key to the
  498. bogus value NULL.
  499. * rcs.c (RCS_delete_revs): If "rev1" equals "branchpoint", then set
  500. "before" to the revision on the trunk that we branch from.
  501. * rcs.c (RCS_delete_revs): Don't set rev2 to revp->version (the
  502. code is missing an xstrdup, but it doesn't matter because rev2
  503. isn't used after this point).
  504. * sanity.sh (binfiles2-o2 to binfiles2-o4): New tests, for this.
  505. Tue Oct 28 19:30:05 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  506. * rcs.c (RCS_delete_revs): Restore code which passes rev2 to
  507. RCS_getbranchpoint if rev1 is NULL; it still makes sense for the
  508. non-trunk case. Fixes admin-22-o22 in testsuite.
  509. * sanity.sh (admin-18): Adjust to reflect "rcs failed" no longer
  510. being suppressed by global -q option.
  511. * rcs.c (RCS_delete_revs): If rev1 == NULL and rev2 is on the
  512. trunk, handle it the same way we do everything else--by swapping
  513. the two. This replaces the code which tried to kludge what we
  514. passed to RCS_getbranchpoint (which didn't work).
  515. * sanity.sh (binfiles2-o1 to binfiles2-o4): New tests, for this fix.
  516. * admin.c (admin_fileproc): Don't have -q global option suppress
  517. "rcs failed" message.
  518. 1997-10-28 Jim Kingdon
  519. * log.c (printlock_proc), rcs.c (putlock_proc): Prototype.
  520. * rcs.c (rcs_internal_lockfile): Only try to call fchmod if
  521. HAVE_FCHMOD is defined.
  522. Tue Oct 28 10:27:03 1997 Ian Lance Taylor <ian@cygnus.com>
  523. * rcs.c (RCS_deltas): Don't use \? in string if __STDC__ is not
  524. defined.
  525. * rcs.c (make_file_label): Remove extraneous `+'.
  526. Mon Oct 27 14:40:15 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  527. * status.c (status): Don't pass SEND_NO_CONTENTS to send_files.
  528. Sat Oct 25 00:33:57 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  529. * rcs.c (RCS_delete_revs): Use : not - for range in error message.
  530. * rcs.h: Add comment about '\0' in RCS fields.
  531. * rcs.c (getdelta): Add comment about branches and next field
  532. being mandatory.
  533. * rcs.c (RCS_reparsercsfile, RCS_deltas), sanity.sh (reserved):
  534. Reindent sections which were misindented as a result of recent
  535. changes.
  536. Fri Oct 24 10:22:15 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  537. * rcs.c (RCS_findlock_or_tip): Don't worry about file ownership
  538. and nonstrict locking when returning the default branch or head.
  539. The most conspicuous problem with the old code is that in the
  540. error case it would examine rstat.st_uid when it had not been
  541. set. For a discussion of more fundamental reasons, see comment.
  542. * admin.c (admin_fileproc): In handling -A, don't handle relative
  543. pathnames differently from absolute pathnames. See comment for
  544. rationale. If problem opening the file, give a nice error not a
  545. coredump.
  546. * sanity.sh (admin-19a-admin, admin-19a-log, admin-19a-fix):
  547. New tests, test for traditional "cvs admin -A" behavior with
  548. relative pathnames.
  549. * sanity.sh (admin-19a-nonexist): Test for the core dump fix.
  550. * sanity.sh (admin-22-o1): Look for ${PROG} not cvs.
  551. * sanity.sh (reserved-16): Remove commitinfo change with "cvs
  552. commit" not "cvs admin -o". In addition to commit being The Right
  553. Thing on general principles, cvs admin -o doesn't work because it
  554. doesn't rebuild the administrative file database.
  555. * update.c (patch_file): If the first revision does not exist in
  556. the RCS file, fall back to sending entire file. Fixes
  557. admin-22-o15 in make remotecheck.
  558. 1997-10-23 enami tsugutomo <enami@but-b.or.jp>
  559. * rcs.c (RCS_checkin): Unlink temporary files stored in variable
  560. `tmpfile' and `changefile'.
  561. Wed Oct 22 12:16:10 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  562. * rcs.c (rcs_lockfilename): Allocate enough memory for terminating
  563. '\0'.
  564. * admin.c (admin_fileproc): Don't support '-' for ranges in "cvs
  565. admin -o".
  566. (admin): Adjust comment.
  567. * rcs.h (RCSVers): New field other_delta.
  568. * rcs.c (free_rcsvers_contents): Also free other_delta.
  569. (getdelta): Read newphrases from deltas into other_delta field.
  570. (putdelta): Write those newphrases.
  571. * sanity.sh (rcs-8a): New test, for this fix.
  572. * admin.c (admin_fileproc): If "-b" without argument, then set
  573. branch to NULL, not "" (uncovered by rcs-8a test).
  574. * rcs.c (putrcsfield_proc): Add comment about how we (mis)handle
  575. values in newphrases.
  576. * sanity.sh (reserved): Instead of looking for rcslock.pl in CVS
  577. distribution, just use our own equivalent.
  578. * rcs.c (RCS_rewrite): Call ferror before fclose to avoid "Invalid
  579. argument" warnings.
  580. Mon Oct 20 00:30:16 1997 Tim Pierce <twp@twp.tezcat.com>
  581. [I removed a ChangeLog entry for a change to sanity.sh (editor),
  582. because the actual change was not made. With this change, CVS no
  583. longer runs RCS. I'll be checking in my cleanups shortly. -kingdon]
  584. Librarify `ci'.
  585. * rcscmds.c, cvs.h (RCS_checkin): Removed.
  586. * rcs.c, rcs.h (RCS_checkin, RCS_getbranchpoint, RCS_addbranch,
  587. RCS_findlock_or_tip): New functions. RCS_checkin completely
  588. rewritten to eliminate RCS 5.7; change `rcs' parameter from string
  589. to RCSNode, so we can update RCSNode without re-reading from
  590. disk.
  591. * checkin.c (Checkin): Updated RCS_checkin caller, moved RCS_parse
  592. call to before RCS_checkin.
  593. * import.c (add_rev): Updated caller.
  594. * commit.c (remove_file): Updated caller.
  595. (checkaddfile): Updated caller. Parse `rcsfile' after
  596. calling add_rcs_file. Free `rcsfile' instead of asserting it to
  597. be NULL.
  598. Librarify `rcs'.
  599. * rcscmds.c, cvs.h (RCS_exec_settag, RCS_exec_deltag,
  600. RCS_exec_setbranch, RCS_exec_lock, RCS_exec_unlock): Removed.
  601. * rcs.c (RCS_settag): Rewritten to eliminate RCS 5.7.
  602. * commit.c (checkaddfile): Call RCS_rewrite after calling RCS_settag.
  603. * import.c (add_tags): Same.
  604. * rtag.c (rtag_fileproc): Same.
  605. * tag.c (tag_fileproc): Same.
  606. * rcs.c (RCS_deltag): Rewritten to eliminate RCS 5.7. Remove
  607. `quiet' parameter, since this function no longer prints any output.
  608. * commit.c (remove_file): Update caller. Also call RCS_rewrite
  609. after RCS_deltag.
  610. * rtag.c (rtag_delete): Same.
  611. * tag.c (tag_fileproc): Same.
  612. * rcs.c (RCS_setbranch): Rewritten to eliminate RCS 5.7.
  613. * commit.c (remove_file): Call RCS_rewrite after calling RCS_setbranch.
  614. (fixbranch): Same.
  615. (lock_RCS): Same.
  616. * rcs.c (RCS_lock): Rewritten to eliminate RCS 5.7. Change third
  617. arg to mean `quiet' and not `noerr', permitting admin_fileproc to
  618. run RCS_lock verbosely.
  619. * commit.c (lock_RCS): Update callers; call
  620. RCS_rewrite after RCS_lock.
  621. (remove_file): Same. Call RCS_lock quietly.
  622. * import.c (add_rev): Same. Do not print `fork failed' error
  623. message, since we're no longer forking.
  624. * rcs.c (RCS_unlock): Rewritten to eliminate RCS 5.7. Change
  625. `noerr' arg to mean `quiet', permitting admin_fileproc to run
  626. RCS_unlock verbosely. Use notify_do when breaking another user's
  627. lock. Include "edit.h" for notify_do prototype.
  628. * checkin.c (Checkin): Update caller; use RCS_rewrite after RCS_unlock.
  629. * commit.c (unlockrcs): Same.
  630. * import.c (add_rev): Same.
  631. * rcs.c, rcs.h (RCS_getlocks, RCS_addaccess, RCS_delaccess,
  632. RCS_getaccess, RCS_delete_revs): New functions.
  633. (expand_keywords, RCS_lock, RCS_unlock): Use RCS_getlocks.
  634. * log.c (log_fileproc, log_version): Call RCS_getlocks. Don't add
  635. bogus ";locker" nodes to RCSVers nodes -- walk lock list with
  636. printlock_proc.
  637. (printlock_proc): New function.
  638. * admin.c (admin_fileproc): Largely rewritten: call internal RCS
  639. library functions instead of forking RCS processes.
  640. (admin, admin_fileproc): Obsolete -V option.
  641. (struct admin_data): Remove `version' member.
  642. * sanity.sh (admin-24): Remove -V test case.
  643. New functions for reading and writing RCS files.
  644. * rcs.h (struct deltatext, Deltatext): New types.
  645. (struct rcsversnode): New members `text' and `outdated'.
  646. (struct rcsnode): New members `access', `locks', `strict_locks',
  647. `comment', and `desc'.
  648. * rcs.c (RCS_reparsercsfile, expand_keywords): Use new RCSNode members.
  649. (free_rcsnode_contents): Free them.
  650. * log.c (log_fileproc): Use new RCSNode members instead of ->other.
  651. * rcs.c (getdelta, RCS_getdeltatext, freedeltatext, do_locks,
  652. RCS_putadmin, RCS_putdtree, RCS_putdesc, putdelta,
  653. putrcsfield_proc, putsymbol_proc, RCS_copydeltas, putdeltatext,
  654. RCS_rewrite, getrevnum, rcs_internal_lockfile,
  655. rcs_internal_unlockfile, rcs_lockfilename): New functions.
  656. (RCS_reparsercsfile): Use getdelta, making sure fp is positioned
  657. correctly before calling it. Skip `head' and `branch' nodes: we
  658. have already parsed them, and they were being added incorrectly to
  659. rcs->other. Do not signal error if the RCS file has an empty
  660. delta tree; this made it impossible for RCS_checkin to perform an
  661. initial checkin. Remove `all' parameter; always store all RCS
  662. fields.
  663. (RCS_fully_parse, RCS_gettag, RCS_getbranch, RCS_getdate,
  664. RCS_getdatebranch, RCS_getrevtime, RCS_symbols, translate_symtag,
  665. RCS_isdead, RCS_getexpand, RCS_checkout, annotate_fileproc):
  666. Update all callers to remove `all' parameter.
  667. (getrcskey): Do not append trailing whitespace to a value. This
  668. corrupted some log fields and wrecked some sanity.sh test cases.
  669. (free_rcsvers_contents): New function.
  670. (rcsvers_delproc): Call it.
  671. * rcs.h (NODELTA): Removed symbol; now obsolete (since RCSNodes
  672. do not go stale).
  673. * import.c (add_rev): Removed NODELTA reference.
  674. * rcs.c (RCS_reparsercsfile, RCS_checkout, RCS_settag, RCS_deltag,
  675. RCS_setbranch, RCS_lock, RCS_unlock, RCS_deltas): Removed NODELTA
  676. references.
  677. Miscellaneous changes to support RCS librarification and fix some bugs.
  678. * subr.c, cvs.h (line2argv): Add `sepchars' argument.
  679. * modules.c (cat_module, admin_fileproc): Update all callers.
  680. * subr.c, cvs.h (compare_revnums, increment_revnum): New functions.
  681. (make_message_rcslegal): Strip whitespace from end of
  682. lines and end of string, a la `cleanlogmsg' in RCS 5.7.
  683. (get_file): Terminate buf with \0, extending it if
  684. necessary. Read from stdin if `name' arg is NULL.
  685. * admin.c (admin_fileproc): Call get_file to read -t arg from stdin.
  686. * error.c, error.h (rcserror): New function, used everywhere.
  687. * hash.c, hash.h (addnode_at_front): New function.
  688. * rcs.c (RCS_settag, RCS_lock): Call it.
  689. * import.c, cvs.h (expand_at_signs): Make extern.
  690. * rcs.c (putrcsfield_proc, RCS_putadmin, RCS_putdesc,
  691. putdeltatext): Call it.
  692. * rcs.c (make_file_label): Use last_component to get file's basename.
  693. * sanity.sh (srcdir): New variable.
  694. (rcs-7): Remove newphrase warning, no longer produced by CVS.
  695. (rcs-8): Permit random whitespace around newphrase fields.
  696. (admin-22): New test cases for -o options: admin-22-o{1..23}.
  697. (reserved): New test cases for rcslock.pl: reserved-{8..16}.
  698. Tue Oct 21 16:48:32 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  699. * tag.c (tag_check_valid): Add comment about locking or lack
  700. thereof.
  701. 1997-10-20 Jim Kingdon <kingdon@harvey.cyclic.com>
  702. * version.c: Change version number to 1.9.19.
  703. 1997-10-19 Jim Kingdon
  704. * Version 1.9.18.
  705. Wed Oct 15 15:21:43 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  706. * sanity.sh (username): Add '-' to characters allowed in user name.
  707. * rcscmds.c (diff_exec): Remove item about external diff
  708. programs. It doesn't really belong here now that diff is
  709. librarified and TODO #191 now mentions this.
  710. * checkout.c (checkout_proc): Add comment about assuming '/' is
  711. the only path separator.
  712. * options.h.in: Fix thinko (CVS/Repository -> CVS/Root).
  713. Mon Oct 13 22:46:03 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  714. * commit.c (commit): Add comment about CVS_BADROOT and command
  715. other than "commit".
  716. 1997-10-11 Noel Cragg <noel@swish.red-bean.com>
  717. * options.h.in: RELATIVE_REPOS has been checked for bitrot -- it
  718. now works again. Change the comment before the #define to say
  719. that we'll be switching to it soon.
  720. * sanity.sh (basicb-1, basicb-1a): update dotest strings to match
  721. no matter if we're running with RELATIVE_REPOS defined or not.
  722. (basicb-9b, basicb-9c): same.
  723. * sanity.sh (basicb-9b, basicb-9c): modified tests, since the
  724. checkout.c fix changes the way this test module is checked out.
  725. (basicb-9d, basicb-9e, basicb-9f): new tests, same.
  726. (basicb-18): modify test, same.
  727. (cvsadm): new set of exhaustive tests to check the contents of
  728. CVS/Root and CVS/Repository files under various conditions. As a
  729. side effect, it tests the behavior of the "-d" flags (command line
  730. and modules file).
  731. (modules3-7e through modules3-7h): removed, since these tests were
  732. a small subset of what is tested in the new cvsadm section.
  733. (modules-1b, modules-1c): same.
  734. (modules-2b, modules-2c): same.
  735. (modules-3b, modules-3c, modules-3e, modules-3f): same.
  736. * create_adm.c (Create_Admin): be a bit more verbose when using
  737. trace mode.
  738. * checkout.c (checkout_proc): rewrote the code that sets the where
  739. variable and the code that matches directory names with repository
  740. directories. This fixes a long-standing bug in CVS. (It used to
  741. be the case that "cvs co -d foo <mod1> <mod2>" would not properly,
  742. where <mod1> and <mod2> where defined in the modules file. While
  743. the first module would be checked out correctly, the second would
  744. be checked out under the name of the directory to which the module
  745. referred rather than the module name!). This fix also allows us
  746. to check out things into directories that are more than one deep
  747. (e.g. "cvs -d foo/bar/baz co blah" will now work).
  748. (checkout): remove code that performed a CHDIR if the
  749. number of arguments specified was greater than one, since it's no
  750. longer necessary. Also remove the code that prevented us from
  751. doing "cvs co -d <dir1>/<dir2>" without <dir1> existing, since
  752. checkout_proc handles things correctly now.
  753. * cvs.h: fix typo.
  754. * rtag.c (rtag): reformat so that we don't run over 80 characters
  755. per line.
  756. (rtag_dirproc): same.
  757. * sanity.sh: change all old test cases to use pass and fail
  758. functions rather than doing some combination of echo and exit
  759. themselves.
  760. * commit.c (commit_direntproc): remove the "warm fuzzy" -- this
  761. code never gets called when running in client/server mode, and we
  762. should have CVS' output match as much as possible between the two
  763. modes. Moreover, there is no analogous place to put this same
  764. message when we're running in c/s mode.
  765. (find_direntproc): print the same "fuzzy" as in check_direntproc
  766. so that local and c/s mode have the same messages.
  767. * sanity.sh (187a3): update test case to reflect the above.
  768. Thu Oct 9 10:57:02 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  769. * parseinfo.c (parse_config): Add comment about compatibility
  770. issues with adding keywords.
  771. Wed Oct 8 16:40:37 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  772. * recurse.c (do_dir_proc), commit.c (check_direntproc,
  773. commit_direntproc, find_dirent_proc): If this
  774. directory doesn't exist, skip it.
  775. * diff.c (diff_dirproc): Reindent.
  776. * sanity.sh (deep-4b0a, deep-4b0b): Check for this fix.
  777. Thu Sep 26 16:30:00 1997 Larry Jones <larry.jones@sdrc.com>
  778. and Jim Kingdon <kingdon@harvey.cyclic.com>
  779. * update.c (checkout_file): Don't set timestamp in noexec mode.
  780. * vers_ts.c (Version_TS): Add comment about ignoring errors from
  781. utime.
  782. * sanity.sh (conflicts3): New tests, for this fix.
  783. Fri Oct 3 09:47:04 1997 Noel Cragg <noel@swish.red-bean.com>
  784. * sanity.sh (168): use PROG instead of CVSBASE, since they are
  785. equal.
  786. (importb-2): refer to PROG instead of "cvs" in error message.
  787. * add.c (add): use PROGRAM_NAME in the error message rather than
  788. "cvs".
  789. * classify.c (Classify_File): same.
  790. * commit.c (find_fileproc): same.
  791. * sanity.sh: change all add notification messages to refer to PROG
  792. rather than "cvs". Fixed nasty quoting in several places at the
  793. same time, replacing older "'command'" forms with newer
  794. ".command." for simplicity.
  795. Sat Sep 27 01:37:10 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  796. * sanity.sh (rcslib-merge-8): Accept "P file1" as well as "U file1".
  797. Fri Sep 26 22:24:10 1997 Noel Cragg <noel@swish.red-bean.com>
  798. * create_adm.c (Create_Admin): assign our duplicate pointer `cp'
  799. after the xrealloc of `reposcopy' because the latter might have
  800. changed addresses.
  801. Fri Sep 26 14:25:59 1997 Tim Pierce <twp@twp.tezcat.com>
  802. * run.c (call_diff): Don't reset optind; this is done by diff_run now.
  803. Librarify rcsmerge/diff3.
  804. * rcscmds.c, cvs.h (RCS_merge): Rewritten from scratch: check out
  805. selected files and diff3 them. Take new `rcs' and `workfile'
  806. arguments, so we can resolve symbolic tags and manipulate the
  807. working file.
  808. * update.c (merge_file, join_file): Update RCS_merge calls.
  809. * run.c, cvs.h (call_diff3): New function.
  810. * sanity.sh (rcslib): New tests, rcslib-merge-{1..13}.
  811. Fri Sep 26 22:59:56 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  812. * create_adm.c (Create_Admin): Fix thinko in Noel's change: keep
  813. track of the originally allocated "cp" and free it, rather than
  814. calling free on a pointer which may point halfway into the allocation.
  815. * repos.c (Sanitize_Repository_Name): Per HACKING, assert that
  816. repository != NULL, rather than just silently returning if NULL.
  817. Reindent a line.
  818. Fri Sep 26 15:40:00 1997 Noel Cragg <noel@swish.red-bean.com>
  819. * sanity.sh (modules): add tests modules-[123]* that make sure the
  820. administrative files get rebuilt in various cases.
  821. * add.c (combine_dir): removed function, since we no longer need
  822. to worry about stripping the "." path element out. Changed the
  823. two callers to simply concatenate their two arguments.
  824. * recurse.c (do_dir_proc): don't bother trying to strip off "." in
  825. the repository name since the below changes fix that behavior --
  826. simply concatenate the repository and directory names together.
  827. * checkout.c (checkout_proc): sanitize the repository name after
  828. constructing it (we may create "/path/to/repos/.", but we don't
  829. want that to be passed around). Remove the code that tacks on
  830. "/." when constructing top_repository, since the below changes fix
  831. that behavior. Added comments to the part of this function that
  832. builds administrative files.
  833. * sanity.sh (basicb): now that the below weirdness is fixed, the
  834. extra "." path element in test basicb-0c doesn't appear when a
  835. top-level file is checked out. Remove it from the expect string.
  836. * create_adm.c (Create_Admin): now that the repository name isn't
  837. floating around with "." as the last path element, make creation
  838. of the top-level administrative files a special case -- save the
  839. repository name as "/path/to/repos/." Why? I considered not
  840. including the "." but didn't know how it would affect the remote
  841. protocol when RELATIVE_REPOS was defined (do we have a way of
  842. sending "" via the protocol?). After I make sure that the
  843. RELATIVE_REPOS patches still work, I'll check the "" possibility
  844. so we don't have to have a this special case.
  845. * repos.c (Sanitize_Repository_Name): new function that removes
  846. (if present) the trailing slash and "." component from the
  847. repository name. Many routines break if we don't guarantee this.
  848. See the comment before the function for complete information.
  849. (Name_Repository): call Sanitize_Repository_Name before returning
  850. the value.
  851. * cvs.h: add prototype for Sanitize_Repository_Name.
  852. Fri Sep 26 14:19:25 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  853. * cvs.h (CVS_CMD_USES_WORK_DIR): Fix comment (the sense of the
  854. flag is not reversed from what it would seem; when I thought so it
  855. was because I was misreading the lookup_command_attribute code).
  856. Thu Sep 25 23:14:47 1997 Noel Cragg <noel@swish.red-bean.com>
  857. * parseinfo.c (Parse_Info): fix typo in the trace message.
  858. Thu Sep 25 14:22:54 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  859. * build_src.com: Also link with diff.olb.
  860. * main.c (Make_Date): If gmtime returns NULL, try localtime.
  861. Wed Sep 24 19:18:40 1997 Noel Cragg <noel@swish.red-bean.com>
  862. * checkout.c (checkout): fix typo in comment.
  863. Wed Sep 24 08:31:46 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  864. * update.c (patch_file): Revise comments about diff -a now that
  865. diff is librarified.
  866. Sun Sep 21 21:28:26 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  867. * run.c (call_diff): Sleep for a second, in hopes of helping with
  868. out of order bugs.
  869. Sat Sep 20 07:19:18 1997 Tim Pierce <twp@twp.tezcat.com>
  870. Integrate diff library into CVS.
  871. * run.c, cvs.h (call_diff): New function.
  872. * rcscmds.c (diff_exec, diff_execv): Get diffs from call_diff
  873. instead of running diff as a subprocess.
  874. * Makefile.in (cvs): Add ../diff/libdiff.a.
  875. * diff.c (longopts, diff): Use 131 for --ifdef, fixing Jim's thinko
  876. (using 147 for both --side-by-side and --ifdef).
  877. * sanity.sh (rcslib): Added tests rcslib-diffrgx-*, to test
  878. handling of regex diff options.
  879. 1997-09-21 Jim Kingdon <kingdon@harvey.cyclic.com>
  880. (Note that this requires that DIFF support -L. I'll be checking
  881. in a fix to that in a moment, but I wanted separate checkins in
  882. case that helps with clarity).
  883. Tweaks to rcsdiff librarification:
  884. * sanity.sh (rcslib): Change "cvs" to "${PROG}" and subcommand
  885. names (e.g. "add") to "[a-z]*". Former should deal with ${testcvs}
  886. being "cvs.old" or something; latter fixes make remotecheck.
  887. * rcs.c (make_file_label): Take into account strlen (rev) when
  888. allocating space. Removes a FIXME and probably fixes a buffer
  889. overrun security hole.
  890. * rcscmds.c (RCS_exec_rcsdiff): Remove #if 0'd code to call
  891. rcsdiff. Tim says he has compared the new code with rcsdiff code
  892. and is confident that the behavior is preserved, so we need to
  893. nuke the comment which says this has not been done. #if 0 isn't
  894. really a very good way to document the way it used to work anyway;
  895. the old code is still in CVS.
  896. * diff.c: Add comment about rcsdiff options that we don't support,
  897. which Tim had sent in email. Remove -T and -y, as the
  898. previous meaning had been very confused.
  899. 1997-09-21 Tim Pierce <twp@xochi.tezcat.com>
  900. Librarify rcsdiff.
  901. * diff.c (have_rev1_label, have_rev2_label): New variables.
  902. (diff): Generate file labels with make_file_label if necessary;
  903. pass labels, revisions and working file name to RCS_exec_rcsdiff.
  904. * rcscmds.c, cvs.h (RCS_exec_rcsdiff): Completely revised function
  905. to eliminate rcsdiff dependency, based on patch from JimK.
  906. (diff_execv): New function, to exec diff with explicit -L args.
  907. * rcs.c, rcs.h (make_file_label): New function.
  908. (RCS_output_diff_options): New function.
  909. * sanity.sh (rcslib): New test.
  910. Fri Sep 19 15:08:08 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  911. * rcs.c (RCS_nodeisbranch): Assert that RCS is non-NULL.
  912. * commit.c (remove_file), rcs.c (RCS_getversion), rtag.c
  913. (rtag_fileproc), status.c (status_fileproc, tag_list_proc), tag.c
  914. (tag_fileproc): Call RCS_nodeisbranch not RCS_isbranch
  915. in contexts where we know the RCS argument is non-NULL.
  916. * commit.c (find_fileproc): Pass tag not NULL to Version_TS for
  917. the tag.
  918. * vers_ts.c (Version_TS): Improve (somewhat) the introductory
  919. comment.
  920. * sanity.sh (editor): New test editor-9 tests for above fix.
  921. Renumber/tweak surrounding tests to fit.
  922. * log.c (log_version): If p->data is NULL, it is an empty log
  923. message.
  924. * sanity.sh (rcs-14): New test, tests for above fix (previously
  925. this was a coredump).
  926. Thu Sep 18 08:45:05 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  927. * sanity.sh (rcs-7): Fix stupid ${TESTDIR} omission.
  928. Wed Sep 17 16:27:41 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  929. * sanity.sh (rcs): New tests rcs-5 through rcs-13 test for
  930. getdate.y fix (rcs-12 and rcs-13 both failed with the buggy
  931. getdate.y).
  932. Tue Sep 16 00:07:17 1997 Jim Kingdon <kingdon@harvey.cyclic.com>
  933. * sanity.sh (editor): Clean up first-dir at end of test.
  934. * sanity.sh (editor): New tests test do_editor.
  935. * commit.c (commit): For the client, if we got the log message