왜 사람이 00:30에 "gimme gimme gimme"를 인쇄합니까?


1625

우리는 자동 테스트 중 일부가 00:30에 실행될 때 실패하지만 하루 종일 제대로 작동한다는 것을 알았습니다. stderr에서 "gimme gimme gimme"메시지와 함께 실패하지만 예상하지 못했습니다. 이 결과를 얻는 이유는 무엇입니까?



54
나는 그것을 얻지 못한다. 테스트 스크립트가 왜 실패해야 할지를 man으로 호출합니까?
Joshua

19
@Joshua "manpath"- 'man -w'를 원했기 때문입니다. 답을보십시오.
Jaroslav Kucera

67
역사를 위해 왜 매분마다 'man-w'를해야합니까? 실제로 무엇을 테스트하고 있습니까?
Olivier Dulac

22
@OlivierDulac 테스트에서 한 번만 트리거됩니다. 우리는 테스트 순서를 재정의했으며 00:30에 트리거되면서 갑자기이 오류가 발생했습니다.
Jaroslav Kucera

답변:


2146

친애하는 @colmmacuait , 0001 시간에 "man"을 입력하면 " gimme gimme gimme "가 인쇄되어야한다고 생각합니다. #abba @ marnanel -2011 년 11 월 3 일

그게 내 잘못이야 내가 제안 했어 죄송합니다.

거의 모든 이야기가 커밋됩니다. 사람의 관리자는 나의 좋은 친구입니다. 그리고 6 년 전 어느 날 자정 이후에 사람을 불러 오면 " gimme gimme gimme "라는 Abba 노래 때문에 " gimme gimme gimme a man "이라고 인쇄했습니다. 자정 이후 ":

음, 그는 실제로 않았다 넣어 에서 . 몇몇 사람들은 그것을 발견하기 위해 즐겁게 지 냈으며, 우리는 오늘날까지 대부분 잊어 버렸습니다.

분명히 Col을 말할 수 는 없지만 이것이 아무런 문제를 일으키지 않을 것이라고는 생각하지 않았습니다. 나는 결국 하나가 나타났다는 것에 놀라지 말아야한다고 생각하지만 6 년이 걸렸다.

( 커밋 메시지 는 Thomas라고 부릅니다. 토마스는 온라인에서 많이 사용하지 않지만 법적 이름입니다.)

이 문제는 commit 84bde8 로 해결되었습니다 : Man with Running man -w은 더 이상이 부활절 달걀을 유발하지 않습니다.


361
죄송합니다! 오류가 아닌 경우에 영향을 미치지 않습니다. git.savannah.gnu.org/cgit/man-db.git/commit/…을 구현할 때 이것을 고려하지 않았습니다 . 마스터에서 수정 : git.savannah.gnu.org/cgit/man-db.git/commit/…
콜린 왓슨

3
의견은 긴 토론을위한 것이 아닙니다. 이 대화는 채팅 으로 이동 되었습니다 .
terdon

13
의견은 설명을 요구하거나 답변 의 기술적 요점을 논의하기 위한 것입니다. 이스터 에그의 장점에 대해 논의하고 싶다면 채팅하십시오 .
terdon

8
맘마 미아, 이제 정말 알아!
엔리코 마리아 데 안젤리 스

3
아마도 사람은
Patrick Taylor

423

에 부활절 달걀입니다 man. man페이지를 지정하지 않고 또는을 사용하여 실행하면 -w"gimme gimme gimme"가 stderr에 출력되지만 00:30에만 출력됩니다.

# date +%T -s "00:30:00"
00:30:00
# man -w
gimme gimme gimme
/usr/local/share/man:/usr/share/man:/usr/man

종료 코드는 항상 0입니다.

올바른 출력은 항상 다음과 같아야합니다.

# man -w
/usr/local/share/man:/usr/share/man:/usr/man
# echo $?
0
# man
What manual page do you want?
# echo $?
1

문자열 "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");

이 문제에 대해 RHEL 지원팀에 문의했습니다.

문자열은 잘 알려진 ABBA 노래 Gimme 에서 온 것입니다 ! 김미! 김미! (자정 이후의 남자) .


man-db 개발자 인 콜린 왓슨 (Colin Watson)은 재미가 충분하다고 결정했으며 이야기는 잊혀지지 않고 부활절 달걀을 완전히 제거했습니다 .

콜린 감사합니다!


147
사용 faketime가능한 플랫폼 에서는 시스템 시간을 변경하지 않고도이 작업을 시도 할 수 있습니다 : faketime '00:30:00' man(Debian 8).
roaima

5
@rrauenza buzilla 티켓이 있습니다 : bugzilla.redhat.com/show_bug.cgi?id=1515352
Jaroslav Kucera

38
만에 실행에 저자는 이제 부활절 달걀을 강화했다 man,하지 man -w: git.savannah.nongnu.org/cgit/man-db.git/commit/src/...Marnanel의 confessio ^ Wanswer 콜린의 코멘트 .
Martijn Pieters

21
초기 커밋이 오전 12시 1 분에 트리거되었다고 가정하겠습니다. 후속 커밋은 커밋 로그 메시지 "12시 반"이라는 메시지와 함께 12시 30 분으로 변경되었으며 같은 노래에서 다시 인용되었습니다.
egmont

6
@ 0x90 man -w은 현재 매뉴얼 페이지 검색 경로를 인쇄합니다. 예를 들어 자동화하려는 것이 매뉴얼 페이지의 설치 또는 테스트와 같은 경우 다른 것의 빌딩 블록으로 상당히 합리적으로 사용할 수있는 것입니다.
콜린 왓슨

364

약간의 반영 후, 나는 이 이스터 에그를 제거했습니다 . 다가오는 man-db 2.8.0에 나옵니다.

나는 그것이 일부 사람들을 미소 짓게해서 기쁘다. 결국 그 목적이 전부 였고, 트위터 알림은 오늘날 대부분의 사람들이 성가신 것보다 더 재미 있다고 생각한다고 제안한다. 그럼에도 불구하고 어떤 사람들은 성가신 것을 알게되었고 6 년은 그런 종류의 일에는 꽤 좋은 달리기 인 것 같습니다. 아마도이 질문에 의해 이미 예상치 못한 노출보다 훨씬 더 나은 노출을 얻지 못할 것입니다. 잠자리에들 시간입니다.


121
당신이 결정한 것이 정말 슬 sad습니다. 부활절 달걀에 너무 많은 사람들이 IMO를 가지고 있습니다.
세스

36
앞으로는 더주의를 기울이지 만 다른 것을 추가하는 것을 배제하지 않을 것입니다! 그래도 조금 낡았 고 유머에는 참신함이 필요합니다.
콜린 왓슨

31
@Seth에 동의해야합니다. 대부분의 사람들이 미소를 짓게 된 것은 슬픈 일입니다. 우리는이 세상에서 더 많은 것을 필요로합니다.
Videonauth

189
나는이 모든 워크 플로우를 아프게하지 않았 으면 좋겠 xkcd.com/1172
Lakshay Garg를

73
@ ColinWatson 기본 흐름에서 이것을 비활성화하는 것이 좋은 생각이므로 다른 사람의 작업 흐름을 방해하지 않습니다. 그러나 동시에, 걸작을 제거해야한다는 것은 부끄러운 일입니다. man -abba자정 이후에 발사했을 때 와 같은 특별한 깃발을 추가 하면 부활절 달걀을 줄 수 있습니다.
Bartlomiej Skwira
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.