我有一个使用“ git log --decorate --pretty = oneline”的脚本,并使用“ grep'tag:'”查找标签的结果,该脚本适用于我们的大多数存储库,但是最近看来看到几个新的回购协议将结果返回给脚本,但没有'tag:'
示例:
(HEAD, tag: 1.0.0-DEV, origin/development, development)
VS
(HEAD, 1.0.0-DEV, origin/development, development)
如果我以同一用户的身份交互运行脚本命令,则不会获得相同的结果,因此我不知为何在几次回购中,脚本会获得不同的结果,而同一用户将以交互方式运行。
关于可能是什么原因的任何想法?
答案 0 :(得分:0)
我不知道是什么原因导致了该特定问题。 Git版本2.4.x中有一些关于装饰的修复和更改,而2.13.1中有一个更新用于修复log.decorate=no
(根本没有遵守),但是这些都不能解释为什么{{ 1}}丢失了,但是标签本身就出来了。
更可能是该问题的出处,是某种i18n问题,但the tag:
prefix inserted by log-tree.c
is not run through the translation system in the first place(请注意缺少tag:
)。
您应该能够看到的唯一方式:
_("tag: ")
如果存在 名为(HEAD, 1.0.0-DEV, origin/development, development)
的分支和 not 名为{{ 1}}。 (如果同时存在,则应该同时看到1.0.0-DEV
和1.0.0-DEV
。)但这应该是一致的:在该特定提交上运行1.0.0-DEV
的每个用户都应该看到相同的内容。 / p>
(您当然可以使用tag: 1.0.0-DEV
完整显示每个参考,以确保这些存储库确实具有正确的参考集。)