为什么 man 在 00:30 打印“gimme gimme gimme”? (2017)

2021-07-29 22:05:44

我们注意到,我们的一些自动测试在 00:30 运行时会失败,但在一天的其余时间运行良好。他们失败并显示消息 6 I don't get it。为什么您的测试脚本会在应该失败的地方调用 man? – Joshua @Joshua 因为我们想要“manpath” - 'man -w'。看到答案。 – Jaroslav Kucera 为了历史,为什么你需要每分钟做一次'm​​an -w'?你真正在测试什么? – Olivier Dulac @OlivierDulac 它在测试中只被触发一次。我们重新安排了测试顺序,突然这个错误在 00:30 触发时出现了...... – Jaroslav Kucera 亲爱的@colmmacuait,我认为如果你在 0001 小时输入“man”,它应该打印“gimme gimme gimme ”。 #abba @marnanel - 2011 年 11 月 3 日几乎整个故事都在提交中。 man 的维护者是我的好朋友,六年前的一天我开玩笑地对他说,如果你在午夜之后调用 man 应该打印“gimme gimme gimme”,因为阿爸的歌叫“Gimme gimme gimme gimme a man”午夜过后”:

嗯,他确实把它放进去了。一些人发现它很有趣,直到今天我们大多忘记了它。显然,我不能代表 Col 发言,但我没想到这会导致任何问题:在解析没有指定页面的 man 输出时,什么样的测试会中断?我想我不应该对最终出现一个人感到惊讶,但它确实花了六年时间。 (提交消息称我为 Thomas,这是我的合法名字,虽然我很少在网上使用它。)此问题已通过提交 84bde8 修复:使用 man -w 运行 man 将不再触发这个复活节彩蛋。 8 哎呀!它从未打算影响非错误情况。我在实现 git.savannah.gnu.org/cgit/man-db.git/commit/... 时没有考虑到这一点。已在 master 中修复:git.savannah.gnu.org/cgit/man-db.git/commit/... – Colin Watson 评论不用于扩展讨论;此对话已移至聊天。 – terdon ♦ 评论用于要求澄清和/或讨论答案的技术要点。如果您想讨论复活节彩蛋的优点,请拿来聊天。 – terdon ♦

这是人类的复活节彩蛋。当您在不指定页面或使用 -w 的情况下运行 man 时,它会将“gimme gimme gimme”输出到 stderr,但仅限于 00:30:字符串“gimme gimme gimme”可以在 RHEL、OpenSUSE、Fedora、Debian 中找到,可能还有更多,所以它并不是真正的发行版。您可以 grep 您的 man 二进制文件进行验证。 src/man.c-1167- if (first_arg == argc) {src/man.c-1168- /* http://twitter.com/#!/marnanel/status/132280557190119424 */src/man.c- 1169- time_t now = time (NULL);src/man.c-1170-struct tm *localnow = localtime (&now);src/man.c-1171- if (localnow &&src/man.c-1172-localnow-> tm_hour == 0 && localnow->tm_min == 30)src/man.c:1173: fprintf (stderr, "gimme gimme gimme\n");琴弦来自著名的 ABBA 歌曲 Gimme!给我!给我! (午夜过后的男人)。 man-db 的开发者 Colin Watson 认为有足够的乐趣并且故事不会被遗忘并完全删除了复活节彩蛋。 11 在提供 faketime 的平台上,您甚至无需更改系统时间即可尝试此操作: faketime '00:30:00' man (Debian 8)。 – roaima 作者现在已经收紧了复活节彩蛋只运行在人身上,而不是人 -w:git.savannah.nongnu.org/cgit/man-db.git/commit/src/... 和 Colin 对 Marnanel 的自白的评论^Wanswer . – 马丁·彼得斯

让我们提一下,最初的提交是在凌晨 12:01 触发的。后续提交将其更改为上午 12:30,提交日志消息“十二点半”再次引用了同一首歌。 – egmont @0x90 man -w 打印当前的手册页搜索路径,这是您可以相当合理地用作其他内容的构建块的类型,例如,如果您正在自动化的内容涉及安装或测试手册页。 – Colin Watson 经过一些思考,我已经移除了这个复活节彩蛋。它会在即将到来的 man-db 2.8.0 中消失。我很高兴它让一些人微笑,毕竟这就是它的全部目的,我今天的 Twitter 通知等等表明,大多数人认为这更有趣而不是烦人。尽管如此,有些人确实觉得这很烦人,六年似乎对这种事情来说是一个不错的选择。通过这个问题,它可能不会获得比它已经出乎意料地更好的曝光率。是时候把它放在床上了。 11 我真的很难过你决定了。 IMO 有太多人想要复活节彩蛋了。 – Seth 我不排除在未来添加一些不同的东西,尽管要更加小心!然而,它变得有点陈旧,幽默确实需要新奇。 - 科林·沃森我有@Seth同意,这是可悲的,看看这使我们大多数人的微笑,我们需要更多的实际对这个世界的东西去了。 – Videonauth

@ColinWatson 我认为在默认流程中禁用它是一个好主意,因此它不会破坏任何人的工作流程。但与此同时,这样的杰作不得不被移除,真是太可惜了。你可以添加一个像 man -abba 这样的特殊标志,当午夜过后被解雇时会得到复活节彩蛋。 – Bartlomiej Skwira 不是您要找的答案?浏览其他标记的问题或提出您自己的问题。