mercurial/changelog.py
changeset 2137 5fefab118f7e
parent 2072 74d3f5336b66
child 2142 8a1e2a9c7013
equal deleted inserted replaced
2136:3335564f2518 2137:5fefab118f7e
    39     def add(self, manifest, list, desc, transaction, p1=None, p2=None,
    39     def add(self, manifest, list, desc, transaction, p1=None, p2=None,
    40                   user=None, date=None):
    40                   user=None, date=None):
    41         if date:
    41         if date:
    42             # validate explicit (probably user-specified) date and
    42             # validate explicit (probably user-specified) date and
    43             # time zone offset. values must fit in signed 32 bits for
    43             # time zone offset. values must fit in signed 32 bits for
    44             # current 32-bit linux runtimes.
    44             # current 32-bit linux runtimes. timezones go from UTC-12
       
    45             # to UTC+14
    45             try:
    46             try:
    46                 when, offset = map(int, date.split(' '))
    47                 when, offset = map(int, date.split(' '))
    47             except ValueError:
    48             except ValueError:
    48                 raise ValueError(_('invalid date: %r') % date)
    49                 raise ValueError(_('invalid date: %r') % date)
    49             if abs(when) > 0x7fffffff:
    50             if abs(when) > 0x7fffffff:
    50                 raise ValueError(_('date exceeds 32 bits: %d') % when)
    51                 raise ValueError(_('date exceeds 32 bits: %d') % when)
    51             if abs(offset) >= 43200:
    52             if offset < -50400 or offset > 43200:
    52                 raise ValueError(_('impossible time zone offset: %d') % offset)
    53                 raise ValueError(_('impossible time zone offset: %d') % offset)
    53         else:
    54         else:
    54             date = "%d %d" % util.makedate()
    55             date = "%d %d" % util.makedate()
    55         list.sort()
    56         list.sort()
    56         l = [hex(manifest), user, date] + list + ["", desc]
    57         l = [hex(manifest), user, date] + list + ["", desc]