git showlog,不带外壳转义序列,用于python sh

git showlog,不带外壳转义序列,用于python sh,第1张

git show / log,不带外壳转义序列,用于python sh

这些不是颜色序列,看起来像终端初始化序列。特别:

ESC [ ? 1 h ESC =

是打开功能键模式的顺序,

ESC [ ? 1 l ESC >

是再次将其关闭的顺序。这表明

gitlog
正在通过寻呼机运行。我不太清楚为什么。通常,当输出是管道时,git会抑制对分页器的使用(
subprocess.Popen()
至少与它一样
sh
,尽管我没有使用过该
sh
模块,但我会考虑with
)。

(暂停查阅文档…)

啊哈!根据sh sh模块文档,默认情况下,

sh
-module-
run命令的输出通过伪tty。这是在欺骗git运行您的寻呼机。

作为一种较脏的解决方法

git --no-pager log...
,即使使用,您也可以禁止使用寻呼机
sh
。或者,您可以尝试使用该
_tty_out=False
参数(再次,我没有使用过
sh
模块,您将不得不进行一些实验)。有趣的是,sh模块文档底部的示例之一是git!



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5673849.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存