When messing around with various repositories, I noticed that git 1.8 (currently using 1.8.2.rc0.22.gb3600c3) has problems parsing tag objects that have invalid timestamps. Times in tag objects appear to be kept as Unix timestamps, but I didn't realize this at first, and ran something roughly equivalent to: git cat-file -p $tagname | git hash-object -w -t tag --stdin creating a tag object the "tagger" line containing formatted time instead of a Unix timestamp. Git doesn't handle the resulting tag objects nicely at all. For example, running `git cat-file -p` on the new object outputs a really odd timestamp "Thu Jun Thu Jan 1 00:16:09 1970 +0016" (I'm guessing it parses the year as Unix time), and `git show` outright crashes (backtrace included below.) I would have expected both commands to print a "tag object corrupt" message, or maybe even a more specific "bad timestamp in tagger line"... To reproduce: printf '%s\n' \ 'object 4b825dc642cb6eb9a060e54bf8d69288fbee4904' 'type tree' \ 'tag test' 'tagger User <user@none> Thu Jun 9 16:44:04 2005 +0000' \ '' 'Test tag' | git hash-object -w -t tag --stdin | xargs git show > #0 0x00007f42560bb5f3 in ____strtoull_l_internal () from /usr/lib/libc.so.6 > No symbol table info available. > #1 0x00000000004b4c81 in pp_user_info (pp=pp@entry=0x7fff3c30f1a0, > what=what@entry=0x50c13b "Tagger", sb=sb@entry=0x7fff3c30f140, > line=0xc267c7 "Jilles Tjoelker <jilles@xxxxxxxx> Thu Jun 9 16:44:04 2005 +0000\n\nTag 1.0rc1.\n\n", encoding=0x507e20 "UTF-8") at pretty.c:431 > name = {alloc = 24, len = 15, buf = 0xc24690 "Jilles Tjoelker"} > mail = {alloc = 24, len = 15, buf = 0xc24750 "jilles@xxxxxxxx"} > ident = { > name_begin = 0xc267c7 "Jilles Tjoelker <jilles@xxxxxxxx> Thu Jun 9 16:44:04 2005 +0000\n\nTag 1.0rc1.\n\n", > name_end = 0xc267d6 " <jilles@xxxxxxxx> Thu Jun 9 16:44:04 2005 +0000\n\nTag 1.0rc1.\n\n", > mail_begin = 0xc267d8 "jilles@xxxxxxxx> Thu Jun 9 16:44:04 2005 +0000\n\nTag 1.0rc1.\n\n", mail_end = 0xc267e7 "> Thu Jun 9 16:44:04 2005 +0000\n\nTag 1.0rc1.\n\n", > date_begin = 0x0, date_end = 0x0, tz_begin = 0x0, tz_end = 0x0} > linelen = <optimized out> > line_end = <optimized out> > date = <optimized out> > mailbuf = 0xc267d8 "jilles@xxxxxxxx> Thu Jun 9 16:44:04 2005 +0000\n\nTag 1.0rc1.\n\n" > namebuf = 0xc267c7 "Jilles Tjoelker <jilles@xxxxxxxx> Thu Jun 9 16:44:04 2005 +0000\n\nTag 1.0rc1.\n\n" > namelen = 33 > maillen = 15 > max_length = 78 > time = <optimized out> > tz = <optimized out> > #2 0x0000000000439af5 in show_tagger (buf=<optimized out>, len=<optimized out>, > rev=<optimized out>) at builtin/log.c:400 > pp = {fmt = CMIT_FMT_MEDIUM, abbrev = 0, subject = 0x0, after_subject = 0x0, > preserve_subject = 0, date_mode = DATE_NORMAL, date_mode_explicit = 0, > need_8bit_cte = 0, notes_message = 0x0, reflog_info = 0x0, > output_encoding = 0x0, mailmap = 0x0, color = 0} > out = {alloc = 0, len = 0, buf = 0x7a8188 <strbuf_slopbuf> ""} > #3 show_tag_object (rev=0x7fff3c30f1f0, > sha1=0xc2be44 "\230\211\275\331\365Q\306z\017\071d\331\035\062\247a\347~M8P", <incomplete sequence \303>) at builtin/log.c:427 > new_offset = 151 > type = OBJ_TAG > buf = 0xc26770 "object ffa28d13e40e03bd367d0219c7eb516be0f180d2\ntype commit\ntag hyperion-1.0rc1\ntagger Jilles Tjoelker <jilles@xxxxxxxx> Thu Jun 9 16:44:04 2005 +0000\n\nTag 1.0rc1.\n\n" > size = 165 > offset = <optimized out> -- Mantas Mikulėnas <grawity@xxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html