Mercurial > public > mercurial-scm > hg
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 |