4

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 フックのすべてのビルドの前にクリーンアップしないと、問題が発生しますか? 場合によってはビルドエラーを誤って報告する可能性がありますか、またはクリーンアップしないとうまくいきませんか?

4

1 に答える 1

2

コミットが確実にコンパイルされるようにしたい場合は、ビルドする前にクリーンアップする必要があります。ライブラリとリソースがめちゃくちゃになることがあるため、 clean コマンドが存在します。そのリビジョンをチェックアウトする人が問題なくプロジェクトをコンパイルできることを確認する必要があります。古いリソースなど、以前のビルドの残り物がある場合は保証できません。

GUI に画像を使用することを想像してください。アプリをコンパイルすると動作します。次に、リソースを少し再構築し、どういうわけかプロジェクトからイメージを削除することになります。アプリを再度実行すると、プロジェクトをクリーンアップしない限り、古いイメージを読み込むことができます。したがって、それはあなたにとってはうまくいきますが、クリーンなビルドの人にとってはそうではありません.

于 2013-06-15T17:53:48.493 に答える