【问题标题】:Where does pre-commit install "environments"?预提交在哪里安装“环境”?
【发布时间】:2020-06-23 16:18:34
【问题描述】:

我正在尝试为 Python 项目的存储库设置 pre-commit。运行 pre-commit install 后,我看到如下输出:

[INFO] Installing environment for https://github.com/asottile/seed-isort-config.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/pre-commit/mirrors-isort.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/pre-commit/pre-commit-hooks.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/pre-commit/mirrors-pylint.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...

这些“环境”是什么?它们安装在哪里?

【问题讨论】:

  • 请注意,您的输出必须来自pre-commit install --install-hookspre-commit install-hookspre-commit run,因为pre-commit install 本身不安装环境
  • 我确实只运行了 pre-commit install 来获得该输出,正如我在 Bash 历史中看到的那样。
  • 相信我,这是不可能的——我是作者

标签: python git pre-commit-hook pre-commit pre-commit.com


【解决方案1】:

环境安装到a cache:

pre-commit 默认情况下将其存储库存储在~/.cache/pre-commit - 这可以通过两种方式进行配置:

  • PRE_COMMIT_HOME:如果设置,pre-commit 将使用该位置。
  • XDG_CACHE_HOME:如果设置,pre-commit 将在 XDG Base Directory Specification 之后使用 $XDG_CACHE_HOME/pre-commit

免责声明:我是作者

【讨论】:

  • 如果我们删除它会发生什么,你能添加一个命令来重置(从头开始重建缓存的环境)吗?
  • 谢谢,但是我相信有一个错误。我删除了'/Users/myname_usr/.cache/pre-commit/repoabwuil1n/,mypy/pre-commit 集成仍然继续看这里,尽管在配置中的任何地方都没有提到repoabwuil1n。你知道我怎样才能强制它从头开始吗?
  • 不确定从托管目录中随意删除随机内容时的预期:P。 pre-commit clean 是预期的接口
  • 谢谢,这已经解决了! pre-commit clean 是幂等的,干得好:) 另外,为了后代:当你更新 requirements3.txt 时,确保更新 .pre-commit-config.yaml, otherwise if you have e.g. mypy 钩子,它将使用旧的 env依赖关系
【解决方案2】:

查看此文档部分:Managing CI Caches

【讨论】:

    猜你喜欢
    • 2019-07-09
    • 2020-02-09
    • 2022-10-07
    • 2020-02-27
    • 1970-01-01
    • 1970-01-01
    • 2016-03-18
    • 1970-01-01
    • 2020-10-01
    相关资源
    最近更新 更多