RFC: HOWTO: Cherrypicking patches from "xemacs"
16 years, 8 months
Stephen J. Turnbull
Recently the issue of how to cherrypick patches from "xemacs" came up
(see the thread "Re: cython-mode.el"). I propose to add the following
to the "hg-access.html" page to address the need. Comments welcome.
========================================================================
Cherrypicking from the review queue
-----------------------------------
Users of the "xemacs-beta" branch may occasionally want to cherrypick
a specific patch from another branch because it hasn't landed in
"xemacs-beta" yet. This could be due to ordinary lags for review, or
perhaps it has been queried and the discussion is dragging out, or
perhaps it was vetoed. Anyway, you want it and you want it now.
First you need to identify the patch. You will need to get a checkout
of the "xemacs" branch. All patches intended for the mainline will go
there. It's probably a good idea to check it out as a sibling of your
"xemacs-beta" checkout. Once you have a checkout of the "xemacs"
branch, use the "hg -v log" command *in that workspace* to view the
ChangeLogs and identify the patch of interest. (Use "hg help log" to
get information about options to limit or filter output.) It will
look something like this:
------------------------------------------------------------------------
changeset: 4433:1bf48c59700e
tag: tip
user: Stephen J. Turnbull <stephen(a)xemacs.org>
date: Wed Mar 05 01:12:53 2008 -0800
files: src/ChangeLog src/glyphs-gtk.c
description:
Fix old use of rvalue on lhs to placate gcc >4.0.
<d9ae65bd0803040244s13437988ka08bae763d28801f(a)mail.gmail.com>
------------------------------------------------------------------------
In the following, REV stands for the hash code following the colon in
the "changeset" field (in the example, "1bf48c59700e").
We assume that the "xemacs" and "xemacs-beta" workspaces are siblings,
and furthermore that those are the names you gave them. Your
workspace should be "hg status" clean (no pending modifications or
file additions or removal reported). On Unix, a simple method is the
following. From "xemacs-beta", do
$ ( cd ../xemacs; hg export REV ) | patch -p1
and you're done. patch will probably complain that it was unable to
patch the ChangeLogs, but you don't really care about them. Just
throw away the .rej and .orig files. If patch complains about any
other files, revert to your "clean" state with "hg update -C", and use
the "transplant" method described below -- a non-trivial merge is
needed. (It probably doesn't do much by itself, but in this case you
really do want the additional history it generates in Mercurial.)
The advantage to the "patch" method just described is that when the
patch lands on the "xemacs-beta" branch, there is no Mercurial history
of what you've done. Regardless of whether there is history or not,
when you next "hg pull", Mercurial *may report a conflict* because the
files are locally changed in the same place. If there is no history,
you just do "hg update -C" and Mercurial will overwrite the cherry-
picked change with the same change from the "xemacs-beta" repo,
which is exactly what you want, and you have a clean history.
This method works best if you do not have local modifications "close"
to the patch you are cherrypicking.
An alternative method is to use the Mercurial "transplant" extension.
First, activate the "transplant" extension by putting this into your
~/.hgrc:
[extensions]
hgext.transplant=
Now change to the "xemacs-beta" workspace and do:
$ hg branch cherries # label your local branch
# omit if you already have a cherries branch
$ hg branch reviewq # a branch to hold the review queue patches
# $ hg update -C reviewq # instead of hg branch once the reviewq
# branch has been created
$ hg pull ../xemacs # get the patches
# merely pulling does not change the default source
# maybe there's some way?
$ hg update -C cherries # back to branch
$ hg transplant --log REV # remember REV from the log above?
for every revision you want to cherry-pick. (The --log option adds a
cross-reference to REV in the log message for the commit that
transplant creates.)
Another way to use the transplant extension avoids having a local copy
of the review queue repo "xemacs". In the "xemacs-beta" workspace, do:
$ hg branch cherries
# $ hg update -C cherries # instead of hg branch once the cherries
# branch has been created
$ hg transplant --log --source http://hg.debian.org/hg/xemacs/xemacs REV
In this case you can get the REV information by visiting
http://hg.debian.org/hg/xemacs/xemacs in an ordinary web browser.
The transplant extension does update the Mercurial history of the
branch. According to the transplant documentation [at selenic.com,
url to be provided], this can be annoying if you repeatedly
cherrypick, but not all of the patches you want make it into
"xemacs-beta" in a timely fashion, as Mercurial will repeatedly
complain about conflicts. So, use of the transplant extension may be
somewhat more complex than just using patch. On the other hand, if
you have other local modifications, then even if you mess up, you'll
have all history needed to reconstruct your favorite configuration of
XEmacs in the workspace.
========================================================================
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-beta
Re: Question about tramp
16 years, 8 months
Rick Rankin
----- Original Message ----
> From: Michael Albinus <mxxx@yyy>
> To: Rick Rankin <xxx@yyy>
> Cc: XEmacs Beta <xxx@yyy>
> Sent: Thursday, March 6, 2008 1:15:25 AM
> Subject: Re: Question about tramp
>
> `\'' stands for the end of the buffer, not for an additional
> apostroph. Could you, please, show the contents of the Tramp buffer
> when Tramp hangs?
>
Interesting. I thought I knew the XEmacs regex syntax pretty well. Live and learn... Anyway, all that's in the tramp buffer is
[p15254@repo ~]$ [p15254@repo ~]$
Doesn't seem like much to go on. FWIW, the contents of the tramp debug buffer are
# Opening connection at repo using scp...
# Waiting for prompts from remote shell
# Waiting 60s for prompt from remote shell
# Found remote shell prompt.
# Initializing remote shell
$ unset HISTORY
[p15254@repo ~]$ [p15254@repo ~]$ [[Regexp `\(^[^#$%>
]*[#$%>] *\|^[^#$%>]*[#$%>] *\)\'' not found in 60 secs]]
Please let me know if I can provide any additional info.
--Rick
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-beta
Question about tramp
16 years, 8 months
Rick Rankin
I've been trying to get tramp working on my Cygwin build of XEmacs on my laptop so that I can remotely edit some files on my Linux boxes at work. What had been happening is that tramp would issue a command like (I don't recall the exact command) 'stty -icrnl
kill ^U', then hang waiting for the next prompt. When I looked at tramp's debug buffer, it (tramp) was waiting for a regex that made no sense to me. It didn't match any of the configurable regexs that I could see, then I realized that it was being constructed in tramp.el from a couple of different regular expressions. What was odd was that an extra single quote (apostrophe) was being added to the end of the constructed regular expression. When I removed the (seemingly extraneous) apostrophe and recompiled tramp.el, everything magically worked. Here's the diff:
--- tramp.el.orig 2007-06-11 00:18:04.000000000 -0700
+++ tramp.el 2008-03-04 13:24:26.193564400 -0700
@@ -6063,7 +6063,7 @@
and `tramp-shell-prompt-pattern'."
(tramp-wait-for-regexp
proc timeout
- (format "\\(%s\\|%s\\)\\'"
+ (format "\\(%s\\|%s\\)"
shell-prompt-pattern tramp-shell-prompt-pattern)))
Can anyone tell me if that extra apostrophe actually belongs there and if so, why? I don't see how it could work unless you're prompt actually ends with an apostrophe.
Thanks,
--Rick
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-beta
New modeline glitches under cygwin
16 years, 8 months
Vin Shelton
Greetings -
Sometime between 2008-02-15 and 2008-02-28, the 21.5 modeline got
messed up on my cygwin build. Please see the attached images.
Each of these images was taken immediately after starting a -vanilla
xemacs on cygwin . Please notice the white background behind the
letters on the 2008-02-28 version. I don't see this behavior on
Linux.
Here is the Installation file for the 2008-02-28 version. The
2008-02-15 version is similar.
uname -a: CYGWIN_NT-5.1 vshelton-pc2 1.5.25(0.156/4/2) 2008-02-22
13:58 i686 Cygwin
../../src/xemacs-21.5-test-2008-02-28-mule/configure
'--prefix=/usr/local/xemacs-21.5-test-2008-02-28-mule' '--with-cflags=
-Os -malign-double -pipe -ffast-math' '--with-site-prefix='
'--with-infopath=/usr/local/info' '--with-dialogs' '--with-widgets'
'--with-sound=native'
'--with-package-path=/e/XEmacs/site-packages::/e/XEmacs/xemacs-packages'
'--enable-pdump' '--enable-bignum=gmp' '--with-default-eol-detection'
'--enable-mule' '--without-xim' '--without-x' '--with-dragndrop'
'CC=gcc' 'CFLAGS=-Os -malign-double -pipe -ffast-math'
XEmacs 21.5-b28 "fuki" configured for `i686-pc-cygwin'.
Compilation Environment and Installation Defaults:
Source code location:
/usr/local/src/xemacs-21.5-test-2008-02-28-mule
Installation prefix: /usr/local/xemacs-21.5-test-2008-02-28-mule
Operating system description file: `s/cygwin32.h'
Machine description file: `m/intel386.h'
Compiler version: gcc (GCC) 4.2.1
- GCC specs file: specs.
- Compiler command: gcc
-I/usr/local/gcc-4.2.1/include/noX -I/usr/local/gcc-4.2.1/include/noX
-Wall -Wno-switch -Wundef -Wsign-compare -Wno-char-subscripts -Wpacked
-Wpointer-arith -Wunused-parameter -g -Os -malign-double -pipe
-ffast-math
libc version:
Relocating allocator for buffers: no
GNU version of malloc: yes
Window System:
Compiling in support for the Microsoft window system.
Using MS-Windows menubars.
Using MS-Windows scrollbars.
Using MS-Windows dialog boxes.
Using MS-Windows native widgets.
Compiling in support for Drag'n'Drop (EXPERIMENTAL).
- Drag'n'Drop prototype: msw.
TTY:
Compiling in support for ncurses.
Images:
Compiling in support for GIF images (builtin).
Compiling in support for XPM images.
Compiling in support for PNG images.
Compiling in support for JPEG images.
Compiling in support for TIFF images.
Sound:
Compiling in support for sound (native).
Databases:
Compiling in support for Berkeley database.
Compiling in support for GNU DBM.
Internationalization:
Compiling in support for Mule (multi-lingual Emacs).
Mail:
Compiling in support for POP mail retrieval.
Other Features:
Inhibiting IPv6 canonicalization at startup.
Compiling in support for dynamic shared object modules.
Compiling in support for more number types using the GNU MP library.
Using the new GC mark algorithms (KKCC).
WARNING: ---------------------------------------------------------
WARNING: The new algorithms are experimental. They are enabled by
WARNING: default for this release. Use `--disable-kkcc' to
WARNING: turn it off.
WARNING: ---------------------------------------------------------
Using the new portable dumper.
Dumping into executable.
Compiling in support for extra debugging code.
Compiling in support for runtime error checking.
WARNING: ---------------------------------------------------------
WARNING: XEmacs will run noticeably more slowly as a result.
WARNING: Error checking is on by default for XEmacs beta releases.
WARNING: ---------------------------------------------------------
Regards,
Vin
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-beta
Can't compile 21.5 in place
16 years, 8 months
Didier Verna
Hello,
this is from a fresh hg clone of 21.5. I can't compile it in-place.
Here's what happens:
Loading /usr/local/src/xemacs-in-place/lisp/iso8859-1.el...
*** Error in XEmacs initialization
(void-function loop)
*** Backtrace
really-early-error-handler((void-function loop))
(loop for lower from (char-int ?a) to (char-int ?z) and upper from (char-int ?A) to (char-int ?Z) with table = (make-case-table) do (put-case-table-pair (coerce upper (quote character)) (coerce lower (quote character)) table) finally return table)
[ ... ]
# (unwind-protect ...)
(load-internal "[internal]")
load("/usr/local/src/xemacs-21.5/src/../lisp/loadup.el")
# (condition-case ... . error)
# (catch top-level ...)
The configuration is as follows:
Looks like a cl-macs problem somewhere. However, if I compile outside
the source directory, everything goes fine.
--
5th European Lisp Workshop at ECOOP 2008, July 7: http://elw.bknr.net/2008/
Didier Verna, didier(a)lrde.epita.fr, http://www.lrde.epita.fr/~didier
EPITA / LRDE, 14-16 rue Voltaire Tel.+33 (0)1 44 08 01 85
94276 Le Kremlin-Bicêtre, France Fax.+33 (0)1 53 14 59 22 didier(a)xemacs.org
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-beta
Re: cython-mode.el
16 years, 8 months
Michael Sperber
Neal Becker <ndbecker2(a)gmail.com> writes:
> On Wednesday 05 March 2008, Michael Sperber wrote:
>> Neal Becker <ndbecker2(a)gmail.com> writes:
>> > Yes, but how do I know which revision I need?
>>
>> I just re-read the thread, and am not following: Didn't Jerry suggest
>> that you're using an XEmacs that's too old? Have you tried using the
>> latest state of the xemacs-beta repository?
>
> I thought he said the patch was not in xemacs-beta, only in the other hg repo
> (sorry, I forgot the name).
Yes, but they've been synched since.
--
Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-beta
cython-mode.el
16 years, 8 months
Neal Becker
This one works with gnu-emacs, but not xemacs. Anyone know why?
It's supposed to just add some font-lock keywords to python mode, but
it seems to override the python keywords instead (only the cython additions
seen below get highlighted, not the original python ones).
;;;; `Cython' mode.
(add-to-list 'auto-mode-alist '("\\.pyx\\'" . cython-mode))
(define-derived-mode cython-mode python-mode "Cython"
(font-lock-add-keywords
nil
`((,(concat "\\<\\(NULL"
"\\|c\\(def\\|har\\|typedef\\)"
"\\|e\\(num\\|xtern\\)"
"\\|float"
"\\|in\\(clude\\|t\\)"
"\\|object\\|public\\|struct\\|type\\|union\\|void"
"\\)\\>")
1 font-lock-keyword-face t))))
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-beta
customize-face default value
16 years, 8 months
Andreas Röhler
With M-x `customize-face', diff below delivers face at
point per default for customization.
One strange thing remains: to accept default, user
can't use num-pads "Enter"-key, keyboard-return must be
pressed.
Does this indicate a bug?
Thanks
Andreas Röhler
diff -u MY-PATH/xemacs/20080203/xemacs-21.5/lisp/cus-edit.el
MY-PATH/cus-edit.el
--- MY-PATH/xemacs/20080203/xemacs-21.5/lisp/cus-edit.el 2008-02-03
17:44:41.000000000 +0100
+++ MY-PATH/cus-edit.el 2008-02-03 17:44:41.000000000 +0100
@@ -874,8 +874,8 @@
(defun customize-face (&optional symbol)
"Customize SYMBOL, which should be a face name or nil.
If SYMBOL is nil, customize all faces."
- (interactive (list (completing-read "Customize face: (default all) "
- obarray 'find-face)))
+ (interactive (list (completing-read (concat "Customize face: ")
+ obarray 'find-face nil (if (get-char-property (point) 'face)
(format "%s" (get-char-property (point) 'face) nil)))))
(if (or (null symbol) (and (stringp symbol) (zerop (length symbol))))
(custom-buffer-create (custom-sort-items
(mapcar (lambda (symbol)
;;;;;;
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-beta