X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=builtin%2Fname-rev.c;h=b0f0776947f05e551f5bd06a4a0e291aa19a56f3;hb=c555caab7a303109d6c712d757bc4621a3ee0bbd;hp=c785fe16bade1a67d4da782d91b61bdd61d99115;hpb=74a39b9bcc9086cf4405aa532bb6e02e3436d5e4;p=thirdparty%2Fgit.git diff --git a/builtin/name-rev.c b/builtin/name-rev.c index c785fe16ba..b0f0776947 100644 --- a/builtin/name-rev.c +++ b/builtin/name-rev.c @@ -9,7 +9,11 @@ #include "sha1-lookup.h" #include "commit-slab.h" -#define CUTOFF_DATE_SLOP 86400 /* one day */ +/* + * One day. See the 'name a rev shortly after epoch' test in t6120 when + * changing this value + */ +#define CUTOFF_DATE_SLOP 86400 typedef struct rev_name { const char *tip_name; @@ -481,8 +485,13 @@ int cmd_name_rev(int argc, const char **argv, const char *prefix) add_object_array(object, *argv, &revs); } - if (cutoff) - cutoff = cutoff - CUTOFF_DATE_SLOP; + if (cutoff) { + /* check for undeflow */ + if (cutoff > TIME_MIN + CUTOFF_DATE_SLOP) + cutoff = cutoff - CUTOFF_DATE_SLOP; + else + cutoff = TIME_MIN; + } for_each_ref(name_ref, &data); if (transform_stdin) {