xcode プロジェクトがコンパイルに失敗した場合にコミットを中止する git pre-commit フックを作成しました。
これは、プロジェクトに適した設定で xcodebuild を実行することによって行われます。xcodebuild がゼロ以外のステータスを返した場合、変更をコミットできません。
私が実行している xcodebuild コマンドは次のとおりです。
xcodebuild -project MYPROJ/MYPROJ.xcodeproj -target MYPROJ -configuration Debug clean build CODE_SIGN_IDENTITY='iPhone Developer' >/dev/null 2>&1
私が知りたいのは、ビルド コマンドから「クリーン」を削除すると、どのような問題が発生するかということです。「クリーン」が何をするかについて漠然とした理解があります。以前にコンパイルされたオブジェクトを削除すると、次のビルド コマンドがプロジェクト全体を最初からビルドします。
ただし、プロジェクトの完全なビルドには長い時間がかかりますが、クリーンアップを行わず、多くの変更を加えていない場合は、数秒しかかかりません。pre-commit-hooks を高速かつ軽量に保ちたいのですが、ビルドが奇妙な状態になり、コードが正常であっても開発者がコミットできなくなるのではないかと心配しています。
pre-commit フックのすべてのビルドの前にクリーンアップしないと、問題が発生しますか? 場合によってはビルドエラーを誤って報告する可能性がありますか、またはクリーンアップしないとうまくいきませんか?