--- a/mercurial/util.py Mon Nov 14 18:16:01 2011 +0100
+++ b/mercurial/util.py Thu Nov 17 16:53:17 2011 -0600
@@ -16,7 +16,7 @@
from i18n import _
import error, osutil, encoding
import errno, re, shutil, sys, tempfile, traceback
-import os, time, calendar, textwrap, signal
+import os, time, datetime, calendar, textwrap, signal
import imp, socket, urllib
if os.name == 'nt':
@@ -900,16 +900,14 @@
yield s
def makedate():
- lt = time.localtime()
- if lt[8] == 1 and time.daylight:
- tz = time.altzone
- else:
- tz = time.timezone
- t = time.mktime(lt)
- if t < 0:
+ ct = time.time()
+ if ct < 0:
hint = _("check your clock")
- raise Abort(_("negative timestamp: %d") % t, hint=hint)
- return t, tz
+ raise Abort(_("negative timestamp: %d") % ct, hint=hint)
+ delta = (datetime.datetime.utcfromtimestamp(ct) -
+ datetime.datetime.fromtimestamp(ct))
+ tz = delta.days * 86400 + delta.seconds
+ return ct, tz
def datestr(date=None, format='%a %b %d %H:%M:%S %Y %1%2'):
"""represent a (unixtime, offset) tuple as a localized time.
@@ -1708,7 +1706,8 @@
# letters to paths with drive letters.
if hasdriveletter(self._hostport):
path = self._hostport + '/' + self.path
- elif self.host is not None and self.path:
+ elif (self.host is not None and self.path
+ and not hasdriveletter(path)):
path = '/' + path
return path
return self._origpath