任务单 #20555

CVSのHookメソッド(スクリプト)の作り方を教えてもらえないでしょうか。

开放日期: 2010-02-05 14:10 最后更新: 2010-02-05 21:17

报告人:
属主:
类型:
状态:
关闭
里程碑:
(无)
优先:
6
严重性:
6
处理结果:
文件:

Details

CVS上での機能の作り込みが必要となっており、それをCVSのHookメソッド(スクリプト)で実現したいのですが、 Hookメソッドがあるのか、あった場合どうやるのか不明です。教えていただけると助かるのですが。 概略は、checkinについては、ファイルをCSVのリポジトリに登録した際に、該当するhookを呼び出したいのですが。 また、checkoutする際には、hookを呼び出し情報を加工し、その情報を取り出すファイルに埋め込んでcheckoutする 機能を考えております。

お手数ですが、教えていただけないでしょうか。非常に悩んでいます。

任务单历史 (3/6 Histories)

2010-02-05 14:10 Updated by: verocity
  • New Ticket "CVSのHookメソッド(スクリプト)の作り方を教えてもらえないでしょうか。" created
2010-02-05 14:34 Updated by: ishikawa
评论

verocity への返信

CVS上での機能の作り込みが必要となっており、それをCVSのHookメソッド(スクリプト)で実現したいのですが、 Hookメソッドがあるのか、あった場合どうやるのか不明です。教えていただけると助かるのですが。

SourceForge.JPに特化した話ではなく CVSの一般的なドキュメント/書籍等を参照すれば説明があると思いますが、 CVSのコミット時になんらかの処理を行いたい場合は、レポジトリ内にある CVSROOT 以下の以下のファイルを 編集して処理を登録します。

  • commitinfo
  • verifymsg
  • editinfo
  • loginfo

参考までに以下のURLを見てください。

概略は、checkinについては、ファイルをCSVのリポジトリに登録した際に、該当するhookを呼び出したいのですが。

処理の内容にもよりますが、上記のloginfoあたりで処理が行えるのではないかと思われます。

また、checkoutする際には、hookを呼び出し情報を加工し、その情報を取り出すファイルに埋め込んでcheckoutする 機能を考えております。

こちらはCVSに機能がない(該当するような場面でのhook的なものはない)ので、CVSでは実現できません。

2010-02-05 17:18 Updated by: verocity
评论

ishikawa への返信 ishiikawa様

返信ありがとうございました。 チェックインのhookのやり方とチェックアウトのhookがないこと了解しました。

ないとなると、いろいろ対応策を考慮しなくてはならないのですが 1つの考えられる手段として チェックアウトのコマンドに対応するAPIを裸で呼ぶ ユーザコマンドを作ることは可能でしょうか。 要は、チェックアウトに対応するAPIが備わっていて それを使用できるのでしょうか。

度々の質問で申し訳ありませんが、よろしくお願いいたします。

verocity への返信

CVS上での機能の作り込みが必要となっており、それをCVSのHookメソッド(スクリプト)で実現したいのですが、 Hookメソッドがあるのか、あった場合どうやるのか不明です。教えていただけると助かるのですが。

SourceForge.JPに特化した話ではなく CVSの一般的なドキュメント/書籍等を参照すれば説明があると思いますが、 CVSのコミット時になんらかの処理を行いたい場合は、レポジトリ内にある CVSROOT 以下の以下のファイルを 編集して処理を登録します。 * commitinfo * verifymsg * editinfo * loginfo 参考までに以下のURLを見てください。 http://www.sodan.org/~penny/vc/cvs-ja_18.html#SEC167

概略は、checkinについては、ファイルをCSVのリポジトリに登録した際に、該当するhookを呼び出したいのですが。

処理の内容にもよりますが、上記のloginfoあたりで処理が行えるのではないかと思われます。

また、checkoutする際には、hookを呼び出し情報を加工し、その情報を取り出すファイルに埋め込んでcheckoutする 機能を考えております。

こちらはCVSに機能がない(該当するような場面でのhook的なものはない)ので、CVSでは実現できません。

2010-02-05 17:50 Updated by: ishikawa
评论

verocity への返信

ishikawa への返信 ishiikawa様 返信ありがとうございました。 チェックインのhookのやり方とチェックアウトのhookがないこと了解しました。 ないとなると、いろいろ対応策を考慮しなくてはならないのですが 1つの考えられる手段として チェックアウトのコマンドに対応するAPIを裸で呼ぶ ユーザコマンドを作ることは可能でしょうか。 要は、チェックアウトに対応するAPIが備わっていて それを使用できるのでしょうか。

可能か/不可能か という話であれば、可能ですが おそらくかなり工数がかかることになるので 個人的にはオススメはしません(CVSを中で呼び出すwrapperスクリプトでも作った方が、楽だろうと 思います)

CVS は非常に古い実装ですので、それ自体にはイマドキ的な(他のアプリケーション/ライブラリから 利用することを想定した)API的なものは、用意されていません。

CVSのサーバとやりとりするプログラムを実装するということであれば、CVS のクライアント/サーバ間の プロトコルはもちろん公開されていますので(cvsのソースのdoc/cvsclient.psなどを参照してください)、 これをもとに実装するしかないかと思います。

また、このプロトコルを実装することを目的とした Perl ライブラリなども公開はされてはいるようです。 (利用しているわけではないので詳細まではわかりかねますが...)

http://sourceforge.jp/projects/freshmeat_libcvs/

2010-02-05 20:53 Updated by: verocity
评论

回答をありがとうございました。 少し大変そうですね。 ユーザニーズと工数のトレードオフで決めたいと思います。 対応ありがとうございました。

今後、また質問するかもしれませんがよろしくお願いします。

2010-02-05 21:17 Updated by: ishikawa
  • Ticket Close date is changed to 2010-02-05 21:17
  • 状态 Update from 开启 to 关闭
评论

クローズします。

Attachment File List

No attachments

编辑

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » 登录名