我々はすべてのpythonファイルにPEP8の準拠を確認するために私たちのレポのMakefileにpep8
ターゲットを使用します。のMakefileのpep8チェックのみのgit diffを
## Check all python files for compatibility with PEP8
PEP8FLAGS := --ignore=E201,E202,E241,E265,E501,E711,E712,E713,E714,E721,W391,W291,W293,W601,W603
pep8:
pep8 $(PEP8FLAGS) .
私だけチェックに対して同様のpep8-changes
目標を持っているしたいのですが
DIFF_FILES := (git diff --name-only --diff-filter=ACMR ; \ # ACMR: added/copied/modified/renamed
git diff --staged --name-only --diff-filter=ACMR ; \
git diff --name-only --diff-filter=ACMR upstream/master...) \
| sort | uniq | grep -e "\.py$$" | grep -v '__init__.py'
## Check all diff python files for compatibility with PEP8
pep8-changes:
pep8 $(PEP8FLAGS) --filename $(DIFF_FILES)
しかし、私は次のエラーを取得:Pythonのファイルは、プル要求に変更
pep8 --exclude=sandbox,thirdparty --ignore=E201,E202,E241,E265,E501,E711,E712,E713,E714,E721,W391,W291,W293,W601,W603 --filename (git diff --name-only --diff-filter=ACMR ; \
/bin/sh: -c: line 0: syntax error near unexpected token `('
0を
pep8 docsで私は多くのヘルプを見つけることができません。私は--diff
フラグが私がここで探しているものだとは思わない。どんな助けもありがとう!
GNU makeまたは互換性のあるものであれば、 'var!= command'または' var:= $(シェルコマンド) '。ここで達成しようとしているものによっては、セットアップにいくつかの他の潜在的な問題もあります。特に実際にコミットする前にこれをしたいのであれば、* index *にあるものと* work-tree *にあるものの違いに注意してください。 – torek
@torek GNU makeになります。具体的には、 'make pep8-changes'はJenkinsが毎回実行するコマンドです。その違いは、プッシュされたブランチと上流/マスターの違いです。 – BoltzmannBrain
OK - その場合、 'git diff'(インデックス対ワークツリー)か' git diff -staged'( 'HEAD'とインデックス)のどちらにもポイントがありません。これらの2つを避けることは、uniqの必要もないことを意味します。これはすべてをかなり単純化します。 'git diff-tree -r'を使って' C'と 'R'のファイル状態(ただ一つではなく二つのファイル名を生成する)を避けるのはおそらく賢明ですが、これは便利な三角の' ... '構文を排除しますマージベースを見つけるために - しかし、あなたがここでマージベースを見つけたいとは思えません。 – torek