diff options
author | Shawn O. Pearce <spearce@spearce.org> | 2008-08-21 08:40:44 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-08-21 23:30:17 -0700 |
commit | ea360dd0538d03d25f512efe2f100beb3e7c2130 (patch) | |
tree | 1fd073a89620dacec2309f904336c36c489d53ea | |
parent | 1352fdbe3b16f30bfad308b737bc79e7b980318a (diff) | |
download | git-ea360dd0538d03d25f512efe2f100beb3e7c2130.tar.gz git-ea360dd0538d03d25f512efe2f100beb3e7c2130.tar.xz |
Make reflog query '@{1219188291}' act as '@{2008.8.19.16:24:51.-0700}'
As we support seconds-since-epoch in $GIT_COMMITTER_TIME we should
also support it in a reflog @{...} style notation. We can easily
tell this part from @{nth} style notation by looking to see if the
value is unreasonably large for an @{nth} style notation.
The value 100000000 was chosen as it is already used by date.c to
disambiguate yyyymmdd format from a seconds-since-epoch time value.
A reflog with 100,000,000 record entries is also simply not valid.
Such a reflog would require at least 7.7 GB to store just the old
and new SHA-1 values. So our randomly chosen upper limit for @{nth}
notation is "big enough".
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | sha1_name.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sha1_name.c b/sha1_name.c index 4fb77f886..41b680915 100644 --- a/sha1_name.c +++ b/sha1_name.c @@ -349,7 +349,10 @@ static int get_sha1_basic(const char *str, int len, unsigned char *sha1) else nth = -1; } - if (0 <= nth) + if (100000000 <= nth) { + at_time = nth; + nth = -1; + } else if (0 <= nth) at_time = 0; else { char *tmp = xstrndup(str + at + 2, reflog_len); |