Looks like I missed a lot of fun I'm sleeping ;) The current repo is a product of our core crossplatform team, working on Linux/MacOSX/Win32 environment. The Linux environment also separates on Ubuntu/ArchLinux distros, and probably most of repo bugs coming from ArchLinux, since other environments are stable in time. I can't say exact git verison the bugs was introduced, but we have a commits, dated by 0 secs since the Epoch and invalid Author fields also. Also git fsck --full got the following stats on repo Checking object directories: 100% (256/256), done. error in commit 7eeb541987af8a589c6ebee53346c48a13142233: invalid author/committer line - missing space before date error in commit c23b0a487143e5d5d96cdc5354975e95114241ee: invalid author/committer line - missing space before date error in commit c7fa421863e073996b5d1ba6beb6001b9d146cba: invalid author/committer line - missing space before date error in commit 131155bd75c588bcd251b719c483d1d5bcb78504: invalid author/committer line - missing space before date error in commit 0888e7ffe6ae0aaf1b6d1ba67d05715487f88a52: invalid author/committer line - missing space before date error in commit 3cdeddd15c251a13fb3e79844ed3ea0e02cb611a: invalid author/committer line - missing space before date error in commit 21f9fe1565d89da845fc7080495c922103bacf24: invalid author/committer line - missing space before date error in commit f557d3427ba1bb33a1c1fd2c7936efa7e7c70281: invalid author/committer line - missing space before date error in commit c625943779c72b41b08b41730e56126b89cbb7b4: invalid author/committer line - missing space before date error in commit a83fc863991aae2bdad148a5897ed4315792dd82: invalid author/committer line - missing space before date error in commit 207321f773e695b2ae88884c34620bc663383f90: invalid author/committer line - missing space before date error in commit 67368e9eda9892acd6c6ebf03dd6f22b6de2db8a: invalid author/committer line - missing space before date error in commit 525a5d508a7f466a1339752e921517f4db8c4af6: invalid author/committer line - missing space before date error in commit 38215e27f74caa342e3353c4cd548fcf8c1df3dc: invalid author/committer line - missing space before date error in commit 1ee0167194eb34caca2c20ce5c74d062fc898718: invalid author/committer line - missing space before date error in commit 3274c469b981285f9a4d0b0a62afbb8f4d3e93ae: invalid author/committer line - missing space before date error in commit f37ab83f71ca93f42256e05efdd4244eb321efaf: invalid author/committer line - missing space before date error in commit 9bb6f7d63bb5a37b8afc3ae090bd6f34deb68633: invalid author/committer line - missing space before date Checking objects: 100% (9576/9576), done. And I haven't find a way to fix without loosing a commits history, so we left them as it is. I will check the approved patches and writeback a little bit later. Thanks a lot for looking this Ivan 2013/4/17 Junio C Hamano <gitster@xxxxxxxxx>: > René Scharfe <rene.scharfe@xxxxxxxxxxxxxx> writes: > >> How about making split_ident_line() a bit friendlier be letting it >> provide the epoch as default time stamp instead of NULL? > > Two knee-jerk concerns I have without going back to the callers: > > * Would that "0" ever be given to the approxidate parser, which > rejects ancient dates in numbers-since-epoch format without @ > prefix? > > * Does any existing caller use the NULL as a sign to see the input > was without date and act on that information? > > >> -- >8 -- >> Subject: ident: let split_ident_line() provide a default time stamp >> >> If a commit has a broken time stamp, split_ident_line() sets >> date_begin, date_end, tz_begin and tz_end to NULL. Not all callers >> are prepared to handle that case and segfault. >> >> Instead of fixing them and having to be careful while implementing >> the next caller, provide a string consisting of the number zero as >> default value, representing the UNIX epoch. That's the value that >> git log showed before it was converted to use split_ident_line(). >> >> Reported-by: Ivan Lyapunov <dront78@xxxxxxxxx> >> Signed-off-by: Rene Scharfe <rene.scharfe@xxxxxxxxxxxxxx> >> --- >> ident.c | 10 ++++++---- >> 1 file changed, 6 insertions(+), 4 deletions(-) >> >> diff --git a/ident.c b/ident.c >> index 1c123e6..ee840f4 100644 >> --- a/ident.c >> +++ b/ident.c >> @@ -191,6 +191,8 @@ static void strbuf_addstr_without_crud(struct strbuf *sb, const char *src) >> sb->buf[sb->len] = '\0'; >> } >> >> +static const char zero_string[] = "0"; >> + >> /* >> * Reverse of fmt_ident(); given an ident line, split the fields >> * to allow the caller to parse it. >> @@ -254,10 +256,10 @@ int split_ident_line(struct ident_split *split, const char *line, int len) >> return 0; >> >> person_only: >> - split->date_begin = NULL; >> - split->date_end = NULL; >> - split->tz_begin = NULL; >> - split->tz_end = NULL; >> + split->date_begin = zero_string; >> + split->date_end = zero_string + strlen(zero_string); >> + split->tz_begin = zero_string; >> + split->tz_end = zero_string + strlen(zero_string); >> return 0; >> } -- 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