Neden insan 00: 30'da "ver gimme gimme" yazıyor?


1625

Bazı otomatik testlerimizin 00: 30'da çalıştıklarında başarısız olduklarını ancak günün geri kalanında iyi çalıştığını fark ettik. Beklenmeyen stderr'de "gimme gimme gimme" mesajı ile başarısız oldular. Neden bu çıktıyı alıyoruz?



54
Anlamadım. Test komut dosyanız neden başarısız olması gereken bir adama çağrı yapıyor?
Joshua

19
@Joshua Çünkü biz "manpat" istedik - 'man -w'. Cevabı gör.
Jaroslav Kucera

67
Tarih uğruna neden her dakika bir 'adam-adam' yapman gerekiyor? gerçekten ne test ediyorsun
Olivier Dulac

22
@OlivierDulac Testte sadece bir kez tetikleniyor. Testlerin sırasını değiştirdik ve aniden bu hata 00: 30'da tetiklendiğinde ortaya çıktı ...
Jaroslav Kucera

Yanıtlar:


2146

Sevgili @colmmacuait , 0001 saatinde "man" yazarsanız "gimme gimme gimme" yazması gerektiğini düşünüyorum. #abba @marnanel - 3 Kasım 2011

bu benim hatamdı, önerdim. Üzgünüm.

Neredeyse tüm hikaye taahhüttedir. İnsanın sürdürücü benim iyi arkadaşım ve altı yıl önce bir gün şakayla gece yarısından sonra adamı çağırmak eğer "yazdırmak gerektiğini ona şöyle dedi Gimme gimme gimme çünkü" denilen Abba şarkının," Bir adam Gimme gimme gimme gece yarısından sonra ":

Eh, aslında yoktu koydu içinde . Birkaç kişi onu keşfetmek için eğlendirildi ve çoğunlukla bugüne kadar unutmuştuk.

Açıkçası Col için konuşamam , ama bunun herhangi bir soruna yol açmasını beklemiyordum: Sayfa çıktısı olmayan bir insanın çıktısını ayrıştırmada ne tür bir test yapılır? Sanırım sonunda ortaya çıktığına şaşırmamalıyım ama altı yıl sürdü.

( Taahhüt mesajı beni çevrimiçi kullanmasam da yasal adım olan Thomas'ı çağırıyor.)

Bu sorun 84bde8 taahhüdü ile çözüldü : Adamla koşmak man -wbu paskalya yumurtasını tetiklemeyecek.


361
Hata! Hatalı olmayan durumları hiçbir zaman etkilemeyecek. Git.savannah.gnu.org/cgit/man-db.git/commit/… uygulamasında bunu dikkate almadım . Master'da düzeltildi: git.savannah.gnu.org/cgit/man-db.git/commit/…
Colin Watson

3
Yorumlar uzun tartışmalar için değildir; bu konuşma sohbete taşındı .
terdon

13
Yorumlar, açıklamayı istemek ve / veya bir cevabın teknik noktalarını tartışmak içindir . Paskalya yumurtalarının esasını tartışmak istiyorsanız, lütfen sohbete götürün .
terdon

8
Mamma mia, şimdi gerçekten biliyorum!
Enrico Maria De Angelis

3
belki de insanın
Patrick Taylor 6:

423

Bu bir paskalya yumurtası içeride man. manSayfayı belirtmeden veya birlikte çalıştırmadan çalıştırdığınızda -w, stderr'e "gimme gimme gimme" çıktısını verir, ancak yalnızca saat 00: 30'da:

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

Çıkış kodu her zaman 0'dır.

Doğru çıktı her zaman şöyle olmalıdır:

# 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" dizgisi RHEL, OpenSUSE, Fedora, Debian ve muhtemelen daha fazlasında bulunabilir, bu yüzden gerçekten kesin değil. Sen edebilirsiniz grepsenin manikili doğrulamak için.

Bu kod, bu taahhüt tarafından eklenen çıktıdan sorumludur :

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");

Bu konuda RHEL desteğine başvurdum.

Dize tanınmış ABBA şarkısı Gimme'den geliyor! Ver! Ver! Geceyarısından Sonra Bir Adam .


Man-db'nin geliştiricisi Colin Watson, yeterince eğlendiğine karar verdi ve hikaye unutulmayacak ve paskalya yumurtasını tamamen ortadan kaldırmayacaktı .

Teşekkürler Colin!


147
faketimeKullanılabilir platformlarda , sistem saatini değiştirmeye bile gerek kalmadan bunu deneyebilirsiniz: faketime '00:30:00' man(Debian 8).
roaima


38
Sadece çalıştırmak için yazar şimdi paskalya yumurtası arttırdı mandeğil man -w: git.savannah.nongnu.org/cgit/man-db.git/commit/src/... ve Marnanel en Confessio ^ Wanswer üzerinde Colin'in comment .
Martijn Pieters

21
İlk taahhüdün 12: 01'de tetiklendiğini söyleyelim. Bir takip taahhüdü, aynı şarkıdan tekrar alıntılanan "on iki buçuktan sonra" taahhütlü log mesajı ile sabah saat 12: 30'a değiştirildi.
egmont

6
@ 0x90 man -w, geçerli bir manuel sayfa arama yolunu yazdırır; bu, başka bir şey için yapı taşı olarak oldukça makul bir şekilde kullanabileceğiniz türden bir şeydir;
Colin Watson

364

Biraz yansımasından sonra, bu Paskalya yumurtasını çıkardım . Yakında çıkacak olan man-db 2.8.0'da.

Bazı insanları gülümsetmesine sevindim, sonuçta bunun amacı bu, ve Twitter bildirimlerim ve bugün, çoğu insanın sinir bozucu olmaktan daha eğlenceli olduğunu düşündüğünü söylüyor. Yine de, bazı insanlar onu sinir bozucu buluyorlardı ve altı yıl bu tür şeyler için oldukça iyi bir koşuya benziyor; Muhtemelen beklenmedik bir şekilde bu soru ile elde edilenden çok daha iyi bir şekilde ortaya çıkmayacak. Yatma zamanı geldi.


121
Buna karar verdiğin için gerçekten üzgünüm. IMO, Paskalya yumurtaları için çok fazla insan var.
Seth

36
Gelecekte, daha dikkatli olsa da, farklı bir şeyler eklemeyi dışlamam! Yine de biraz bayatlıyordu ve mizah yenilik gerektiriyor.
Colin Watson,

31
@Seth ile aynı fikirdeyim, çoğumuzu güldüren bir şeyler olduğunu görmek üzücü, aslında bu dünyada daha fazlasına ihtiyacımız var.
Videonauth

189
Umarım bu hiçbir iş akışını bozmaz xkcd.com/1172
Lakshay Garg

73
@ColinWatson Bunu varsayılan bir akışta devre dışı bırakmanın iyi bir fikir olduğunu düşünüyorum, bu nedenle kimsenin iş akışını bozmaz. Fakat aynı zamanda, böyle bir şaheserin çıkarılması gereken bir utanç. Gibi özel bir bayrak ekleyebilirsiniz man -abbave gece yarısından sonra ateş zaman paskalya yumurtası verecekti.
Bartlomiej Skwira
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.