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) |