--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mercurial/changelog.py Sat Aug 27 14:21:25 2005 -0700
@@ -0,0 +1,44 @@
+# hg.py - repository classes for mercurial
+#
+# Copyright 2005 Matt Mackall <mpm@selenic.com>
+#
+# This software may be used and distributed according to the terms
+# of the GNU General Public License, incorporated herein by reference.
+
+import sys, struct, os
+import util
+from revlog import *
+from demandload import *
+demandload(globals(), "time")
+
+class changelog(revlog):
+ def __init__(self, opener):
+ revlog.__init__(self, opener, "00changelog.i", "00changelog.d")
+
+ def extract(self, text):
+ if not text:
+ return (nullid, "", "0", [], "")
+ last = text.index("\n\n")
+ desc = text[last + 2:]
+ l = text[:last].splitlines()
+ manifest = bin(l[0])
+ user = l[1]
+ date = l[2]
+ if " " not in date:
+ date += " 0" # some tools used -d without a timezone
+ files = l[3:]
+ return (manifest, user, date, files, desc)
+
+ def read(self, node):
+ return self.extract(self.revision(node))
+
+ def add(self, manifest, list, desc, transaction, p1=None, p2=None,
+ user=None, date=None):
+ if not date:
+ if time.daylight: offset = time.altzone
+ else: offset = time.timezone
+ date = "%d %d" % (time.time(), offset)
+ list.sort()
+ l = [hex(manifest), user, date] + list + ["", desc]
+ text = "\n".join(l)
+ return self.addrevision(text, transaction, self.count(), p1, p2)