特定の条件下で、レポジトリ自体のバージョン ファイルの更新を担当する post-receive フックが必要です。したがって、レポジトリにファイル version.txt があるとすると、post receive フックで version.txt 内のバージョン文字列を更新する必要があります。
それは、レポへの別のプッシュを意味します。これは可能ですか?
ありがとう!
特定の条件下で、レポジトリ自体のバージョン ファイルの更新を担当する post-receive フックが必要です。したがって、レポジトリにファイル version.txt があるとすると、post receive フックで version.txt 内のバージョン文字列を更新する必要があります。
それは、レポへの別のプッシュを意味します。これは可能ですか?
ありがとう!
サーバー上にリポジトリの作業ディレクトリを作成できます。受信後、作業ディレクトリで git pull し、必要に応じて version.txt を更新し、コミットしてプッシュします。これにより、受信後がもう一度トリガーされるため、条件付き更新の実行方法に注意してください。そうしないと、サイクルが発生します。
#!/bin/sh
unset GIT_DIR
cd /path/to/repo.wd
git pull
echo "new content" > version.txt
git add version.txt
git commit -m "updating version.txt"
git push origin master
それ以上のコミット/プッシュを試みるのではなく、チェックアウト/更新時にフィルタードライバーを順番に使用して、そのファイルの適切なコンテンツを生成できるようにしversion.txt
ます(つまり、適切なバージョン文字列を内部に含む)
smudge
スクリプトは、ファイルの内容を認識できる場合(version.txt
つまり、そのファイルの名前/パスをパラメーターとして持たない場合)、そのファイルのテンプレート セクションを正しい情報に置き換えます。