7

git-commit標準入力を待つ方法を探しています。私のスキルは存在しないのでPHPbash私はこれをコーディングしています、それで私は定期的にやっていると思います

<?php
$input = trim(fgets(STDIN));
fscanf(STDIN, "%d\n", $line);
?>

トリックを実行し、何かを書き込むまで待って続行しますが、それは先に進み、とにかくPHPスクリプトを実行し続けます。

この背後にある考え方は、リリースにタグを付けた後、gitがHEADテスト用Webサーバーにプッシュし、いくつかのツイートを送信して、CHANGELOGにリリースに関する詳細を書き込めるようにすることです。

(を使用して)ファイルへの書き込みを実行することはできexec('mate -w')ますが、サーバーで簡単なテストを実行するまで、ファイルを保持したいと思います。これにより、エラーに気付いた場合にロールバックできるようになります(怠惰なことはわかっています)。

助けてくれてありがとう!

4

2 に答える 2

4

ほとんどの git フックには、stdin に特別な何かが供給されているか、stdin が端末から切り離されています。それらはすべて非対話的に実行されるように設計されているため、やりたいことにフックが適しているとは思えません。もちろん、手動で話しかけること/dev/ttyもできますが、あまり良い考えではないと思います。

また、「pre-commit」フックがあなたのタスクに適しているとは思いません。確かに、あなたが行うすべてのコミットが何らかのリリースになるわけではありませんか? テスト Web サーバー マシンの「post-receive」フックの方が適切に思えます。

于 2009-07-01T20:57:48.937 に答える