mercurial/changelog.py
changeset 2523 4ab59a3acd16
parent 2522 85f796baab10
child 2858 345bac2bc4ec
equal deleted inserted replaced
2522:85f796baab10 2523:4ab59a3acd16
    37         return self.extract(self.revision(node))
    37         return self.extract(self.revision(node))
    38 
    38 
    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             parseddate = "%d %d" % util.parsedate(date)
    43             # time zone offset. values must fit in signed 32 bits for
       
    44             # current 32-bit linux runtimes. timezones go from UTC-12
       
    45             # to UTC+14
       
    46             when, offset = util.parsedate(date)
       
    47             if abs(when) > 0x7fffffff:
       
    48                 raise ValueError(_('date exceeds 32 bits: %d') % when)
       
    49             if offset < -50400 or offset > 43200:
       
    50                 raise ValueError(_('impossible time zone offset: %d') % offset)
       
    51             parseddate = "%d %d" % (when, offset)
       
    52         else:
    43         else:
    53             parseddate = "%d %d" % util.makedate()
    44             parseddate = "%d %d" % util.makedate()
    54         list.sort()
    45         list.sort()
    55         l = [hex(manifest), user, parseddate] + list + ["", desc]
    46         l = [hex(manifest), user, parseddate] + list + ["", desc]
    56         text = "\n".join(l)
    47         text = "\n".join(l)