comparison mercurial/filelog.py @ 22420:4669e26747c3

filelog: make packmeta a public module function, to be used by censor
author Mike Edgar <adgar@google.com>
date Wed, 10 Sep 2014 00:17:17 -0400
parents 3bda242bf244
children 30a610424eff
comparison
equal deleted inserted replaced
22419:fdfc9faca273 22420:4669e26747c3
22 k, v = l.split(": ", 1) 22 k, v = l.split(": ", 1)
23 meta[k] = v 23 meta[k] = v
24 keys.append(k) 24 keys.append(k)
25 return meta, keys, (s + 2) 25 return meta, keys, (s + 2)
26 26
27 def _packmeta(meta, keys=None): 27 def packmeta(meta, text):
28 if not keys: 28 keys = sorted(meta.iterkeys())
29 keys = sorted(meta.iterkeys()) 29 metatext = "".join("%s: %s\n" % (k, meta[k]) for k in keys)
30 return "".join("%s: %s\n" % (k, meta[k]) for k in keys) 30 return "\1\n%s\1\n%s" % (metatext, text)
31 31
32 class filelog(revlog.revlog): 32 class filelog(revlog.revlog):
33 def __init__(self, opener, path): 33 def __init__(self, opener, path):
34 super(filelog, self).__init__(opener, 34 super(filelog, self).__init__(opener,
35 "/".join(("data", path + ".i"))) 35 "/".join(("data", path + ".i")))
41 s = t.index('\1\n', 2) 41 s = t.index('\1\n', 2)
42 return t[s + 2:] 42 return t[s + 2:]
43 43
44 def add(self, text, meta, transaction, link, p1=None, p2=None): 44 def add(self, text, meta, transaction, link, p1=None, p2=None):
45 if meta or text.startswith('\1\n'): 45 if meta or text.startswith('\1\n'):
46 text = "\1\n%s\1\n%s" % (_packmeta(meta), text) 46 text = packmeta(meta, text)
47 return self.addrevision(text, transaction, link, p1, p2) 47 return self.addrevision(text, transaction, link, p1, p2)
48 48
49 def renamed(self, node): 49 def renamed(self, node):
50 if self.parents(node)[0] != revlog.nullid: 50 if self.parents(node)[0] != revlog.nullid:
51 return False 51 return False