0

コミットをブロックするgitpre-commitフックを作成するにはどうすればよいですか?

NSLog(@"random debug stuff");

しかしスキップします

//NSLog(@"useful to keep around");
4

2 に答える 2

0

Marcus Zarra がかなり前に公開した.pch ファイルを見てください。私はすべてのプロジェクトで使用しています。

とりわけ、NSLogと呼ばれる置換が含まれています。これを使用する利点は、組み込みのプリプロセッサ マクロをDLog活用して本番環境で無効にすることです。DEUBUGNSLog

次のコードを 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)
于 2012-08-20T10:08:40.857 に答える
0

メッセージのレベル (エラー、警告、情報、またはデバッグ) を指定できる独自のログ システムを作成し、デバッグ モードでない場合 (つまり-DDEBUG、コンパイラに渡されない場合) にデバッグ呼び出しを無視する必要があります。他のコンパイラ定義が設定されているときはいつでも、または実行時に何らかの構成設定を使用しているときでも。

コミットの状態は、開発に関してアプリがどの段階にあるかとは何の関係もないため、この状況で git pre-commit フックがどのように機能するかは私にはわかりません。

于 2012-08-20T09:54:14.683 に答える