コミットをブロックするgitpre-commitフックを作成するにはどうすればよいですか?
NSLog(@"random debug stuff");
しかしスキップします
//NSLog(@"useful to keep around");
コミットをブロックするgitpre-commitフックを作成するにはどうすればよいですか?
NSLog(@"random debug stuff");
しかしスキップします
//NSLog(@"useful to keep around");
Marcus Zarra がかなり前に公開した.pch ファイルを見てください。私はすべてのプロジェクトで使用しています。
とりわけ、NSLog
と呼ばれる置換が含まれています。これを使用する利点は、組み込みのプリプロセッサ マクロをDLog
活用して本番環境で無効にすることです。DEUBUG
NSLog
次のコードを YourProject.pch ファイルに含めるだけです。
#ifdef DEBUG
#define DLog(...) NSLog(@"%s %@", __PRETTY_FUNCTION__, [NSString stringWithFormat:__VA_ARGS__])
#define ALog(...) [[NSAssertionHandler currentHandler] handleFailureInFunction:[NSString stringWithCString:__PRETTY_FUNCTION__ encoding:NSUTF8StringEncoding] file:[NSString stringWithCString:__FILE__ encoding:NSUTF8StringEncoding] lineNumber:__LINE__ description:__VA_ARGS__]
#else
#define DLog(...) do { } while (0)
#ifndef NS_BLOCK_ASSERTIONS
#define NS_BLOCK_ASSERTIONS
#endif
#define ALog(...) NSLog(@"%s %@", __PRETTY_FUNCTION__, [NSString stringWithFormat:__VA_ARGS__])
#endif
#define ZAssert(condition, ...) do { if (!(condition)) { ALog(__VA_ARGS__); }} while(0)
メッセージのレベル (エラー、警告、情報、またはデバッグ) を指定できる独自のログ システムを作成し、デバッグ モードでない場合 (つまり-DDEBUG
、コンパイラに渡されない場合) にデバッグ呼び出しを無視する必要があります。他のコンパイラ定義が設定されているときはいつでも、または実行時に何らかの構成設定を使用しているときでも。
コミットの状態は、開発に関してアプリがどの段階にあるかとは何の関係もないため、この状況で git pre-commit フックがどのように機能するかは私にはわかりません。