cvs at ki.nu

emacs-20.3+canna+wnn+sj3 を cvs で管理

といいながら殆ど自分用の覚えです。
(内)の数字の順に操作をします。
     (0)  ~/.cvsrc に -ko を付けておく (add checkout diff import update)
             #   以下の例は emacs で patch を作る時の専用
             add -kb -ko
             checkout -ko
             diff -ko
             import -ko -W "*.elc -k 'b'"
             update -ko
	  setenv PATCHES /home/ftp/pub/emacs-20.3+c+w+s/patches
          setenv PUB     /pub/Mule
	  setenv CVSROOT /home/cvs  # ここが保管庫 (Repository)
          cvs init

     (1)  tar zxf $PUB/emacs-20.3.tar.gz ; tar zxf $PUB/leim-20.3.tar.gz 
           |               cd emacs-20.3
           v           (3) patch -s -p0 < $PATCHES/20.3+canna+wnn.patch-19980917   
     +------------+                   :
     | Emacs-20.3 +--- (Patch)--->+------------+        
     +------------+               +  C+W 0917  |     【これらは輸入する材料】
           :                      +------------+     
           v                          : 
       (cd emacs-20.3)              .
    (2) cvs import -I \! -W "*.elc -k 'b'"  -m "1980819 Emac-20.3" emacs-20 FSF_DIST emacs-20_3
           :                     .       repo.    Vendor   Release
           :                    .                 Tag       Tag
           :                    v
           :              (5) cvs import -I \! -W "*.elc -k 'b'"  -m "+Canna+Wnn+Sj3" emacs-20 EMCWS  d19980917         
           :                   :                              repo.    V.Tag   R.Tag
           :                   v             この時殆んどが U emacs-20/lisp/buff-menu.el となること
                                                            N new    (新しく加わったもの)
           :       EMCWS  +------+  +------+                I ignore (*.elc)
           :       +------+ 0917 +--+ 0919 |
           :      /       +------+  +------+
           :     /
           :    / (4) cvs rtag -b EMCWS emacs-20
           :   /      (3),(4) は順不問
           v  /
FSF_DIST +-----+                +-----+         +-----+
       --+ 1.1 +----           -+     +--      -+     +--      
         +-----+                +-----+         +-----+   
         20_3                   20_3_90	        20_3_91
                      (差分を取って見る)
                      cvs rdiff -r emacs-20_3 -r d19980917 emacs-20          
                     (cd /fresh-directory)
                 (6)  cvs co -r d19980917 emacs-20 
                      cvs status -v emacs-20/lisp/canna.el  (この結果は最後に)
                      cd emacs-20
                 (7)  patch -s -p1 < $PATCHES/19980917-19980919.patch
                      次のものはうまく行かない
                (10)  cvs commit -m "19980919, Mew-1.93/patches"
                        cvs commit: sticky tag `d19980917' for file `lisp/egg.el' is not a branch
                      それで、次のように update -A をする。
                 (8)  cvs update -A
                (10)' cvs commit -m "19980919, Mew-1.93/patches; murata patches; canna.el"
                (11)  cvs tag d19980919 

patch -s -p1 < $PATCHES/19980919-19980919a.patch
patch -s -p1 < $PATCHES/19980919a-19980920.patch
cvs commit -m " remove ; canna:*local-map-backup* (current-local-map)) ;canna-henkan-region " 
cvs tag   d19980920

patch -s -p1 < $PATCHES/19980920-1998920a.patch
patch -s -p1 < $PATCHES/19980920a-19980921.patch
cvs commit -m "src/Makefile.in(remove sj3 error),canna-touroku-region"
cvs tag   d19980921

rm   src/paths.h ; rm lib-src/Makefile
cvs remove src/paths.h; cvs remove lib-src/Makefile
cvs commit -m "remove two unnecessary files, src/paths.h,lib-src/Makefile"
cvs tag   d19980922

patch -s -p1 < $PATCHES/19980922-19981005
cvs commit -m "adding sj3 capabilities(anon), fix _crypt not defined(Ishiguro)"
cvs tag   d19981005

patch -s -p1 < $PATCHES/19981005-19981010
cvs commit -m "wnn-egg.el, make egg:henkan-mode-in-use buffer-local(Yamada)"
cvs tag   d19981010

patch -s -p1 < $PATCHES/19981010-19981011
cvs commit -m "sj3-client.el, set sj3-server-buffer as unibyte.; \
      sj3-client.el and sj3-egg.el, minimize diffs from original."
cvs tag d19981011

## 19981011 版の差分は次のようにして作る。
cvs rdiff -u -r emacs-20_3 -r d19981011 emacs-20 >! \
   /home/ftp/pub/emacs-20.3+c+w+s+/20.3+canna+wnn+sj3-19981011-part2

patch -s -p1 < $PATCHES/19981011-19981016
cvs commit -m "sj3-egg.el, add some key definitions to henkan-mode-map.;\
    sj3-egg.el, use minor-mode-map-alist instead of local-map.\ 
    egg.el, abolish egg:*local-map-backup*. sj3-egg.el, ditto." 
cvs tag d19981016
cvs rdiff -u -r emacs-20_3 -r d19981016 emacs-20 >! \
    /home/ftp/pub/emacs-20.3+c+w+s+/20.3+canna+wnn+sj3-19981016

patch -s -p1 < $PATCHES/19981016-19981022
cd ..
cvs commit -m "egg:henkan-mode-in-use was not buffer-local; \
     (defun henkan-region-internal, unwind-protect"

%  cvs status -v emacs-20/lisp/canna.el
===================================================================
File: canna.el          Status: Up-to-date

   Working revision:    1.1.1.1 Thu Oct 22 01:25:34 1998
   Repository revision: 1.1.1.1 /home/cvs/emacs-20/lisp/canna.el,v
   Sticky Tag:          d19980917 (revision: 1.1.1.1)
   Sticky Date:         (none)
   Sticky Options:      -ko

   Existing Tags:
        d19980917                       (revision: 1.1.1.1)
        EMCWS                           (branch: 1.1.1)
-------------

makoto@a  21:16:57/981226(...making/emacs-20.3.92)>  \
? cvs import -m "Emac-20.3.92" emacs-20 FSF_DIST emacs-20_3_92
....
N emacs-20/src/kwzh-fns.c
N emacs-20/src/m/ews4800.h
N emacs-20/src/s/bsdos4.h
N emacs-20/src/s/ux4800.h
....
4 conflicts created by this import.
Use the following command to help the merge:

        cvs checkout -jFSF_DIST:yesterday -jFSF_DIST emacs-20
終ってから 20.3.92 を開けたばかりのものと diff して見たが、
diff -ur emacs-20.3.92 emacs-20.3.92-CVS/emacs-20  >  diff-result &

次の四点が違っている。
makoto@harry  9:31:46/981231(/home6/making)> grep -n ^+++ diff-result
   6:+++ emacs-20.3.92-CVS/emacs-20/configure      Sat Dec 26 22:52:38 1998
1708:+++ emacs-20.3.92-CVS/emacs-20/configure.in        Sat Dec 26 22:52:41 1998
2141:+++ emacs-20.3.92-CVS/emacs-20/lisp/loadup.el      Sat Dec 26 22:57:40 1998
2436:+++ emacs-20.3.92-CVS/emacs-20/src/Makefile.in     Sat Dec 26 23:03:08 1998


いとじゅんさんの情報 に次の文がある。
「あるbranch xの先頭のバージョンには、 "x"という名前のtagがついている」 とあるが、 75 9:45 cvs checkout -r emacs-20_3 emacs-20 としたら、多分 20.3 そのものが出て来た気がする(FSF_DIST というのが枝の名前かな) そこで、 cvs checkout -r emacs-20_3_92 emacs-20 とすれば 20.3.92 が出て来る。(diff -ur にて調査済) 次のようにして差分を作る cvs rdiff -u -r emacs-20_3_92 -r d19981222 emacs-20 > ! /tmp/20.3.92-19981222 これだと差分の大きさが 2M にもなってしまって変だと思ったら、 20.3+c+w+sj3 から進歩していないものと差分を取ってしまっている。 上で merge したものを commit する必要があるようだ。 いとじゅんさんの情報だと % cvs update -j r221 -r itojun221 という字も見える。r221 から itojun221 に改造した差分を いまの新しい r222 に取込むという時に使う。 cvs -n update -jEMCWS -jd19981222 として見たが、そうではなくて、 cvs rtag -b -r emacs-20_3_92 EMCWS-20_3_92 emacs-20 としておいて、EMCWS-20_3_92 の方で作業する。 しかし、次のようにおこられてしまう。 0:47:05/990102(~)> cvs rtag -b -r emacs-20_3_92 EMCWS-20_3_92 emacs-20 cvs [server aborted]: "rtag" requires write access to the repository 少なくとも $CVSROOT/emacs-20 には書けるのだけれど。 ktrace,kdump を使って見たところでは current directory に CVS/Root という名前のものがあると、それを見てしまい中に書いてある :pserver: が効いてしまっているようだった。cd /tmp してからだと問題ない。 この後 EMCWS-20_3_92 を取出して、 cvs checkout -r EMCWS-20_3_92 emacs-20 次のようにして、EMCWS から d19981222 の差分を合併すれば cvs update -jEMCWS -jd19981222 すれば、新しい 20.3.92 から派生した EMCWS が作れると思う。 (そうして commit, tag d19990101 ) しかし手動で「20.3.92 から派生した EMCWS」を作ることも出来ると思う。 (その方が簡単な気もする)