diff options
author | Eric Wong <normalperson@yhbt.net> | 2009-07-02 21:34:54 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-07-06 09:36:16 -0700 |
commit | f290974390c9be76e9166df6f0ab5ad790b812ac (patch) | |
tree | 4e6856e53e2eefd3e1fa1736377db59d48c66cdd | |
parent | c8400d9ef57dc68925d93d0cb9f1777396b380e2 (diff) | |
download | git-f290974390c9be76e9166df6f0ab5ad790b812ac.tar.gz |
Allow the Unix epoch to be a valid commit date
It is common practice to use the Unix epoch as a fallback date
when a suitable date is not available. This is true of git svn
and possibly other importing tools that import non-git history
into git.
Instead of clobbering established strtoul() error reporting
semantics with our own, preserve the strtoul() error value
of ULONG_MAX for fsck.c to handle.
Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | commit.c | 6 | ||||
-rw-r--r-- | fsck.c | 2 |
2 files changed, 2 insertions, 6 deletions
@@ -50,7 +50,6 @@ struct commit *lookup_commit(const unsigned char *sha1) static unsigned long parse_commit_date(const char *buf, const char *tail) { - unsigned long date; const char *dateptr; if (buf + 6 >= tail) @@ -73,10 +72,7 @@ static unsigned long parse_commit_date(const char *buf, const char *tail) if (buf >= tail) return 0; /* dateptr < buf && buf[-1] == '\n', so strtoul will stop at buf-1 */ - date = strtoul(dateptr, NULL, 10); - if (date == ULONG_MAX) - date = 0; - return date; + return strtoul(dateptr, NULL, 10); } static struct commit_graft **commit_graft; @@ -229,7 +229,7 @@ static int fsck_commit(struct commit *commit, fsck_error error_func) struct commit_graft *graft; int parents = 0; - if (!commit->date) + if (commit->date == ULONG_MAX) return error_func(&commit->object, FSCK_ERROR, "invalid author/committer line"); if (memcmp(buffer, "tree ", 5)) |