SVNからGitに切り替えてからpre-commit
、Subversionサーバーのフックを介してコーディング標準を適用する機能が失われました。
Gitを使用すると、クライアントに事前コミットフックのみがあり、これを強制することはできません。さらに悪いことに、開発者は3つの主要なオペレーティングシステムすべてを使用しているため、LinuxまたはOSXで機能するpre-commitフックはWindowsでは自動的に機能しません。
サーバーにフックを実装する方法がpre-receive
ありますが、解決策は見た目ほど簡単ではありません。
開発者が20のコミットを行い、それらをプッシュしたいとします。私が知っているすべての事前コミットおよび事前受信フック(1、2 )は、単一のコミットをチェックするだけで、最終的に失敗し、プッシュを防ぎます。ここで、開発者は問題を修正し、別のコミットを実行して、もう一度プッシュしようとします。フックは単一のコミットをチェックするため、再び失敗します。
したがって、pre-receive
プッシュされるすべてのコミットで変更されたすべてのファイルのリストを生成し、現在の状態でのみphpcsを実行するフックが必要です。
そのようなフックスクリプトはすでに存在しますか?どこ?
編集:ファイルのリストを作成するスクリプトがあるようです-残念ながらPythonで作成されていますが、移植することはできます。私はまだPHPCSで事前に作成されたソリューションに興味があります:)