VSCode 集成源代码控制和预提交
Posted
技术标签:
【中文标题】VSCode 集成源代码控制和预提交【英文标题】:VSCode integrated source control and pre-commit 【发布时间】:2021-01-29 19:29:53 【问题描述】:将https://pre-commit.com 与依赖于 Python venv 中安装的包的 VSCode 挂钩使用时。在预提交上可以指定使用“系统”作为环境。这在具有所需 venv 活动的终端上效果很好。
但是使用集成的源代码控制似乎可以访问全局解释器,因此所需的包不可用。
这里有解决方法吗?至于现在我在预提交配置中指定入口点“path/to/bin/python -m package”。但是我确实认为集成的源代码控制也应该至少尊重选定的解释者。
有什么想法吗?
【问题讨论】:
【参考方案1】:VSCode 似乎会不择手段地选择它尊重的东西和不尊重的东西。我也有同样的情况——在集成终端上提交工作正常;从源代码管理侧边栏中执行此操作会给我一个“找不到 Python”消息(仅在安装预提交挂钩后出现)。
我的猜测是,您必须通过反复试验,在系统中的每个 Python 安装中安装 pre-commit
,直到找到侧边栏正在调用的那个。
【讨论】:
我没有解决方案,但这里有类似的问题。我安装了一个预提交钩子,commitlint,以及其他钩子(eslint ...)。当我尝试从源代码管理侧边栏提交时,eslint 通过,而 commitlint 失败,因为“未找到可执行文件commitlint
”。但是,我使用集成终端没有问题。在某个地方,源代码管理不会搜索它应该搜索的可执行文件。
VSCode 似乎使用它启动的 venv。如果你打开一个终端,激活一个 venv 并从 venv 内部启动代码 git 使用激活的 venv。以上是关于VSCode 集成源代码控制和预提交的主要内容,如果未能解决你的问题,请参考以下文章
您应该将 .vscode/symbols 文件提交到源代码管理吗?