unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Please don't obsolete "crisp.el"
@ 2014-07-07  9:13 Luke Lee
  2014-07-07 15:58 ` Glenn Morris
  0 siblings, 1 reply; 23+ messages in thread
From: Luke Lee @ 2014-07-07  9:13 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 445 bytes --]

Hi,
By editing the /etc/NEWS today I found "crisp.el" editor mode is going to
be obsolete, please don't!

I've been using and fixing crisp.el for many years. crisp.el is the default
mode
I use when running Emacs. This typing habit was started from the "brief"
editor
in MSDOS age. I plan to submit my crisp.el changes into trunk in the near
future
so please keep the "crisp.el" mode alive if possible.

Thanks a lot.

-- 
Best regards,
Luke Lee

[-- Attachment #2: Type: text/html, Size: 620 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Please don't obsolete "crisp.el"
  2014-07-07  9:13 Please don't obsolete "crisp.el" Luke Lee
@ 2014-07-07 15:58 ` Glenn Morris
  2014-07-07 16:36   ` Stefan Monnier
  0 siblings, 1 reply; 23+ messages in thread
From: Glenn Morris @ 2014-07-07 15:58 UTC (permalink / raw)
  To: Luke Lee; +Cc: emacs-devel


If you are willing to make yourself the maintainer, feel free to move it
back out from obsolete/, and remove the Obsolete-Since header and the
associated NEWS entry.

This seems like another thing that could/should be moved to GNU Elpa (if
that's a thing that's on the cards now; cf recent landmark discussion).



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Please don't obsolete "crisp.el"
  2014-07-07 15:58 ` Glenn Morris
@ 2014-07-07 16:36   ` Stefan Monnier
  2014-07-08  5:01     ` Luke Lee
  0 siblings, 1 reply; 23+ messages in thread
From: Stefan Monnier @ 2014-07-07 16:36 UTC (permalink / raw)
  To: Glenn Morris; +Cc: Luke Lee, emacs-devel

> If you are willing to make yourself the maintainer, feel free to move it
> back out from obsolete/, and remove the Obsolete-Since header and the
> associated NEWS entry.
> This seems like another thing that could/should be moved to GNU Elpa (if
> that's a thing that's on the cards now; cf recent landmark discussion).

Indeed, another option is to move it to GNU ELPA.  I think use of GNU
ELPA for such packages which are used by a fairly small fraction of
users makes a lot of sense.


        Stefan



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Please don't obsolete "crisp.el"
  2014-07-07 16:36   ` Stefan Monnier
@ 2014-07-08  5:01     ` Luke Lee
  2014-07-08 18:42       ` Glenn Morris
  0 siblings, 1 reply; 23+ messages in thread
From: Luke Lee @ 2014-07-08  5:01 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 1088 bytes --]

I would be glad to be the maintainer of crisp mode, what is the
correct process to move crisp.el to ELPA?
a) about Emacs trunk: Should I keep the crisp.el in obsolete/,
or just move it into ELPA?
b) about ELPA, should I copy the crisp.el from Emacs/obsolete/,
or just install a new one?
c) Aside from crisp.el itself, what other files should I change for
both Emacs and ELPA?
d) Where should ELPA package review submits goes? The
same as Emacs or?

Thanks!



2014-07-08 0:36 GMT+08:00 Stefan Monnier <monnier@iro.umontreal.ca>:

> > If you are willing to make yourself the maintainer, feel free to move it
> > back out from obsolete/, and remove the Obsolete-Since header and the
> > associated NEWS entry.
> > This seems like another thing that could/should be moved to GNU Elpa (if
> > that's a thing that's on the cards now; cf recent landmark discussion).
>
> Indeed, another option is to move it to GNU ELPA.  I think use of GNU
> ELPA for such packages which are used by a fairly small fraction of
> users makes a lot of sense.
>
>
>         Stefan
>



-- 
Best regards,
Luke Lee

[-- Attachment #2: Type: text/html, Size: 1797 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Please don't obsolete "crisp.el"
  2014-07-08  5:01     ` Luke Lee
@ 2014-07-08 18:42       ` Glenn Morris
  2014-07-08 20:04         ` Stefan Monnier
  2014-07-12 14:47         ` Stephen Leake
  0 siblings, 2 replies; 23+ messages in thread
From: Glenn Morris @ 2014-07-08 18:42 UTC (permalink / raw)
  To: Luke Lee; +Cc: Stefan Monnier, emacs-devel

Luke Lee wrote:

> what is the correct process to move crisp.el to ELPA?

I don't think this has happened before, so nobody really knows. :)

> a) about Emacs trunk: Should I keep the crisp.el in obsolete/,
> or just move it into ELPA?
> b) about ELPA, should I copy the crisp.el from Emacs/obsolete/,
> or just install a new one?
> c) Aside from crisp.el itself, what other files should I change for
> both Emacs and ELPA?

My guess:
In Emacs trunk, just remove crisp.el with a ChangeLog note something
like "move to GNU ELPA". Change etc/NEWS: add a new section after
"Obsolete packages" for "Packages moved to GNU ELPA" and move crisp.el
from obsolete to there.

As to getting it into GNU ELPA; yes install the version that was in
Emacs trunk (remove the "Obsolete-Since" header and add any needed
package headers). Do that before making any code changes.

But it would be good to preserve the VCS history of the file, if possible.
Maybe someone here has an idea how to do that?
Maybe start from the git version of the Emacs repo?

> d) Where should ELPA package review submits goes? The
> same as Emacs or?

Same as Emacs.



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Please don't obsolete "crisp.el"
  2014-07-08 18:42       ` Glenn Morris
@ 2014-07-08 20:04         ` Stefan Monnier
  2014-07-09  6:47           ` Luke Lee
  2014-07-12 14:47         ` Stephen Leake
  1 sibling, 1 reply; 23+ messages in thread
From: Stefan Monnier @ 2014-07-08 20:04 UTC (permalink / raw)
  To: Glenn Morris; +Cc: Luke Lee, emacs-devel

> In Emacs trunk, just remove crisp.el with a ChangeLog note something
> like "move to GNU ELPA". Change etc/NEWS: add a new section after
> "Obsolete packages" for "Packages moved to GNU ELPA" and move crisp.el
> from obsolete to there.
> As to getting it into GNU ELPA; yes install the version that was in
> Emacs trunk (remove the "Obsolete-Since" header and add any needed
> package headers). Do that before making any code changes.

I think the above is OK for landmark.el (given that it probably has
0 users), but for something like crisp.el, it's probably better to
transition more slowly, e.g. with a release of two where it's both in
`obsolete' and in GNU ELPA.

Also it's good to add a Version: header to the bundled version, in case
the user also installed it from GNU ELPA (so package.el can know which
of the two is more recent).

> But it would be good to preserve the VCS history of the file, if possible.

I don't think that's practical (maybe some VCS will support this well at
some point, but currently I think it'd be too much hassle for too little
benefit).


        Stefan



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Please don't obsolete "crisp.el"
  2014-07-08 20:04         ` Stefan Monnier
@ 2014-07-09  6:47           ` Luke Lee
  2014-07-09 10:39             ` Luke Lee
  2014-07-09 13:24             ` Stefan Monnier
  0 siblings, 2 replies; 23+ messages in thread
From: Luke Lee @ 2014-07-09  6:47 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 1086 bytes --]

>> But it would be good to preserve the VCS history of the file, if
possible.
>
> I don't think that's practical (maybe some VCS will support this well at
> some point, but currently I think it'd be too much hassle for too little
> benefit).

Since ELPA is VCS by git and we have an Emacs git clone, it's not
difficult. I tried that in my local repo and successfully merged the full
history of crisp.el from Emacs to ELPA. The only inconvenience is that we'll
need to apply "--follow" argument when doing "git log crisp.el " to be able
to see the full history of crisp.el. Otherwise "git log crisp.el" only shows
the one that I move it into "packages/crisp-mode".

Basically I followed the steps described in StackOverflow, with some extra
steps I successfully merging the full history of crisp.el *ONLY*. The
original
flow is discussed here: "http://stackoverflow.com/questions/1365541/
how-to-move-files-from-one-git-repo-to-another-not-a-clone-preserving-history"

If it's okay with all of you, I'll commit the full history of crisp.el into
ELPA, and
also keep it in Emacs obsolete.

[-- Attachment #2: Type: text/html, Size: 1365 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Please don't obsolete "crisp.el"
  2014-07-09  6:47           ` Luke Lee
@ 2014-07-09 10:39             ` Luke Lee
  2014-07-09 13:24             ` Stefan Monnier
  1 sibling, 0 replies; 23+ messages in thread
From: Luke Lee @ 2014-07-09 10:39 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 1596 bytes --]

Another drawback is that we might be confused since the history will
contain both Emacs trunk commit messages and ELPA messages.
However I've figure out a solution: to add a marker or notice message
like "(Merged from Emacs trunk)" at each of the of the crisp.el commit
message using "git filter-branch --msg-filter". I've tried that successfully
in my local repo.


2014-07-09 14:47 GMT+08:00 Luke Lee <luke.yx.lee@gmail.com>:

> >> But it would be good to preserve the VCS history of the file, if
> possible.
> >
> > I don't think that's practical (maybe some VCS will support this well at
> > some point, but currently I think it'd be too much hassle for too little
> > benefit).
>
> Since ELPA is VCS by git and we have an Emacs git clone, it's not
> difficult. I tried that in my local repo and successfully merged the full
> history of crisp.el from Emacs to ELPA. The only inconvenience is that
> we'll
> need to apply "--follow" argument when doing "git log crisp.el " to be able
> to see the full history of crisp.el. Otherwise "git log crisp.el" only
> shows
> the one that I move it into "packages/crisp-mode".
>
> Basically I followed the steps described in StackOverflow, with some extra
> steps I successfully merging the full history of crisp.el *ONLY*. The
> original
> flow is discussed here: "http://stackoverflow.com/questions/1365541/
>
> how-to-move-files-from-one-git-repo-to-another-not-a-clone-preserving-history"
>
> If it's okay with all of you, I'll commit the full history of crisp.el
> into ELPA, and
> also keep it in Emacs obsolete.
>



-- 
Best regards,
Luke Lee

[-- Attachment #2: Type: text/html, Size: 2318 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Please don't obsolete "crisp.el"
  2014-07-09  6:47           ` Luke Lee
  2014-07-09 10:39             ` Luke Lee
@ 2014-07-09 13:24             ` Stefan Monnier
  2014-07-10  2:43               ` Luke Lee
  1 sibling, 1 reply; 23+ messages in thread
From: Stefan Monnier @ 2014-07-09 13:24 UTC (permalink / raw)
  To: Luke Lee; +Cc: emacs-devel

> Basically I followed the steps described in StackOverflow, with some extra
> steps I successfully merging the full history of crisp.el *ONLY*. The
> original
> flow is discussed here: "http://stackoverflow.com/questions/1365541/
> how-to-move-files-from-one-git-repo-to-another-not-a-clone-preserving-history"

Which steps did you follow?  The "git log | git am" ones or the "git
filter-branch" ones?

> Another drawback is that we might be confused since the history will
> contain both Emacs trunk commit messages and ELPA messages.

If it contains trunk commit messages unrelated to crisp.el, it sounds
like a serious problem, indeed.

Otherwise I don't understand why you think it's a problem.  Can you show
some example?


        Stefan



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Please don't obsolete "crisp.el"
  2014-07-09 13:24             ` Stefan Monnier
@ 2014-07-10  2:43               ` Luke Lee
  2014-07-10  6:20                 ` Luke Lee
                                   ` (2 more replies)
  0 siblings, 3 replies; 23+ messages in thread
From: Luke Lee @ 2014-07-10  2:43 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 5503 bytes --]

> Which steps did you follow?  The "git log | git am" ones or the "git
> filter-branch" ones?

I don't think "git log | git am" works since lot of commits not just touched
crisp.el but also other Emacs trunk files. I only tried the filter-branch
approach.

> If it contains trunk commit messages unrelated to crisp.el, it sounds
> like a serious problem, indeed.
>
> Otherwise I don't understand why you think it's a problem.  Can you show
> some example?

Here is an example if we do not change the committed messages:

<<< Original ELPA: <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

commit 8739586a2539b482bdb48350bbcda00c44d82805
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Date:   Mon Jul 7 09:17:28 2014 -0400

    * caps-lock: New package.

commit 8f5704b427ea314e4b95a242a3b717d9976d48f9
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Date:   Thu Jul 3 09:35:44 2014 -0400

    * admin/archive-contents.el: Don't stop at the first incorrect version
...
    * externals-list (rudel): Not maintained externally any more.
    (chess): Fix syntax.

>>> ELPA with Emacs crisp.el merged >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

commit 8739586a2539b482bdb48350bbcda00c44d82805
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Date:   Mon Jul 7 09:17:28 2014 -0400

    * caps-lock: New package.

+commit 086a393b7aae6fbe214839aea67a02133f5ef955
+>Author: Glenn Morris <rgm@gnu.org>
+Date:   Sun Jul 6 16:58:52 2014 -0700
+
+    * cua-rect.el (cua--activate-rectangle): Avoid setting cua--rectangle
...

commit 8f5704b427ea314e4b95a242a3b717d9976d48f9
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Date:   Thu Jul 3 09:35:44 2014 -0400

    * admin/archive-contents.el: Don't stop at the first incorrect version
...
    * externals-list (rudel): Not maintained externally any more.
    (chess): Fix syntax.

============================================================================

As you can see, the added commit is confusing since it's Emacs repo specific
but not ELPA.

If we did some message filtering and add notes, it will be easiler to tell
that
commit merged from Emacs trunk due to crisp.el package migration. Here
is an example if we prefixed every merged message with a note like:
"* Merged from Emacs trunk lisp/emulation/crisp.el":

<<< Original ELPA: <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

commit 8739586a2539b482bdb48350bbcda00c44d82805
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Date:   Mon Jul 7 09:17:28 2014 -0400

    * caps-lock: New package.

commit 8f5704b427ea314e4b95a242a3b717d9976d48f9
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Date:   Thu Jul 3 09:35:44 2014 -0400

    * admin/archive-contents.el: Don't stop at the first incorrect version
...
    * externals-list (rudel): Not maintained externally any more.
    (chess): Fix syntax.

>>> ELPA with Emacs crisp.el and message mangling >>>>>>>>>>>>>>>>>>>>>>>>>>

commit 8739586a2539b482bdb48350bbcda00c44d82805
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Date:   Mon Jul 7 09:17:28 2014 -0400

    * caps-lock: New package.

+commit 086a393b7aae6fbe214839aea67a02133f5ef955
+>Author: Glenn Morris <rgm@gnu.org>
+Date:   Sun Jul 6 16:58:52 2014 -0700
+
+    * Merged from Emacs trunk lisp/emulation/crisp.el
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+    * cua-rect.el (cua--activate-rectangle): Avoid setting cua--rectangle
...

commit 8f5704b427ea314e4b95a242a3b717d9976d48f9
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Date:   Thu Jul 3 09:35:44 2014 -0400

    * admin/archive-contents.el: Don't stop at the first incorrect version
...
    * externals-list (rudel): Not maintained externally any more.
    (chess): Fix syntax.

============================================================================

Okay, now we can immediately understand this comes from Emacs trunk and feel
free to skip it.

I prefer this added-on note to be "prefixed" instead of "postfixed" since it
tell the log reader that this commit comes from Emacs trunk merge; before
the
reader reads the whole message, got confused, finally understands this
commit
comes from Emacs trunk merge, at the last line of the message.  But for
those
1-liners messages (like gitk branch graph) you'll see the same message for
all
crisp.el commits since it only show the first line of the message.

Personally it's okay with me since I only need to skip this kind of messages
in the log, but I don't know how others think.

There are two other observation during my expreiment:

1. I found that in the Emacs repo git clone, A LOT OF commits did not even
   touched crisp.el but are all included in the log history of crisp.el. I
   don't know if it's caused by bzr -> git mirroring information loss, or if
   this happend even in earlier years before bzr is used, or if there are
   some defetcts during git filter-branch. This seems to leave quite a few
   dummy commits without any diff against crisp.el.

2. We merged only the commits that relates to "crisp.el". But those commits
   might not just crisp.el specific and touched other files too. You will
still see
   the diff of other Emacs trunk files that never exists in ELPA, when
examine
   those commits in detail.

A perfect merge would be to just keeping the diffs of crisp.el, and filter
out
commit messages unrelated to crisp.el. Maybe a more complicated filtering
can
achieve this goal. But like you said, to find this perfetct method could be
too
much hassle for too little benefit.

Best regards,
Luke Lee

[-- Attachment #2: Type: text/html, Size: 7384 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Please don't obsolete "crisp.el"
  2014-07-10  2:43               ` Luke Lee
@ 2014-07-10  6:20                 ` Luke Lee
  2014-07-10 13:48                 ` Stefan Monnier
  2014-07-10 14:26                 ` Stefan Monnier
  2 siblings, 0 replies; 23+ messages in thread
From: Luke Lee @ 2014-07-10  6:20 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel


[-- Attachment #1.1: Type: text/plain, Size: 332 bytes --]

Some important numbers with my experiment:
1. Total 1835 objects will be merged into ELPA.
2. Checking the history log of the crisp.el in the merged ELPA,
    there are only 59 commits for crisp.el:
git log --name-status --all --follow crisp.el | grep "Author:" | wc -l

Attached is the log generated by the above git command.
FYI.

[-- Attachment #1.2: Type: text/html, Size: 452 bytes --]

[-- Attachment #2: crisp_history.txt --]
[-- Type: text/plain, Size: 28330 bytes --]

commit 81e6196c8d7ddf2c73375e7255c3bc8e87105457
Author: Luke Lee <luke.yx.lee@gmail.com>
Date:   Wed Jul 9 17:59:08 2014 +0800

    * Merged from Emacs trunk lisp/emulation/crisp.el
    * crisp-mode: New package merged from Emacs trunk lisp/emulation/crisp.el, with
    full history.

R100	crisp.el	packages/crisp-mode/crisp.el

commit 2dfcb3581c4f8e11fbd574006b952420e95a8101
Author: Luke Lee <luke.yx.lee@gmail.com>
Date:   Wed Jul 9 16:16:23 2014 +0800

    * Merged from Emacs trunk lisp/emulation/crisp.el
    * lisp/obsolete/crisp.el: Move back to where it was (lisp/emulation), preparing
    migration to ELPA with full commit history.

A	crisp.el

commit 20879a0dc2e56320884c7e8e2b82fe36babc2264
Author: Glenn Morris <rgm@gnu.org>
Date:   Sun Jun 1 18:02:21 2014 -0700

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Make some old emulation modes obsolete
    
    Ref: http://lists.gnu.org/archive/html/emacs-devel/2014-05/msg00502.html
    
    * lisp/emulation/crisp.el, lisp/emulation/tpu-edt.el:
    * lisp/emulation/tpu-extras.el, lisp/emulation/tpu-mapper.el:
    * lisp/emulation/vi.el, lisp/emulation/vip.el, lisp/emulation/ws-mode.el:
    Move to obsolete/.
    
    * doc/emacs/ack.texi (Acknowledgments): Remove some obsolete items.
    
    * doc/emacs/misc.texi (Emulation): Remove section.
    
    * doc/lispintro/emacs-lisp-intro.texi (Autoload): Update loaddefs.el details.
    
    * doc/misc/efaq.texi (Finding a package with particular functionality):
    Update example.
    
    * doc/misc/vip.texi: Mention this is obsolete.
    
    * etc/NEWS: Mention this.

D	crisp.el

commit 0d27bc79dfe7314d0d3b55a9c64e85204e7563a3
Author: Paul Eggert <eggert@cs.ucla.edu>
Date:   Wed Jan 1 07:43:34 2014 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Update copyright year to 2014 by running admin/update-copyright.

M	crisp.el

commit c3594775e69481801b44ace98e69af22f51a16fd
Author: Paul Eggert <eggert@cs.ucla.edu>
Date:   Tue Jan 1 09:11:05 2013 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Update copyright notices for 2013.

M	crisp.el

commit 9f2445a6d15042b67f7fd273e7046b9eebcb865b
Author: Glenn Morris <rgm@gnu.org>
Date:   Sat Oct 6 12:55:47 2012 -0700

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Aliases to defcustoms must come before the defcustom.
    
    * strokes.el (strokes-modeline-string):
    * emulation/crisp.el (crisp-mode-modeline-string):
    * eshell/esh-mode.el (eshell-status-in-modeline):
    Aliases to defcustoms must come before the defcustom.

M	crisp.el

commit 7da29cac01bc62d04a792dc0facbc4f17bc95879
Author: Glenn Morris <rgm@gnu.org>
Date:   Wed Aug 15 09:29:11 2012 -0700

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Replace version 24.2 with 24.3 where appropriate (hopefully)

M	crisp.el

commit cb611b9671293c07f73a0f876054c4007bee75a8
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Date:   Tue Jul 10 07:51:54 2012 -0400

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Reduce use of (require 'cl).
    * admin/bzrmerge.el: Use cl-lib.
    * leim/quail/hangul.el: Don't require CL.
    * leim/quail/ipa.el: Use cl-lib.
    * vc/smerge-mode.el, vc/pcvs.el, vc/pcvs-util.el, vc/pcvs-info.el:
    * vc/diff-mode.el, vc/cvs-status.el, uniquify.el, scroll-bar.el:
    * register.el, progmodes/sh-script.el, net/gnutls.el, net/dbus.el:
    * msb.el, mpc.el, minibuffer.el, international/ucs-normalize.el:
    * international/quail.el, info-xref.el, imenu.el, image-mode.el:
    * font-lock.el, filesets.el, edmacro.el, doc-view.el, bookmark.el:
    * battery.el, avoid.el, abbrev.el: Use cl-lib.
    * vc/pcvs-parse.el, vc/pcvs-defs.el, vc/log-view.el, vc/log-edit.el:
    * vc/diff.el, simple.el, pcomplete.el, lpr.el, comint.el, loadhist.el:
    * jit-lock.el, international/iso-ascii.el, info.el, frame.el, bs.el:
    * emulation/crisp.el, electric.el, dired.el, cus-dep.el, composite.el:
    * calculator.el, autorevert.el, apropos.el: Don't require CL.
    * emacs-bytecomp.el (byte-recompile-directory, display-call-tree)
    (byte-compile-unfold-bcf, byte-compile-check-variable):
    * emacs-byte-opt.el (byte-compile-trueconstp)
    (byte-compile-nilconstp):
    * emacs-autoload.el (make-autoload): Use pcase.
    * face-remap.el (text-scale-adjust): Simplify pcase patterns.

M	crisp.el

commit 94e8592f95961c11233cde481b7417cd78ab19c9
Author: Chong Yidong <cyd@gnu.org>
Date:   Sat Jun 2 18:56:09 2012 +0800

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Remove incorrect uses of "modeline".
    
    * ansi-color.el (ansi-color-faces-vector): Change default faces.
    
    * cus-edit.el (mode-line):
    * dframe.el (dframe-mouse-hscroll):
    * emacs-lisp/re-builder.el:
    * emacs-lisp/easy-mmode.el (define-minor-mode):
    * frame.el (set-frame-name):
    * help.el (lookup-minor-mode-from-indicator):
    * net/rcirc.el (rcirc-activity-string, rcirc-short-buffer-name):
    * progmodes/cc-cmds.el (c-toggle-auto-newline)
    (c-toggle-hungry-state):
    * progmodes/antlr-mode.el (antlr-language-alist):
    * progmodes/idlw-shell.el (idlwave-shell-electric-stop-line-face):
    * progmodes/vhdl-mode.el (vhdl-mode):
    * progmodes/which-func.el (which-func, which-func-cleanup-function):
    * term/ns-win.el (ns-face-at-pos):
    * term/sup-mouse.el (sup-mouse-report):
    * textmodes/flyspell.el (flyspell-mode-line-string):
    * textmodes/ispell.el (ispell-highlight-face):
    * textmodes/reftex-global.el:
    * vc/vc-arch.el (vc-arch-mode-line-string):
    * vc/vc-cvs.el (vc-cvs-mode-line-string):
    * vc/vc-git.el (vc-git-mode-line-string):
    * vc/vc-hooks.el (vc-display-status)
    (vc-default-mode-line-string):
    * vc/vc-mtn.el (vc-mtn-mode-line-string): Doc fixes.
    
    * dired.el (dired-sort-set-mode-line): Rename from
    dired-sort-set-modeline.  All callers changed.
    
    * foldout.el (foldout-mode-line-string): Rename from
    foldout-modeline-string.  All callers changed.
    (foldout-update-mode-line): Rename from foldout-update-modeline.
    
    * strokes.el (strokes-lighter): Rename from
    strokes-modeline-string.
    
    * subr.el (redraw-modeline): Make into obsolete alias.
    
    * calendar/timeclock.el (timeclock-mode-line-display): Rename from
    timeclock-modeline-display.  Make old name an alias.
    (timeclock-update-mode-line): Likewise.  All callers changed.
    (timeclock-mode-line-display): No need to check before using
    add-hook.
    (timeclock-relative, timeclock-day-over-hook)
    (timeclock-use-elapsed, timeclock-mode-string)
    (timeclock-mode-line-display): Doc fix, "modeline" -> "mode line".
    
    * emulation/crisp.el (crisp-mode-mode-line-string): Rename from
    crisp-mode-modeline-string.
    
    * erc-track.el (erc-track, erc-track-faces-priority-list)
    (erc-track-faces-normal-list, erc-track-find-face)
    (erc-track-modified-channels): Fix modeline -> mode line in docs.
    
    * eshell/esh-mode.el (eshell-status-in-mode-line): Rename from
    eshell-status-in-modeline.
    
    * org-clock.el (org-clock-string-limit)
    (org-clock-modeline-total, org-clock-task-overrun-text)
    (org-clock-mode-line-entry): Doc fix, "modeline" -> "mode line".
    
    * play/solitaire.el (solitaire-build-mode-line): Rename from
    solitaire-build-modeline.  All callers changed.
    
    * play/zone.el (zone-hiding-mode-line): Rename from
    zone-hiding-modeline.  All callers changed.
    (zone): Remove unusued `modeline-hidden-level' property.
    
    * progmodes/xscheme.el (xscheme-mode-line-initialize): Rename from
    xscheme-modeline-initialize.  All callers changed.
    
    * textmodes/sgml-mode.el (html-face-tag-alist)
    (html-tag-face-alist): Use mode-line face instead of obsolete
    alias modeline.

M	crisp.el

commit 5ff32958a149491c96739bea9322bb50f963183b
Author: Glenn Morris <rgm@gnu.org>
Date:   Tue Jan 10 23:52:35 2012 -0800

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Add 2012 to FSF copyright years for Emacs files (do not merge to trunk)

M	crisp.el

commit aea3e73181a40bed58edc96de1828e215305cead
Author: Glenn Morris <rgm@gnu.org>
Date:   Thu Jan 5 01:46:05 2012 -0800

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Add 2012 to FSF copyright years for Emacs files

M	crisp.el

commit 2093199a26aa5de3d6cf870553dfe51535e686ac
Author: Paul Eggert <eggert@cs.ucla.edu>
Date:   Mon Nov 14 15:59:56 2011 -0800

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Spelling fixes.

M	crisp.el

commit b806150633bb205de6add7af9f29c63acaf0b888
Author: Chong Yidong <cyd@gnu.org>
Date:   Sun Oct 30 09:56:03 2011 +0800

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Rename split-window-{above-each-other|split-window-side-by-side}
    to split-window-below and split-window-right.
    
    * lisp/window.el (split-window-below, split-window-right): Rename from
    split-window-above-each-other and split-window-side-by-side
    respectively.  All callers changed.
    (split-window-sensibly, split-window-sensibly): Use them.
    (split-window-keep-point): Doc fix.
    
    * lisp/isearch.el: Add isearch-scroll property to split-window-below
    and split-window-right.
    
    * lisp/follow.el (follow-mode):
    * lisp/vc/pcvs-util.el (cvs-pop-to-buffer-same-frame):
    * lisp/progmodes/ada-xref.el (ada-gdb-application):
    * lisp/emulation/vip.el (vip-buffer-in-two-windows):
    * lisp/image-dired.el (image-dired-dired-with-window-configuration):
    * lisp/dired-x.el (dired-do-find-marked-files):
    * lisp/dired.el (dired-pop-to-buffer):
    * lisp/bs.el (bs--show-with-configuration):
    * lisp/vc/emerge.el (emerge-setup-windows):
    * lisp/textmodes/two-column.el (2C-two-columns):
    * lisp/textmodes/reftex-toc.el (reftex-toc):
    * lisp/progmodes/gdb-mi.el (gdb-setup-windows):
    * lisp/progmodes/fortran.el (fortran-window-create):
    * lisp/net/newst-treeview.el (newsticker--treeview-window-init):
    * lisp/emulation/ws-mode.el (wordstar-C-o-map, wordstar-mode):
    * lisp/emulation/tpu-edt.el (tpu-gold-map):
    * lisp/emulation/crisp.el (crisp-mode-map):
    * lisp/calendar/calendar.el (calendar-basic-setup): Callers changed.

M	crisp.el

commit d0549e3dc98ed01133397c44db813ed15eae912c
Author: Chong Yidong <cyd@gnu.org>
Date:   Wed Oct 19 20:26:14 2011 -0400

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Fix more minor mode docstrings.
    
    * lisp/emulation/cua-base.el (cua-mode):
    * lisp/mail/footnote.el (footnote-mode):
    * lisp/mail/mailabbrev.el (mail-abbrevs-mode):
    * lisp/net/xesam.el (xesam-minor-mode):
    * lisp/progmodes/bug-reference.el (bug-reference-mode):
    * lisp/progmodes/cap-words.el (capitalized-words-mode):
    * lisp/progmodes/compile.el (compilation-minor-mode)
    (compilation-shell-minor-mode):
    * lisp/progmodes/gud.el (gud-tooltip-mode):
    * lisp/progmodes/hideif.el (hide-ifdef-mode):
    * lisp/progmodes/idlw-shell.el (idlwave-shell-electric-debug-mode):
    * lisp/progmodes/subword.el (subword-mode):
    * lisp/progmodes/vhdl-mode.el (vhdl-electric-mode, vhdl-stutter-mode):
    * lisp/progmodes/which-func.el (which-function-mode):
    * lisp/term/tvi970.el (tvi970-set-keypad-mode):
    * lisp/term/vt100.el (vt100-wide-mode):
    * lisp/textmodes/flyspell.el (flyspell-mode):
    * lisp/textmodes/ispell.el (ispell-minor-mode):
    * lisp/textmodes/nroff-mode.el (nroff-electric-mode):
    * lisp/textmodes/paragraphs.el (use-hard-newlines):
    * lisp/textmodes/refill.el (refill-mode):
    * lisp/textmodes/reftex.el (reftex-mode):
    * lisp/textmodes/rst.el (rst-minor-mode):
    * lisp/textmodes/sgml-mode.el (html-autoview-mode)
    (sgml-electric-tag-pair-mode):
    * lisp/textmodes/tex-mode.el (latex-electric-env-pair-mode):
    * lisp/vc/diff-mode.el (diff-auto-refine-mode, diff-minor-mode):
    * lisp/emulation/crisp.el (crisp-mode):
    * lisp/emacs-lisp/eldoc.el (eldoc-mode):
    * lisp/emacs-lisp/checkdoc.el (checkdoc-minor-mode): Doc fixes for new
    minor mode behavior.
    
    * lisp/erc/erc-fill.el (erc-fill-mode):
    * lisp/erc/erc-track.el (erc-track-minor-mode): Doc fix.
    
    * lisp/erc/erc.el (define-erc-module): Fix autogenerated docstring to
    reflect Emacs 24 minor mode changes.
    
    * lisp/gnus/gnus-cite.el (gnus-message-citation-mode): Doc fix (in Emacs 24,
    calling a minor mode from Lisp with nil arg enables it, so we have to
    make the working a bit ambiguous here).

M	crisp.el

commit 72ace05235f5a2d55604b1f6b00fa8ae66b79d23
Author: Glenn Morris <rgm@gnu.org>
Date:   Mon Jan 24 20:08:28 2011 -0800

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Convert consecutive FSF copyright years to ranges.

M	crisp.el

commit 945227d16d674ffdce6ccf3903462ad9f098e4f4
Author: Glenn Morris <rgm@gnu.org>
Date:   Sat Jan 15 18:21:30 2011 -0800

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Refill some copyright headers.

M	crisp.el

commit 2c24f6c819175428045366e30de4cfaee53d8e3d
Author: Glenn Morris <rgm@gnu.org>
Date:   Sat Jan 15 15:16:57 2011 -0800

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Nuke arch-tags.

M	crisp.el

commit 691b6d43af0fd860b94b30907b0636eafaae861c
Author: Glenn Morris <rgm@gnu.org>
Date:   Sun Jan 2 15:50:46 2011 -0800

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Add 2011 to FSF/AIST copyright years.

M	crisp.el

commit 93eb1683f15092dd1392639a4510bd3063817e3d
Author: Glenn Morris <rgm@gnu.org>
Date:   Wed Sep 22 23:42:45 2010 -0700

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Remove leading `*' from docs of some defcustoms etc.
    
    * emulation/crisp.el, emulation/cua-base.el, emulation/edt.el:
    * emulation/pc-select.el, emulation/vip.el, international/iso-ascii.el:
    * international/kkc.el, international/ogonek.el, mail/feedmail.el:
    * net/browse-url.el, net/eudc-vars.el, net/net-utils.el:
    * net/rcompile.el, net/rlogin.el, textmodes/enriched.el:
    * textmodes/makeinfo.el, textmodes/page-ext.el, textmodes/picture.el:
    * textmodes/refer.el, textmodes/spell.el, textmodes/table.el:
    * textmodes/tex-mode.el, textmodes/two-column.el:
    Remove leading `*' from docs of defcustoms etc.

M	crisp.el

commit 65934cc09cc166b450e4f0af4b9d116b7f3ac7c0
Author: Glenn Morris <rgm@gnu.org>
Date:   Wed Jan 13 00:35:10 2010 -0800

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Add 2010 to copyright years.

M	crisp.el

commit 2c5bd69b84fc0f73015ff9ccff96189e8fc835b5
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Date:   Fri Sep 11 01:00:37 2009 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    * emulation/crisp.el (crisp-mode-map): Move initialization
    into declaration.
    (crisp-mode): Use define-minor-mode.

M	crisp.el

commit 3b57afda588908870994d3d5262485b3277748fa
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Date:   Fri Sep 11 00:58:59 2009 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    * keymap.c (QCadvertised_binding): New constant.
    (syms_of_keymap): Initialize it.
    (Fwhere_is_internal): Try and use bindings from :advertised-binding
    if applicable.
    
    * progmodes/xscheme.el (xscheme-evaluation-commands):
    Put a :advertised-binding property rather than using
    advertised-xscheme-send-previous-expression.
    (advertised-xscheme-send-previous-expression): Declare obsolete.
    * emulation/crisp.el (crisp-mode-map): Use `undo' rather than
    `advertised-undo'.
    (crisp-mode): Add corresponding bindings to
    undo's :advertised-binding instead.
    * dired.el (dired-mode-map): Put a :advertised-binding property rather
    than using dired-advertised-find-file.
    (dired-advertised-find-file):
    * simple.el (advertised-undo):
    * wid-edit.el (advertised-widget-backward): Declare obsolete.
    (widget-keymap): Put a :advertised-binding property rather
    than using advertised-widget-backward.
    * bindings.el (ctl-x-map): Put a :advertised-binding property rather
    than using advertised-undo.
    * tutorial.el (tutorial--default-keys): Adjust accordingly.

M	crisp.el

commit 4b3fcf94fe45280c6eb3ab9850c0c6db2ef6be4d
Author: Glenn Morris <rgm@gnu.org>
Date:   Mon Jan 5 03:18:22 2009 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Add 2009 to copyright years.

M	crisp.el

commit f7fe1cf7fc21ca6f846d8f71baff58267b0a14ab
Author: Glenn Morris <rgm@gnu.org>
Date:   Tue May 6 03:28:01 2008 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Switch to recommended form of GPLv3 permissions notice.

M	crisp.el

commit 79133249b98005252c4a779d4dddfbf7fed78dfa
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Date:   Thu Apr 10 14:10:46 2008 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Fix up comment convention on the arch-tag lines.

M	crisp.el

commit 9209931315b450f8cadabe7ec568a205f0044441
Author: Dan Nicolaescu <dann@ics.uci.edu>
Date:   Thu Jan 24 15:14:52 2008 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    * sieve.el (sieve-make-overlay, sieve-overlay-put, sieve-overlays-at):
    * message.el (message-beginning-of-line): Use featurep instead of bound
    tests in order to resolve conditionals at compile time.
    
    * textmodes/reftex-toc.el (reftex-toc-next, reftex-toc-previous)
    (reftex-toc-restore-region):
    * textmodes/reftex-index.el (reftex-index-initialize-phrases-buffer)
    (reftex-index-phrases-apply-to-region):
    * textmodes/ispell.el (ispell-word):
    * progmodes/vhdl-mode.el (vhdl-keep-region-active):
    * progmodes/pascal.el (pascal-mark-defun):
    * progmodes/f90.el (f90-mark-subprogram, f90-indent-region)
    (f90-fill-region):
    * emulation/tpu-edt.el (tpu-set-mark):
    * emulation/crisp.el (crisp-region-active):
    * winner.el (winner-active-region):
    * ansi-color.el (ansi-color-set-extent-face): Use featurep instead
    of bound tests in order to resolve conditionals at compile time.

M	crisp.el

commit 5848a20818d261161263b12d8547431447150693
Author: Glenn Morris <rgm@gnu.org>
Date:   Mon Jan 7 01:09:49 2008 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Add 2008 to copyright years.

M	crisp.el

commit b3060a7929b0f587d4f03633cdaf640d11c66185
Author: Miles Bader <miles@gnu.org>
Date:   Thu Jul 26 05:28:10 2007 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Merge from emacs--rel--22
    
    Patches applied:
    
     * emacs--rel--22  (patch 70-73)
    
       - Update from CVS
    
    2007-07-25  Glenn Morris  <rgm@gnu.org>
    
       * Relicense all FSF files to GPLv3 or later.
    
    Revision: emacs@sv.gnu.org/emacs--devo--0--patch-828

M	crisp.el

commit 886bdc200aa37cc42780f931d3c7da6038ac4508
Author: Glenn Morris <rgm@gnu.org>
Date:   Wed Jul 25 04:10:52 2007 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Switch license to GPLv3 or later.

M	crisp.el

commit 269afe2b38c59d049120ad2337d280e56571de40
Author: Glenn Morris <rgm@gnu.org>
Date:   Sun Jan 21 02:48:43 2007 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Add 2007 to copyright years.

M	crisp.el

commit 18f02ca564761919ae7387c0d556ee179ea91b75
Author: Glenn Morris <rgm@gnu.org>
Date:   Thu Dec 7 05:06:17 2006 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Update copyright years.

M	crisp.el

commit cf8894f7733901f4f46d5962515563a39315e3e2
Author: Thien-Thi Nguyen <ttn@gnuvola.org>
Date:   Mon Feb 6 12:31:40 2006 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Update years in copyright notice; nfc.

M	crisp.el

commit 8f09559aeba00e2b72eacc6905d780682805afa7
Author: Henrik Enberg <henrik.enberg@telia.com>
Date:   Mon Jan 16 00:03:54 2006 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    sync with trunk

M	crisp.el

commit 08a8ddec019a515853bfc4b7fea1733ded3928e0
Author: Thien-Thi Nguyen <ttn@gnuvola.org>
Date:   Mon Aug 1 15:47:19 2005 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Update years in copyright notice; nfc.

M	crisp.el

commit 82d9d036c2b7dff0d8d3ebbe777f1c7015a0fc3c
Author: Lute Kamstra <lute@gnu.org>
Date:   Mon Jul 4 17:55:18 2005 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Update FSF's address.

M	crisp.el

commit 5ec5f57664f80dbf514df99f3f7016463e8f8046
Author: Kim F. Storm <storm@cua.dk>
Date:   Thu May 19 08:06:59 2005 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    (crisp-home, crisp-end): Put CUA property.

M	crisp.el

commit 6f3fde0f6540b704f6b7ae4d99cf3e4f7cab22a1
Author: Thien-Thi Nguyen <ttn@gnuvola.org>
Date:   Tue May 17 17:29:06 2005 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Update years in copyright notice; nfc.

M	crisp.el

commit fbef8eeaa772162d30703ba8d23a85b0ee693cc3
Author: Kenichi Handa <handa@m17n.org>
Date:   Fri Apr 16 12:51:06 2004 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Sync to HEAD

M	crisp.el

commit afb686c8b6abedbbe961eb511296e0bf8fa75461
Author: Kenichi Handa <handa@m17n.org>
Date:   Mon Sep 8 11:56:09 2003 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    New directory

M	crisp.el

commit 0f778bb4c3bac063c50f5f52d647dc6bb3abb831
Author: Miles Bader <miles@gnu.org>
Date:   Mon Sep 1 15:45:59 2003 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Add arch taglines

M	crisp.el

commit 8d006766951d4ed9a4f656d4fdf2804dfa8bbf95
Author: Kai Großjohann <kgrossjo@eu.uu.net>
Date:   Wed Apr 2 10:41:40 2003 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    (top-level): Quote second arg to
    `eval-after-load'.

M	crisp.el

commit 041f0fa974c5ef5900019a30d829dd281781a659
Author: Kai Großjohann <kgrossjo@eu.uu.net>
Date:   Sun Mar 9 14:05:25 2003 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    * man.el (Man-getpage-in-background): Always use `setenv' for
    environment variables, instead of modifying process-environment
    directly.  The previous version let-bound process-environment --
    the let-binding is skipped for GROFF_NO_SGR because there is
    already a let-binding in effect in some outer scope.
    
    * emulation/crisp.el (top-level): Interoperate with cua.

M	crisp.el

commit 2e7ca639b8ef9acefb48ff8423051ce07e7b7723
Author: Juanma Barranquero <lekktu@gmail.com>
Date:   Tue Feb 4 13:24:35 2003 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Trailing whitepace deleted.

M	crisp.el

commit 58052820ad50e16a5f56f48526ec752c57d574e6
Author: Dave Love <fx@gnu.org>
Date:   Sun May 21 17:33:05 2000 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    (brief-mode): New alias.

M	crisp.el

commit fc0611d8c54969dcd662134c98a5a99bb78f9f5d
Author: Dave Love <fx@gnu.org>
Date:   Tue Sep 14 18:34:10 1999 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Update author address.

M	crisp.el

commit a66017b294bfede6631383f6d3937c1171b8abcc
Author: Karl Heuer <kwzh@gnu.org>
Date:   Sun Jun 13 02:37:28 1999 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    (crisp-mode): (defcustom) Initialize with
    custom-initialize-default to avoid infinite loop.
    (crisp-mode): (defun) Call transient-mark-mode here, not when
    loading the file.  Run crisp-mode-hook here, and run
    crisp-load-hook when loading the file.

M	crisp.el

commit 6a830deef2197574b79f5e3579921815356f25f7
Author: Richard M. Stallman <rms@gnu.org>
Date:   Mon May 24 22:25:57 1999 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    (crisp-submit-bug-report): Function deleted.  Binding deleted also.

M	crisp.el

commit 541eda9024fc2610c599e5bb687f08a55174cd60
Author: Richard M. Stallman <rms@gnu.org>
Date:   Mon May 24 22:23:35 1999 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    (crisp-mode-map): Don't inherit global-map.
    Enter it on minor-mode-map-alist.
    (crisp-mode): Re-named from `crsip-mode-enabled'.  Users changed.
    Autoload.  Add custom setter.
    (crisp-mark-line): Doc fix.
    (crisp-mode): Autoload.  Re-write not to frob keymaps directly.
    (crisp-mode-hook): Define.

M	crisp.el

commit b4df1fd35017f5f41c99bc47203116b32e9b2a68
Author: Dave Love <fx@gnu.org>
Date:   Sun May 23 21:08:13 1999 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Fix header comments.

M	crisp.el

commit 1569ddb037cc9ac316e9230083d515e366a02dfa
Author: Richard M. Stallman <rms@gnu.org>
Date:   Wed Jul 29 22:44:56 1998 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    (crisp-mark-line): Greatly simplified.

M	crisp.el

commit 6a11be7a23e9e9323759006b7599106536e8a449
Author: Richard M. Stallman <rms@gnu.org>
Date:   Sat Jul 25 20:58:03 1998 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Don't require cl.
    (crisp-override-meta-x): Doc fix.
    (crisp-last-last-command): Doc fix.
    (mark-something): Function deleted.
    (crisp-mark-line): Avoid using mark-something.
    (crisp-region-active): Renamed from region-active.
    (crisp-set-clipboard): Renamed from copy-primary-selection.
    (crisp-kill-region): Renamed from kill-primary-selection.
    (crisp-yank-clipboard): Renamed from yank-clipboard-selection.

M	crisp.el

commit 62e8e97bb2d68c99d1202f6146a3f5d00460763f
Author: Karl Heuer <kwzh@gnu.org>
Date:   Tue Jul 14 22:17:35 1998 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Added next-buffer/previous-buffer keybindings (bound to M-n/M-p).
    (crisp-unbury-buffer): New function.
    
    Fixed bogus XEmacs/Lucid string-match checking.
    Made modeline entry mouse2-able.
    
    (crisp-mode-map): Make this a sparse keymap parented from
    current-global-map.
    (crisp-mode-original-keymap): Don't copy the keymap.
    (crisp-last-last-command): Renamed from last-last-command.  defvar it.
    (crisp-mode): Honor ARG.
    
    (crisp-kill-line, crisp-copy-line): When a region isn't highlighted,
    use the region from point to eol.  Honor prefix argument.
    
    (crisp-submit-bug-report): New command, taken from cc-mode.
    
    Shortened the version numbering, removed the release-version tracking
    
    (crisp-version): New function.
    New keybindings `C-home', `C-end', `M-home', `M-end', `C-f', `M-l',
    `M-m'.
    
    (crisp-copy-line): No need to save point.
    
    Removed S-right and S-left bindings.
    
    Abstract the marking and selection interfaces so that we can be
    compatible with both Emacs and XEmacs.  And try and make the
    behavior as close as possible under both environments so that there
    are no surprises.

M	crisp.el

commit a74139f67c9ff1ee4b905a3bcefc09dc0a32e9f1
Author: Stephen Eglen <stephen@gnu.org>
Date:   Sun Feb 22 22:01:28 1998 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Customized.

M	crisp.el

commit e7d7986bd8060b4dd5a581d4a9ae198c7b84611d
Author: Richard M. Stallman <rms@gnu.org>
Date:   Tue May 20 21:46:00 1997 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    (crisp-mode): Add autoload cookie.

M	crisp.el

commit e696f3edd41f45f0c93cc3ae93bb5f71790466fb
Author: Richard M. Stallman <rms@gnu.org>
Date:   Tue May 20 18:49:06 1997 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    (crisp-last-last-command): Renamed from last-last-command
    and defvar added.

M	crisp.el

commit f4507485f4c684aafb284c6ce46e28eb98a9224d
Author: Richard M. Stallman <rms@gnu.org>
Date:   Tue Apr 29 21:11:33 1997 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    (crisp-load-scroll-all): Renamed from ...-lock.
    (crisp-mode): Use scroll-all... not scroll-lock...

M	crisp.el

commit 92b4957201bcbc49c0a8b3037a832093848128d9
Author: Richard M. Stallman <rms@gnu.org>
Date:   Mon Apr 14 10:35:17 1997 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Install the proper version.

M	crisp.el

commit 083c101c4b2bbce88ba78edfa6b01d003f138894
Author: Richard M. Stallman <rms@gnu.org>
Date:   Thu Apr 10 21:42:07 1997 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Comment change.

M	crisp.el

commit 12c5d94e4bdc461684f7b9980ef156ea243ad214
Author: Richard M. Stallman <rms@gnu.org>
Date:   Thu Apr 10 20:43:54 1997 +0000

    * Merged from Emacs trunk lisp/emulation/crisp.el
    Initial revision

A	crisp.el

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Please don't obsolete "crisp.el"
  2014-07-10  2:43               ` Luke Lee
  2014-07-10  6:20                 ` Luke Lee
@ 2014-07-10 13:48                 ` Stefan Monnier
  2014-07-10 14:26                 ` Stefan Monnier
  2 siblings, 0 replies; 23+ messages in thread
From: Stefan Monnier @ 2014-07-10 13:48 UTC (permalink / raw)
  To: Luke Lee; +Cc: emacs-devel

>>>> ELPA with Emacs crisp.el merged >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

> commit 8739586a2539b482bdb48350bbcda00c44d82805
> Author: Stefan Monnier <monnier@iro.umontreal.ca>
> Date:   Mon Jul 7 09:17:28 2014 -0400

>     * caps-lock: New package.

> +commit 086a393b7aae6fbe214839aea67a02133f5ef955
> +>Author: Glenn Morris <rgm@gnu.org>
> +Date:   Sun Jul 6 16:58:52 2014 -0700
> +
> +    * cua-rect.el (cua--activate-rectangle): Avoid setting cua--rectangle
> ...

Hmm?? The above cua-rect.el commit did not touch crisp.el, so it seems
not just annoying but incorrect for it to be there.  It points to
a problem in the way crisp.el's changes are selected.

> 1. I found that in the Emacs repo git clone, A LOT OF commits did not even
>    touched crisp.el but are all included in the log history of
>    crisp.el.  I don't know if it's caused by bzr -> git mirroring
>    information loss, or if this happend even in earlier years before
>    bzr is used, or if there are some defetcts during git
>    filter-branch.  This seems to leave quite a few dummy commits
>    without any diff against crisp.el.

"bzr log -n 0 lisp/obsolete/crisp.el| grep revno | wc"

gives me 77 "commits".  Looking at the entries, they all seem to be
somewhat related to crisp.el, so it looks like a problem on Git's side.

> 2. We merged only the commits that relates to "crisp.el".  But those commits
>    might not just crisp.el specific and touched other files too.
>    You will still see the diff of other Emacs trunk files that never
>    exists in ELPA, when examine those commits in detail.

Yuck.

If the "extra spurious commits" or the "extra spurious files in commits"
are not too frequent (like 10% of the crisp.el history), it's not
too bad.  But if it's much more significant, then we're better off
without the history (which is still available in Emacs's repository
anyway).


        Stefan



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Please don't obsolete "crisp.el"
  2014-07-10  2:43               ` Luke Lee
  2014-07-10  6:20                 ` Luke Lee
  2014-07-10 13:48                 ` Stefan Monnier
@ 2014-07-10 14:26                 ` Stefan Monnier
  2014-07-11 10:03                   ` Luke Lee
  2 siblings, 1 reply; 23+ messages in thread
From: Stefan Monnier @ 2014-07-10 14:26 UTC (permalink / raw)
  To: Luke Lee; +Cc: emacs-devel

> 1. I found that in the Emacs repo git clone, A LOT OF commits did not even
>    touched crisp.el but are all included in the log history of crisp.el. I
>    don't know if it's caused by bzr -> git mirroring information loss, or if
>    this happend even in earlier years before bzr is used, or if there are
>    some defetcts during git filter-branch. This seems to leave quite a few
>    dummy commits without any diff against crisp.el.

   git log --follow lisp/obsolete/crisp.el | grep commit | wc

gives me 56 entries, which all seem to have touched crisp.el, so the
mirroring doesn't seem to be the problem.

Also, "git log -p --follow lisp/obsolete/crisp.el" seems to include just
the crisp.el changes, so passing it to "git am" might DTRT.


        Stefan



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Please don't obsolete "crisp.el"
  2014-07-10 14:26                 ` Stefan Monnier
@ 2014-07-11 10:03                   ` Luke Lee
  2014-07-11 10:32                     ` Yuri Khan
                                       ` (2 more replies)
  0 siblings, 3 replies; 23+ messages in thread
From: Luke Lee @ 2014-07-11 10:03 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 1962 bytes --]

>    git log --follow lisp/obsolete/crisp.el | grep commit | wc
>
> gives me 56 entries, which all seem to have touched crisp.el, so the
> mirroring doesn't seem to be the problem.
> ...
> Also, "git log -p --follow lisp/obsolete/crisp.el" seems to include just
> the crisp.el changes, so passing it to "git am" might DTRT.

Cool! The "git log -p --follow lisp/obsolete/crisp.el" is indeed very clean!
However, the bad thing is that we can't add "--reverse" to reverse the
commit order from the beginning, so "git am" will immediately fail. Later
I figure out the correct sequence using lisp/emulation instead:

  git log --pretty=email -p --all --follow --reverse --
lisp/emulation/crisp.el

A crisp.el only history patch generated. However, when applying it to "git
am",
it failed at the 18th historical commit, which I have no idea why.

Another bad thing about "git am" is that it will commit "on top of" current
commit so we'll see a history like the following using "git log":

---------------------------
commit 35f5a599cf5dcb6a2a79c79048d645b48dcf043a
Author: Richard M. Stallman <rms@gnu.org>
Date:   Thu Apr 10 20:43:54 1997 +0000
        ^^^^^^^^^^^^^^^^^^^^^^^^

    Initial revision

A       lisp/emulation/crisp.el

commit d31cf3156c20512f7fcf72b383827e96cfc9718e
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Date:   Mon Jul 7 14:38:27 2014 -0400

    * xpm: Fix cl-lib usage and compilation failures.

M       packages/xpm/xpm-compose.el
M       packages/xpm/xpm-ops.el
M       packages/xpm/xpm-palette.el
M       packages/xpm/xpm-ui.el
-------------------------

Gee! The history suddenly back from 2014 to 1997! I believe people won't
like this.

The filter-branch approach does not have such flaw, but it contains
some garbage info unrelated to crisp.el. However, it's not a lot, maybe
< 10% of the commits but I don't have the real number. I just randomly
checked in the history log. Seems each approach has its own pros and
cons here...

[-- Attachment #2: Type: text/html, Size: 2515 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Please don't obsolete "crisp.el"
  2014-07-11 10:03                   ` Luke Lee
@ 2014-07-11 10:32                     ` Yuri Khan
  2014-07-14 10:28                       ` Luke Lee
  2014-07-11 12:44                     ` Andreas Schwab
  2014-07-11 13:32                     ` Stefan Monnier
  2 siblings, 1 reply; 23+ messages in thread
From: Yuri Khan @ 2014-07-11 10:32 UTC (permalink / raw)
  To: Luke Lee; +Cc: Stefan Monnier, Emacs developers

On Fri, Jul 11, 2014 at 5:03 PM, Luke Lee <luke.yx.lee@gmail.com> wrote:

> Cool! The "git log -p --follow lisp/obsolete/crisp.el" is indeed very clean!
> However, the bad thing is that we can't add "--reverse" to reverse the
> commit order from the beginning, so "git am" will immediately fail.

What about “git format-patch” with a path argument? You should then
get a directory containing a numbered series of patches restricted to
that file or path, and you can then apply that with “git am” onto a
different branch and/or in a different repository. Before applying,
you might global-replace some directory names.



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Please don't obsolete "crisp.el"
  2014-07-11 10:03                   ` Luke Lee
  2014-07-11 10:32                     ` Yuri Khan
@ 2014-07-11 12:44                     ` Andreas Schwab
  2014-07-14 10:30                       ` Luke Lee
  2014-07-11 13:32                     ` Stefan Monnier
  2 siblings, 1 reply; 23+ messages in thread
From: Andreas Schwab @ 2014-07-11 12:44 UTC (permalink / raw)
  To: Luke Lee; +Cc: Stefan Monnier, emacs-devel

Luke Lee <luke.yx.lee@gmail.com> writes:

> Another bad thing about "git am" is that it will commit "on top of" current
> commit so we'll see a history like the following using "git log":
>
> ---------------------------
> commit 35f5a599cf5dcb6a2a79c79048d645b48dcf043a
> Author: Richard M. Stallman <rms@gnu.org>
> Date:   Thu Apr 10 20:43:54 1997 +0000
>         ^^^^^^^^^^^^^^^^^^^^^^^^
>
>     Initial revision
>
> A       lisp/emulation/crisp.el
>
> commit d31cf3156c20512f7fcf72b383827e96cfc9718e
> Author: Stefan Monnier <monnier@iro.umontreal.ca>
> Date:   Mon Jul 7 14:38:27 2014 -0400
>
>     * xpm: Fix cl-lib usage and compilation failures.
>
> M       packages/xpm/xpm-compose.el
> M       packages/xpm/xpm-ops.el
> M       packages/xpm/xpm-palette.el
> M       packages/xpm/xpm-ui.el
> -------------------------
>
> Gee! The history suddenly back from 2014 to 1997! I believe people won't
> like this.

You should put the history on a branch (with the first commit above as
its root) and merge it in the end.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Please don't obsolete "crisp.el"
  2014-07-11 10:03                   ` Luke Lee
  2014-07-11 10:32                     ` Yuri Khan
  2014-07-11 12:44                     ` Andreas Schwab
@ 2014-07-11 13:32                     ` Stefan Monnier
  2014-07-14 10:29                       ` Luke Lee
  2 siblings, 1 reply; 23+ messages in thread
From: Stefan Monnier @ 2014-07-11 13:32 UTC (permalink / raw)
  To: Luke Lee; +Cc: emacs-devel

> Cool! The "git log -p --follow lisp/obsolete/crisp.el" is indeed very clean!
> However, the bad thing is that we can't add "--reverse" to reverse the

Why not?

> Another bad thing about "git am" is that it will commit "on top of" current
> commit so we'll see a history like the following using "git log":

So, you want to create a brand new empty branch in which you apply the
patches and then you merge that branch into `elpa'.


        Stefan "Still believes «too much hassle for too little benefit»"



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Please don't obsolete "crisp.el"
  2014-07-08 18:42       ` Glenn Morris
  2014-07-08 20:04         ` Stefan Monnier
@ 2014-07-12 14:47         ` Stephen Leake
  1 sibling, 0 replies; 23+ messages in thread
From: Stephen Leake @ 2014-07-12 14:47 UTC (permalink / raw)
  To: emacs-devel

Glenn Morris <rgm@gnu.org> writes:

> Luke Lee wrote:
>
>> what is the correct process to move crisp.el to ELPA?
>
> I don't think this has happened before, so nobody really knows. :)

I'm in the process of moving ada-mode to Gnu ELPA. Currently ada-mode
4.1 is in trunk, and 5.1.4 is in Gnu ELPA. At some point, I plan to mark
ada-mode 4.1 obsolete, then later delete it.

>> a) about Emacs trunk: Should I keep the crisp.el in obsolete/,
>> or just move it into ELPA?
>> b) about ELPA, should I copy the crisp.el from Emacs/obsolete/,
>> or just install a new one?
>> c) Aside from crisp.el itself, what other files should I change for
>> both Emacs and ELPA?
>
> My guess:
> In Emacs trunk, just remove crisp.el with a ChangeLog note something
> like "move to GNU ELPA". Change etc/NEWS: add a new section after
> "Obsolete packages" for "Packages moved to GNU ELPA" and move crisp.el
> from obsolete to there.

I think it is more friendly to users to provide both versions for a
transition period, and in particular the automatic warning from
`make-obsolete' is helpful.

> As to getting it into GNU ELPA; yes install the version that was in
> Emacs trunk (remove the "Obsolete-Since" header and add any needed
> package headers). Do that before making any code changes.

ada-mode 5 is a complete rewrite, so I skipped this for ada-mode.

-- 
-- Stephe



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Please don't obsolete "crisp.el"
  2014-07-11 10:32                     ` Yuri Khan
@ 2014-07-14 10:28                       ` Luke Lee
  0 siblings, 0 replies; 23+ messages in thread
From: Luke Lee @ 2014-07-14 10:28 UTC (permalink / raw)
  To: Yuri Khan; +Cc: Stefan Monnier, Emacs developers

[-- Attachment #1: Type: text/plain, Size: 534 bytes --]

Thanks. Unfortunate that "git format-patch" cannot do "--follow" so there
will be no patch generated if we try to

    git format-patch ... lisp/obsolete/crisp.el.

since the last commit of crisp.el is to move it from emulation/ to
obsolete/. To generate a proper sequence for crisp.el we need to
find the commit ranges for crisp.el when it exists in emulation/.
I tried that and it worked. But later it turn out the "git log -p --follow"
method is a few steps simpler.Please refer to my reply to Stefan if
you're interested.
Thanks.

[-- Attachment #2: Type: text/html, Size: 748 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Please don't obsolete "crisp.el"
  2014-07-11 13:32                     ` Stefan Monnier
@ 2014-07-14 10:29                       ` Luke Lee
  2014-07-21  2:26                         ` luke.yx.lee
  0 siblings, 1 reply; 23+ messages in thread
From: Luke Lee @ 2014-07-14 10:29 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 4226 bytes --]

>> However, the bad thing is that we can't add "--reverse" to reverse the
>
> Why not?

I should said "it failed". It showed only the last commit. I guess there is
a
bug in git that fail to reverse the history when crisp.el moved from
emulation/
to obsolete/. If we don't add --reverse then it worked perfectly.

>> Another bad thing about "git am" is that it will commit "on top of"
current
>> commit so we'll see a history like the following using "git log":
>
> So, you want to create a brand new empty branch in which you apply the
> patches and then you merge that branch into `elpa'.

Yes, I did tried a few similar methods to create a new branch or remote
repo,
before my last email was sent. But anything related to "git am" did not
work --
there is always a 2014 back to 1997 commit in the history. Today I tried
again
and finally find out the correct parameter: the key to success is:

   git am --committer-date-is-author-date <crisp-patches>
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Before that, only the "filter-branch" method don't have such a reversing
histroy issue. Now we can proceed on using "git am".

>         Stefan "Still believes «too much hassle for too little benefit»"

For me, using git is just like using Emacs, a never ending story of
learning.
So it's always worth it for me to explore more.

IMHO, the only reason to justify this is, like Glenn said, moving one
package
from Emacs to ELPA did not happen before. So I think it should be worth it
to
try some experiments till a proper sequence appears. So that in the future
people could have a procedure to follow -- without too much effort but still
able to produce acceptable result.

Here I conclude my steps to move crisp.el's history from Emacs to ELPA. Feel
free to adjust the steps for landmark.el:

1. Preparing crisp.el history in Emacs repository:
   1.1.  "cd emacs.git"

   1.2.  "git log --follow --name-status lisp/obsolete/crisp.el"
         # We saw crisp.el moved from emulation/ to obsolete/ in the
beginning,
         # Say we tag this commit ID as "last-crisp"

   1.3.  Create a big patch from lisp/emulation:
         "git log -p --pretty=email --reverse --follow
lisp/emulation/crisp.el
          > cirsp-history.patch"
         # Here I saw 56 commits in this big patch

   (1.4) Mangle the commit messages in crisp-history.patch to notify these
         commits comes from Emacs repo.

2. Import crisp.el history into ELPA repository:
   2.1.  Clone an ELPA to "elpa.crisp" directory

   2.2.  "cd elpa.crisp"

   2.3.  Create a new branch with no commits:
         "git checkout --orphan crisp-in-emacs"

   2.4.  Remeber to delete everything for later "git am" to success:
         "git reset --hard"

   2.5.  Import the commit history that we just created, keeping the correct
         commit date/time:
        "git am --committer-date-is-author-date
../emacs.git/crisp-history.patch"

   2.6.  During the process git will pause several times for failing apply
the
         patches. We need to manually fix them. I found all those patch
failure
         are about the copyright message chagne. So I just manually applied
the
         changes and do "git am --continue" to keep going, or do "git am
--skip"
         if those changes are already in place.

   2.7.  Now we've the latest Emacs crisp.el in ELPA/lisp/emulation, now
move it
         to a new package dir:
         "git mv lisp/emulation/crisp.el package/crisp-mode"
         "git commit -m 'Move crisp-mode from Emacs trunk to ELPA'"

   2.8.  Now we're ready to merge it back to master:
         "git checkout master"

   2.9.  "git merge crisp-in-emacs"
         with commit message
         "Merge crisp-mode package from Emacs repository"
         We're done. Now examine the repository history.

   (2.10) (Not done yet) Now push it back with "git push ...".

If everyone is okay with that, I'll commit the merge. Of course, before I
did
that we should have a proper message prefix/postfix the commit messages from
Emacs trunk, to prevent confusing ELPA existing commit log (i.e. the above
skipped step 1.4).

Thanks.
Luke Lee.

[-- Attachment #2: Type: text/html, Size: 5131 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Please don't obsolete "crisp.el"
  2014-07-11 12:44                     ` Andreas Schwab
@ 2014-07-14 10:30                       ` Luke Lee
  0 siblings, 0 replies; 23+ messages in thread
From: Luke Lee @ 2014-07-14 10:30 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: Stefan Monnier, emacs-devel

[-- Attachment #1: Type: text/plain, Size: 144 bytes --]

I did tried that before but it's still the same. Later I found out the
correct
solution,please check the mail that I replied to Stefan. Thanks!

[-- Attachment #2: Type: text/html, Size: 219 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Please don't obsolete "crisp.el"
  2014-07-14 10:29                       ` Luke Lee
@ 2014-07-21  2:26                         ` luke.yx.lee
  2014-07-21  4:00                           ` Stefan Monnier
  0 siblings, 1 reply; 23+ messages in thread
From: luke.yx.lee @ 2014-07-21  2:26 UTC (permalink / raw)
  To: Luke Lee; +Cc: Stefan Monnier, emacs-devel

Hi all,

I plan to apply my proposed steps as follows to transfer the history of
crisp from Emacs to ELPA in a few days. If no one objects, I'll proceed
on that. If you have any concern about this, please inform me.
Thanks!

Luke Lee <luke.yx.lee@gmail.com> writes:

>
> Here I conclude my steps to move crisp.el's history from Emacs to
> ELPA. Feel
> free to adjust the steps for landmark.el:
>
> 1. Preparing crisp.el history in Emacs repository:
> 1.1. "cd emacs.git"
>
> 1.2. "git log --follow --name-status lisp/obsolete/crisp.el"
> # We saw crisp.el moved from emulation/ to obsolete/ in the beginning,
>
> 1.3. Create a big patch from lisp/emulation:
> "git log -p --pretty=email --reverse --follow lisp/emulation/crisp.el
>> cirsp-history.patch"
> # Here I saw 56 commits in this big patch
>
> (1.4) Mangle the commit messages in crisp-history.patch to notify
> these commits comes from Emacs repo.
>
> 2. Import crisp.el history into ELPA repository:
> 2.1. Clone an ELPA to "elpa.crisp" directory
>
> 2.2. "cd elpa.crisp"
>
> 2.3. Create a new branch with no commits:
> "git checkout --orphan crisp-in-emacs"
>
> 2.4. Remeber to delete everything for later "git am" to succeed:
> "git reset --hard"
>
> 2.5. Import the commit history that we just created, keeping the
> correct > commit date/time:
> "git am --committer-date-is-author-date .
> ./emacs.git/crisp-history.patch"
>
> 2.6. During the process git will pause several times for failing apply
> the patches. We need to manually fix them. I found all those patch
> failure are about the copyright message chagne. So I just manually
> applied the changes and do "git am --continue" to keep going, or do
> "git am --skip"
> if those changes are already in place.
>
> 2.7. Now we've the latest Emacs crisp.el in ELPA/lisp/emulation, now
> move it to a new package dir:
> "git mv lisp/emulation/crisp.el package/crisp-mode"
> "git commit -m 'Move crisp-mode from Emacs trunk to ELPA'"
>
> 2.8. Now we're ready to merge it back to master:
> "git checkout master"
>
> 2.9. "git merge crisp-in-emacs"
> with commit message
> "Merge crisp-mode package from Emacs repository"
> We're done. Now examine the repository history.
>
> (2.10) (Not done yet) Now push it back with "git push ...".
>
> If everyone is okay with that, I'll commit the merge. Of course,
> before I did that we should have a proper message prefix/postfix
> the commit messages from Emacs trunk, to prevent confusing ELPA
> existing commit log (i.e. the above skipped step 1.4).



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: Please don't obsolete "crisp.el"
  2014-07-21  2:26                         ` luke.yx.lee
@ 2014-07-21  4:00                           ` Stefan Monnier
  0 siblings, 0 replies; 23+ messages in thread
From: Stefan Monnier @ 2014-07-21  4:00 UTC (permalink / raw)
  To: luke.yx.lee; +Cc: emacs-devel

>> (1.4) Mangle the commit messages in crisp-history.patch to notify
>> these commits comes from Emacs repo.

Don't bother.  We already imported many other packages with just "git
merge" and without mangling their commit messages.

>> Of course, before I did that we should have a proper message
>> prefix/postfix the commit messages from Emacs trunk, to prevent
>> confusing ELPA existing commit log (i.e. the above skipped step 1.4).

There's no confusion: those commits are on a branch and Git knows it.
"git log" tends to display them along with everything else, but it's
a problem with the default "git log" behavior (which can be fixed with
appropriate options, IIUC), not with the history data.

Other than that it looks OK, thank you.


        Stefan



^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2014-07-21  4:00 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-07-07  9:13 Please don't obsolete "crisp.el" Luke Lee
2014-07-07 15:58 ` Glenn Morris
2014-07-07 16:36   ` Stefan Monnier
2014-07-08  5:01     ` Luke Lee
2014-07-08 18:42       ` Glenn Morris
2014-07-08 20:04         ` Stefan Monnier
2014-07-09  6:47           ` Luke Lee
2014-07-09 10:39             ` Luke Lee
2014-07-09 13:24             ` Stefan Monnier
2014-07-10  2:43               ` Luke Lee
2014-07-10  6:20                 ` Luke Lee
2014-07-10 13:48                 ` Stefan Monnier
2014-07-10 14:26                 ` Stefan Monnier
2014-07-11 10:03                   ` Luke Lee
2014-07-11 10:32                     ` Yuri Khan
2014-07-14 10:28                       ` Luke Lee
2014-07-11 12:44                     ` Andreas Schwab
2014-07-14 10:30                       ` Luke Lee
2014-07-11 13:32                     ` Stefan Monnier
2014-07-14 10:29                       ` Luke Lee
2014-07-21  2:26                         ` luke.yx.lee
2014-07-21  4:00                           ` Stefan Monnier
2014-07-12 14:47         ` Stephen Leake

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).