CVSのHookメソッド(スクリプト)の作り方を教えてもらえないでしょうか。
verocity への返信
CVS上での機能の作り込みが必要となっており、それをCVSのHookメソッド(スクリプト)で実現したいのですが、 Hookメソッドがあるのか、あった場合どうやるのか不明です。教えていただけると助かるのですが。
SourceForge.JPに特化した話ではなく CVSの一般的なドキュメント/書籍等を参照すれば説明があると思いますが、 CVSのコミット時になんらかの処理を行いたい場合は、レポジトリ内にある CVSROOT 以下の以下のファイルを 編集して処理を登録します。
参考までに以下のURLを見てください。
概略は、checkinについては、ファイルをCSVのリポジトリに登録した際に、該当するhookを呼び出したいのですが。
処理の内容にもよりますが、上記のloginfoあたりで処理が行えるのではないかと思われます。
また、checkoutする際には、hookを呼び出し情報を加工し、その情報を取り出すファイルに埋め込んでcheckoutする 機能を考えております。
こちらはCVSに機能がない(該当するような場面でのhook的なものはない)ので、CVSでは実現できません。
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では実現できません。
verocity への返信
ishikawa への返信 ishiikawa様 返信ありがとうございました。 チェックインのhookのやり方とチェックアウトのhookがないこと了解しました。 ないとなると、いろいろ対応策を考慮しなくてはならないのですが 1つの考えられる手段として チェックアウトのコマンドに対応するAPIを裸で呼ぶ ユーザコマンドを作ることは可能でしょうか。 要は、チェックアウトに対応するAPIが備わっていて それを使用できるのでしょうか。
可能か/不可能か という話であれば、可能ですが おそらくかなり工数がかかることになるので 個人的にはオススメはしません(CVSを中で呼び出すwrapperスクリプトでも作った方が、楽だろうと 思います)
CVS は非常に古い実装ですので、それ自体にはイマドキ的な(他のアプリケーション/ライブラリから 利用することを想定した)API的なものは、用意されていません。
CVSのサーバとやりとりするプログラムを実装するということであれば、CVS のクライアント/サーバ間の プロトコルはもちろん公開されていますので(cvsのソースのdoc/cvsclient.psなどを参照してください)、 これをもとに実装するしかないかと思います。
また、このプロトコルを実装することを目的とした Perl ライブラリなども公開はされてはいるようです。 (利用しているわけではないので詳細まではわかりかねますが...)
回答をありがとうございました。 少し大変そうですね。 ユーザニーズと工数のトレードオフで決めたいと思います。 対応ありがとうございました。
今後、また質問するかもしれませんがよろしくお願いします。
クローズします。
CVS上での機能の作り込みが必要となっており、それをCVSのHookメソッド(スクリプト)で実現したいのですが、 Hookメソッドがあるのか、あった場合どうやるのか不明です。教えていただけると助かるのですが。 概略は、checkinについては、ファイルをCSVのリポジトリに登録した際に、該当するhookを呼び出したいのですが。 また、checkoutする際には、hookを呼び出し情報を加工し、その情報を取り出すファイルに埋め込んでcheckoutする 機能を考えております。
お手数ですが、教えていただけないでしょうか。非常に悩んでいます。