- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在研究检查存储库更改以更新 PS1 提示的最快方法。由于不值得详细说明的原因,无法访问 __git_ps1() 宏,无论如何其他帖子建议了各种命令,包括 __git_ps1() 中使用的命令。
原因:我正在通过 VPN 和 ssh 访问远程服务器上的存储库,远程存储库通过我与内部 git 服务器的连接隧道返回。我猜测(但真的不确定这是不是真的)这可能是在新的一天建立新连接时,cd 进入此远程服务器上的 repo 可能导致 git ls-files 的原因 - m
需要 3 或 4 秒才能完成,并且在文件缓存有帮助后仍需要最多 1 秒。
为了改进这一点,我发现 git diff-index --quiet HEAD
几乎是即时的,但第二天它开始返回“1”,即使实际上没有任何变化(没有输出非常git status
运行缓慢)。我发现 git update-index --refresh -q
似乎可以(快速)解决问题,如果实际上没有任何变化,也会返回“0”。
从我读到的内容来看,我认为从 PS1 提示符运行应该是安全的,但我知道这是一个“较低级别”的 git 命令,我可能不理解所有的含义。所以,要清楚,我目前有以下检查更改,这似乎总是很快,但一天后开始在干净的 repo 中输出“*”。
if git diff-index --quiet HEAD 2>/dev/null && [[ -z "$(git ls-files --others --exclude-standard --directory --no-empty-directory)" ]]
then echo -n " "
else echo -n " *"
fi
任何“git 专家”都可以看到将第一个测试更改为 git update-index --refresh -q
的问题吗?
最佳答案
它应该可以工作,除非在 Git LFS (Large File Storage) 中使用其中,作为 explained here , 它可以触发活泼的时间戳。
这就是为什么在 Git 2.36(2022 年第 2 季度)中,"git update-index --refresh
"( man ) 被教导更好地处理活泼的时间戳(就像 "git status
"< sup>( man ) 已经这样做了)。
参见 commit 2ede073 , commit 9b71efd , commit 0275e4d , commit ab6245b (2022 年 1 月 7 日)Marc Strapetz (mstrap
) .
(由 Junio C Hamano -- gitster
-- merge 于 commit ee52b35 ,2022 年 2 月 5 日)
update-index
: refresh should rewrite index in case of racy timestampsSigned-off-by: Marc Strapetz
'
git update-index --refresh
'(man) and '--really-refresh' should force writing of the index file if racy timestamps have been encountered, as 'git status
'(man) already does.Note that calling '
git update-index --refresh
' still does not guarantee that there will be no more racy timestamps afterwards (the same holds true for 'git status
'): - calling 'git update-index --refresh
' immediately after touching and adding a file may still leave racy timestamps if all three operations occur within the racy-tolerance (usually 1 second unlessUSE_NSEC
has been defined) - calling 'git update-index --refresh
' for timestamps which are set into the future will leave them racyTo guarantee that such racy timestamps will be resolved would require to wait until the system clock has passed beyond these timestamps and only then write the index file.
Especially for future timestamps, this does not seem feasible because of possibly long delays/hangs.
关于git - 从 PS1 提示符运行 git update-index --refresh 安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34743025/
有什么方法可以自定义javascript提示框吗? 我想让我的提示只接受数字输入...(我想绑定(bind) keyup 事件 - 具体来说) 这可能吗? 最佳答案 默认的 javascript 提示
对我来说,现在是 bash-prompt-fiddling-time(总有一天……)。 我正在尝试获取两行提示: 第一行包含位置信息,背景颜色到行尾 第 2 行包含时间和上一个命令的退出代码 我快到了
大家好,我只是在学习 javascript,不过我有一些 html 和 css 背景。 我不知道如何只允许在提示中输入数字值,或者检查它是否是数字,如果不是则重新提示。文本框也是如此。 最佳答案 这是
编辑:原标题说“bash prompt”,但我使用“zsh”。我接受了@Artur R. Czechowski 的回答,因为它在 bash 上下文中是正确的,并且我能够在他的帮助下完成我的工作。 PR
是否可以配置stack ghci类似于ghci的方式通过 ~/.ghci 配置文件? 目前stack ghci不接受 ~/.ghci 中的设置文件。 我正在研究将提示设置为 lambda 而不是加载的
我喜欢在我的 PowerShell 提示符中包含 Mercurial/Git 存储库状态。有时这会减慢 prompt()功能相当大,导致长时间等待,直到您可以开始在 shell 中输入。我想知道,是否
我正在编写一个用于与远程服务交互的 PowerShell 模块。连接到远程服务时(通过模块中的函数),我想在提示符前添加用户名。断开连接后,我想删除用户名。 我以为我可以通过复制全局 prompt 来
我用java开发了我的远程屏幕共享软件。它工作正常,但是当使用 UAC 时,屏幕上会出现允许/禁止提示,但远程屏幕看不到它。所以每次用户都必须手动允许它。我想知道如何摆脱这个问题。 最佳答案 这正是
我有一个初始化脚本,它设置了几个变量供以后使用。最后一行定义了一个“提示”函数,我希望它能改变我的提示,作为初始化已经完成的指示。变量已设置,因此它不作为子进程运行,但我的提示顽固地停留在“PS”。出
我有一个与此类似的模板提示: prompt = f""" Write a poem about the topic delimited by triple backticks if it starts
我有一个与此类似的模板提示: prompt = f""" Write a poem about the topic delimited by triple backticks if it starts
我需要一些帮助才能恢复提示,现在我正在执行此 block ,不要让我恢复提示,我在运行末尾使用 &将此命令作为后台任务。执行脚本后如何返回提示符。 #!/bin/sh sudo su - user <
如果我的 html 中有一个简单的按钮: Start Game 我想要在我的 JS 中提示: var userAdjective = prompt("Please provide an Adjecti
我想提示用户在网页上进行一些输入。 我无法使用内置的 Javascript prompt 函数,因为它会在 IE 中创建安全警告。 是否有人们用来重新创建此内容的最佳实践/方法/示例? Javascr
我想将我的 bash 提示设置为固定宽度,并弥补 $ 之前的空格差异,因此无论长短,我的提示都保持相同的宽度: [name@host] ~/Directory/Dir...Another/LastDi
我有一个脚本可以读取用户的输入。这是我的代码: if [ -z $volreadexists ]; then echo -e "\tThis will overwrite the en
我的 ZSH 主题使用 .zsh-theme 文件中的 RPROMPT='$(vbox_status)' 输出我的 Vagrant/VBox VM 的状态(其中 vbox_status调用 a scr
我经常使用 vim,并且经常发现使用 !bash 进入命令行很有用。但是,我需要键入 exit 才能返回到 vim,有时我不确定我是否在子 shell 中或者这是否会关闭我的 session 。 我真
问题很简单。我想在我的 bash 脚本中评估 PS1 的当前值。 Google 上的所有资料都指向有关如何改进它的教程,但我想评估一下我当前的终端或至少 一些 终端将如何呈现它。 是否有任何软件/功能
如何在打印后台函数的输出后自动返回到我的 bash 提示符? 例如,当我在 bash shell 中运行以下脚本时: fn(){ sleep 10 echo "Done"
我是一名优秀的程序员,十分优秀!