【问题标题】:flake8 --diff not working from directory except repository rootflake8 --diff 不能从存储库根目录以外的目录工作
【发布时间】:2018-12-26 15:53:44
【问题描述】:

Repository 树如上图所示

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

ma​​in.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

【问题讨论】:

  • flake8 是否需要相对于当前工作目录的路径,而不是存储库工作树的顶部?如果是这样,请查看--relative[=<path>] 标志。
  • @torek 确实! git diff -U0 --relative=source/ | flake8 --diff 在这种情况下会有所帮助。请写下这个问题的答案,以便我可以将其标记为答案。
  • 你不应该需要 =source 部分,因为无论你在哪里运行这个命令,这就是你想要的 --relative
  • @torek 哎呀。是的。但请更新答案-U0 而不是--U0
  • 已修复(过分划线太容易了,尤其是当所有其他选项都是两个破折号时)

标签: bash git flake8


【解决方案1】:

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

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

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

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

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

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

改为。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-03
    • 1970-01-01
    • 2012-07-30
    • 1970-01-01
    • 2012-03-17
    • 1970-01-01
    相关资源
    最近更新 更多