gpt4 book ai didi

GIT:如何以高效的方式观察本地变化?

转载 作者:太空狗 更新时间:2023-10-29 13:26:33 26 4
gpt4 key购买 nike

简短描述

我想以高效的方式检测本地 git 存储库中的本地更改。这意味着检测哪些文件在本地被修改,还有未版本控制的文件。必须拾取任何未提交的更改/文件添加。

我的尝试

到目前为止我得到了什么( Gist ):https://gist.github.com/kevin-smets/02bda148a5330f350e6b

这是一个可以独立运行或作为 git 插件运行的脚本。它所做的基本上如下,每两秒启动一次 git status --porcelain,解释它以检查更改了哪些文件。但是,当它运行时,它会持续占用大约 8% 的 CPU。我尝试了 git --diff-files 和各种其他命令,但都导致了高 CPU 使用率。 :(

为什么?

我想将这个文件列表提供给一个 grunt watch 进程。目前我的代码库大约有 15k 个文件并且还在增长。观看所有这些文件将变得不可能。我已经应用了一个静态过滤器来限制观看的文件数量,但是每次我想在定义的过滤器之外编辑文件时手动更改它变得很麻烦。

一个想法

我的一个想法是,IntelliJ/WebStorm(我当前的 IDE)如何监控 GIT 存储库?我试着研究社区版的源代码,但是,我想不通 :)。 WebStorm 一定有某种方法可以在不占用 CPU 的情况下执行此操作,它似乎会在一秒或更短的超时时间内获取这些更改......即使它们是在 IDE 之外进行的。我想知道 GIT 中是否有一些事件系统,但我找不到任何类似的东西。

感谢阅读

任何帮助,总是非常感谢!

最佳答案

我正在使用:

git status -s --porcelain

基准

time git status -s --porcelain
#...
real 0m0.078s
user 0m0.032s
sys 0m0.011s

简单:

time git status

#...
real 0m0.182s
user 0m0.075s
sys 0m0.089s

关于GIT:如何以高效的方式观察本地变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24656200/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com