##// END OF EJS Templates
Break apart hg.py...
Break apart hg.py - move the various parts of hg.py into their own files - create node.py to store node manipulation functions

File last commit:

r1089:142b5d5e default
r1089:142b5d5e default
Show More
changelog.py
44 lines | 1.4 KiB | text/x-python | PythonLexer
# 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)