Mercurial > hg
changeset 22929:bf69cb09a6c9
manifest: move manifestdict-to-text encoding to manifest class
A future patch will introduce a new format, with a new class.
author | Augie Fackler <raf@durin42.com> |
---|---|
date | Wed, 08 Oct 2014 14:47:30 -0400 |
parents | 5e5d297ccbd0 |
children | 1acb81d10eaf |
files | mercurial/manifest.py |
diffstat | 1 files changed, 9 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/manifest.py Fri Oct 03 13:22:31 2014 -0700 +++ b/mercurial/manifest.py Wed Oct 08 14:47:30 2014 -0400 @@ -40,6 +40,14 @@ def flagsdiff(self, d2): return dicthelpers.diff(self._flags, d2._flags, "") + def text(self): + fl = sorted(self) + _checkforbidden(fl) + + hex, flags = revlog.hex, self.flags + # if this is changed to support newlines in filenames, + # be sure to check the templates/ dir again (especially *-raw.tmpl) + return ''.join("%s\0%s%s\n" % (f, hex(self[f]), flags(f)) for f in fl) def _checkforbidden(l): """Check filenames for illegal characters.""" @@ -220,14 +228,7 @@ # just encode a fulltext of the manifest and pass that # through to the revlog layer, and let it handle the delta # process. - files = sorted(map) - _checkforbidden(files) - - # if this is changed to support newlines in filenames, - # be sure to check the templates/ dir again (especially *-raw.tmpl) - hex, flags = revlog.hex, map.flags - text = ''.join("%s\0%s%s\n" % (f, hex(map[f]), flags(f)) - for f in files) + text = map.text() arraytext = array.array('c', text) cachedelta = None