[PATCH 2 of 2] Allow commit date before Unix epoch, clean fix for (issue2513)

Florent Gallaire fgallaire at gmail.com
Thu Mar 31 22:03:16 EDT 2016


# HG changeset patch
# User Florent Gallaire <fgallaire at gmail.com>
# Date 1459475770 -7200
#      Fri Apr 01 03:56:10 2016 +0200
# Node ID 7f6081a0fc762d2d17bcfb4a5ab77d1ac57a2199
# Parent  ece34634e504271cf2a1dc696a2a0486a8b13488
date: clean fix for Windows buggy gmtime() (issue2513)

diff -r ece34634e504 -r 7f6081a0fc76 mercurial/util.py
--- a/mercurial/util.py    Tue Mar 29 02:50:16 2016 +0200
+++ b/mercurial/util.py    Fri Apr 01 03:56:10 2016 +0200
@@ -1586,11 +1586,11 @@
         format = format.replace("%1", "%c%02d" % (sign, q))
         format = format.replace("%2", "%02d" % r)
     try:
-        t = time.gmtime(float(t) - tz)
-    except ValueError:
+        t = datetime.datetime(1970, 1, 1) + datetime.timedelta(seconds=t - tz)
+    except OverflowError:
         # time was out of range
-        t = time.gmtime(sys.maxint)
-    s = time.strftime(format, t)
+        t = cmp(t, 0) * 0x7fffffff
+    s = t.strftime(format)
     return s

 def shortdate(date=None):


More information about the Mercurial-devel mailing list