[PATCH 5 of 7 V3 of F2 series] store: add version parameter to class fncache
Adrian Buehlmann
adrian at cadifra.com
Mon Oct 8 16:49:50 CDT 2012
# HG changeset patch
# User Adrian Buehlmann <adrian at cadifra.com>
# Date 1349732281 -7200
# Node ID 47772d313e39d804d421a17579316325541f0e7b
# Parent b994283cdc11f50ce8ce756596c0a1265d9373f5
store: add version parameter to class fncache
version 2 doesn't encodedir the files in the fncache file
diff --git a/mercurial/store.py b/mercurial/store.py
--- a/mercurial/store.py
+++ b/mercurial/store.py
@@ -413,7 +413,8 @@
class fncache(object):
# the filename used to be partially encoded
# hence the encodedir/decodedir dance
- def __init__(self, vfs):
+ def __init__(self, vfs, version):
+ self._version = version
self.vfs = vfs
self.entries = None
self._dirty = False
@@ -427,7 +428,10 @@
# skip nonexistent file
self.entries = set()
return
- self.entries = set(decodedir(fp.read()).splitlines())
+ if self._version == 2:
+ self.entries = set(fp.read().splitlines())
+ else:
+ self.entries = set(decodedir(fp.read()).splitlines())
if '' in self.entries:
fp.seek(0)
for n, line in enumerate(fp):
@@ -439,7 +443,10 @@
def _write(self, files, atomictemp):
fp = self.vfs('fncache', mode='wb', atomictemp=atomictemp)
if files:
- fp.write(encodedir('\n'.join(files) + '\n'))
+ if self._version == 2:
+ fp.write('\n'.join(files) + '\n')
+ else:
+ fp.write(encodedir('\n'.join(files) + '\n'))
fp.close()
self._dirty = False
@@ -506,7 +513,7 @@
self.createmode = _calcmode(vfs)
vfs.createmode = self.createmode
self.rawvfs = vfs
- fnc = fncache(vfs)
+ fnc = fncache(vfs, version)
self.fncache = fnc
self.vfs = _fncachevfs(vfs, fnc, encode)
self.opener = self.vfs
More information about the Mercurial-devel
mailing list