2016-06-14 7 views
9

ローカルリポジトリにコミットするたびに実行されるgitフックがあります。gitフックがターミナル/コマンドライン内で呼び出されていないかどうかを確認する方法

一部の人が端末からコミットしていて、SourceTreeやSmartGitなどのサードパーティアプリケーションからコミットしている人がいます。

SourceTreeの動作は、フックに応じて異なります。たとえば、エラーはデフォルトでは赤で、ユーザーの入力はサポートされていないようですので、ユーザーがSourceTreeやSmartGitなどからコミットしているかどうかによってPythonスクリプトを変更する必要があります。

スクリプト内でこれを行うには?

+0

あなたは 'printenv'を使って環境変数を比較しようとしましたか? – Dario

+0

@Darioいいえ、私はそれを試み、あなたに戻ってきます。 – Ogen

+0

@Dario私は 'print os.environ'を使用しています。それはあなたが念頭に置いたことですか?私はこの出力から正確に何を調べるべきですか? – Ogen

答えて

5

このPythonコードを使用して問題を解決できました。サードパーティのgitクライアントが出現した場合の環境変数をチェックするだけです。私はそれが最高の解決策であるか、それともいつもうまくいくかどうかはわかりませんが、今は私のニーズを満たしています。

is_terminal = True 

for key in os.environ: 
    if "SourceTree" in os.environ[key] or "SmartGit" in os.environ[key]: 
     is_terminal = False 
     break 
関連する問題