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 集成源代码控制和预提交的主要内容,如果未能解决你的问题,请参考以下文章

git怎么控制成员的权限

vscode如何增量推送代码到svn服务器

VSCode 未显示源代码控制 git 面板中的更改

您应该将 .vscode/symbols 文件提交到源代码管理吗?

vscode中源代码管理点提交,弹出commit_editmsg的窗口。怎么样让它不弹出?

VSCode集成Git代码管理