首页 > 解决方案 > flake8 --diff 不能从存储库根目录以外的目录工作

问题描述

存储库树如上所示

.
├── __init__.py
└── source
    ├── __init__.py
    └── main.py

main.py文件

def add(a, b):
    return a + b

当我将文件更改main.py

def add(a, b):
    return a +b

git diff -U0 | flake8 --diff从存储库根目录制作它向我展示

source/main.py:2:15: E225 缺少运算符周围的空格

但是当我从source文件夹中发出相同的命令时,它什么也不显示

同时在根存储库和文件夹git diff -U0中显示相同的结果source

diff --git a/source/main.py b/source/main.py
index 4693ad3..fd47298 100644
--- a/source/main.py
+++ b/source/main.py
@@ -2 +2 @@ def add(a, b):
-    return a + b
+    return a +b

标签: bashgitflake8

解决方案


显然 flake8 希望输出中的路径相对于当前工作目录。这意味着你想要:

git diff -U0 --relative | flake8 --diff

因为默认情况下,git diff会产生:

--- a/source/main.py
+++ b/source/main.py

就像你的例子一样。添加--relative(默认为当前目录)应该产生:

--- a/main.py
+++ b/main.py

反而。


推荐阅读