[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[mhc:00514] Re: mhc-cvs.el and Gnus support



土屋です。


>> On Thu, 20 Apr 2000 10:18:31 +0900
>> 「白井」== shirai@xxxxxxxxxxxxxxxxxxx (Hideyuki SHIRAI (白井秀行)) said as follows:

白井> どーも。しかし、mhc.el へのパッチが含まれていないようですぜ。

うぅ。寝る前に大急ぎで作成したパッチだとやはり問題がありますねぇ。しか
し、パッチを作り直す前に、次の問題を先に確認させてください。


白井> 今日は、ちと忙しいのでハードな動作確認はできそうもないのですが、
白井> 気付いた点があります。

白井> +(defun mhc-cvs/add (filename &optional offline)
白井> +  "ファイルを追加する関数"
白井> +  (and (= 0 (mhc-cvs/backend "add" filename)) (mhc-cvs/modify filename offline)))

白井> +(defun mhc-cvs/remove (filename &optional offline)
白井> +  "ファイルを削除する関数"
白井> +  (delete-file filename)
白井> +  (and (= 0 (mhc-cvs/backend "remove" filename))
白井> +       (mhc-cvs/modify filename offline)))

白井> の二つが offline 状態でも cvs を動かそうとしてしまい、本当に
白井> offline  の(あるいは server までたどり着けない)ときに破綻してし
白井> まいます。

## 失敗った。真のオフライン環境ではテストしていないことがばれてしまった。

この件なんですけど、offline が Not-nil の場合は cvs commit まではしな
いはずなのですが…。

    (defun mhc-cvs/modify (filename &optional offline)
      "ファイルを変更する関数"
      (or offline (= 0 (mhc-cvs/backend "commit" "-m" "" filename))))

という関数定義なので。

で、cvs add および cvs remove は、完全なオフライン環境でも、いつでも実
行可能なはずだと考えていたのですが、これが間違いなのでしょうか?


白井> ## 結局手動で commit した。

## うーみゅ。pserver たてようかなぁ。


白井> また、mhc-spool での log file も同様なのですが、

白井> (insert (format "%c %d %d %s\n" ...

白井> ではなくて、alist 形式で save, load した方が融通が効いて今後のた
白井> めにいいんじゃないでしょうか? たとえば、(土屋さんは持ってないけ
白井> ど) mew-lisp-load, mew-lisp-save みたいな感じで prin1, read で処
白井> 理できるし。

白井> ## しかし、ruby がからむとやりにくいかな?

そうです。他のスクリプト言語からの処理という観点を重視して、単純な形式
のログになるように mhc-spool.el を設計しました。

alist 形式などで出力するバックエンドを書くこと自体は簡単だと思います。
今回のパッチから、mhc-file.el の先頭にバックエンドの定義方法についての
ドキュメントも追加しておきましたから。


-- 
土屋 雅稔  ( TSUCHIYA Masatoshi )
    http://www-nagao.kuee.kyoto-u.ac.jp/member/tsuchiya/