Mercurial > hg > xemacs-beta
diff man/internals/internals.texi @ 802:19dfb459d51a
[xemacs-hg @ 2002-04-03 10:47:37 by ben]
fix tty problem et al
internals/internals.texi: Add section on correctly merging a branch back into the trunk.
console-tty.c, eval.c, event-unixoid.c, file-coding.c, file-coding.h, lisp.h, print.c, sysdep.c: Fix data corruption error in print.c from print_depth becoming
negative. Borrow primitives internal_bind_int,
internal_bind_lisp_object from my stderr-proc ws, soon to be
integrated; use them to properly bind print_depth et al.
First fix for TTY problem. The basic problem is I switched things
so that the TTY I/O is filtered through a coding system, for the
support of kterm and such, that speak JIS or similar
encodings. (#### I ***swear*** I had this working way back in
19.12.) Anyway, this introduced buffering issues, in which instead
of one char being read, it tried to read 1024 chars. I tried
setting the stdin descriptor non-blocking, but it doesn't appear
to work on Cygwin. (#### Andy, do you know anything about this?)
So I fixed it elsewhere. If you get weirdness on the TTY, look in
console-tty.c and see how it gets the coding system; maybe there's
a way to change it (and if not, there should be!).
Also fix warning in sysdep.c.
author | ben |
---|---|
date | Wed, 03 Apr 2002 10:47:52 +0000 |
parents | 943eaba38521 |
children | 48eed784e93a |
line wrap: on
line diff
--- a/man/internals/internals.texi Mon Apr 01 03:59:04 2002 +0000 +++ b/man/internals/internals.texi Wed Apr 03 10:47:52 2002 +0000 @@ -117,6 +117,7 @@ * The XEmacs Object System (Abstractly Speaking):: * How Lisp Objects Are Represented in C:: * Rules When Writing New C Code:: +* CVS Techniques:: * A Summary of the Various XEmacs Modules:: * Allocation of Objects in XEmacs Lisp:: * Dumping:: @@ -154,7 +155,9 @@ * General Coding Rules:: * Writing Lisp Primitives:: +* Writing Good Comments:: * Adding Global Lisp Variables:: +* Proper Use of Unsigned Types:: * Coding for Mule:: * Techniques for XEmacs Developers:: @@ -166,6 +169,10 @@ * General Guidelines for Writing Mule-Aware Code:: * An Example of Mule-Aware Code:: +CVS Techniques + +* Merging a Branch into the Trunk:: + A Summary of the Various XEmacs Modules * Low-Level Modules:: @@ -1839,7 +1846,7 @@ nothing unless the corresponding configure error checking flag was specified. -@node Rules When Writing New C Code, A Summary of the Various XEmacs Modules, How Lisp Objects Are Represented in C, Top +@node Rules When Writing New C Code, CVS Techniques, How Lisp Objects Are Represented in C, Top @chapter Rules When Writing New C Code @cindex writing new C code, rules when @cindex C code, rules when writing new @@ -3096,7 +3103,97 @@ add an INIT_LRECORD_IMPLEMENTATION call to @code{syms_of_@var{foo}.c} @end enumerate -@node A Summary of the Various XEmacs Modules, Allocation of Objects in XEmacs Lisp, Rules When Writing New C Code, Top +@node CVS Techniques, A Summary of the Various XEmacs Modules, Rules When Writing New C Code, Top +@chapter CVS Techniques +@cindex CVS techniques + +@menu +* Merging a Branch into the Trunk:: +@end menu + +@node Merging a Branch into the Trunk +@section Merging a Branch into the Trunk +@cindex merging a branch into the trunk + +@enumerate +@item +If you haven't already done a merge, you will be merging from the branch +point; otherwise you'll be merging from the last merge point, which +should be marked by a tag, e.g. @samp{last-sync-ben-mule-21-5}. In the +former case, create the last-sync tag, e.g. + +@example +crw rtag -r ben-mule-21-5-bp last-sync-ben-mule-21-5 xemacs +@end example + +(You did create a branch point tag when you created the branch, didn't +you?) + +@item +Check everything in on your branch. + +@item +Tag your branch with a pre-sync tag, e.g. + +@example +crw rtag -r ben-mule-21-5 ben-mule-21-5-pre-feb-20-2002-sync xemacs +@end example + +Note, you need to use rtag and specify a version with @samp{-r} (use +@samp{-r HEAD} if necessary) so that removed files are handled correctly +in some obscure cases. See section 4.8 of the CVS manual. + +@item +Tag the trunk so you have a stable place to merge up to in case people +are asynchronously committing to the trunk, e.g. + +@example +crw rtag -r HEAD main-branch-ben-mule-21-5-syncpoint-feb-20-2002 xemacs +crw rtag -F -r main-branch-ben-mule-21-5-syncpoint-feb-20-2002 next-sync-ben-mule-21-5 xemacs +@end example + +Use -F in the second case because the name might already exist, e.g. if +you've already done a merge. We make two tags because one is a +permanent mark indicating a syncpoint when merging, and the other is a +symbolic tag to make other operations easier. + +@item +Make a backup of your source tree (not totally necessary but useful for +reference and peace of mind): Move one level up from the top directory +of your branch and do, e.g. + +@example +cp -a mule mule-backup-2-23-02 +@end example + +@item +Now, we're ready to merge! Make sure you're in the top directory of +your branch and do, e.g. + +@example +cvs update -j last-sync-ben-mule-21-5 -j next-sync-ben-mule-21-5 +@end example + +@item +Fix all merge conflicts. Get the sucker to compile and run. + +@item +Tag your branch with a post-sync tag, e.g. + +@example +crw rtag -r ben-mule-21-5 ben-mule-21-5-post-feb-20-2002-sync xemacs +@end example + +@item +Update the last-sync tag, e.g. + +@example +crw rtag -F -r next-sync-ben-mule-21-5 last-sync-ben-mule-21-5 xemacs +@end example +@end enumerate + + +@node A Summary of the Various XEmacs Modules, Allocation of Objects in XEmacs Lisp, CVS Techniques, Top @chapter A Summary of the Various XEmacs Modules @cindex modules, a summary of the various XEmacs