[PATCH 5 of 7 F2 series] store: add version parameter to class fncache
Adrian Buehlmann
adrian at cadifra.com
Sat Oct 6 22:25:02 UTC 2012
# HG changeset patch
# User Adrian Buehlmann <adrian at cadifra.com>
# Date 1349032934 -7200
# Node ID 84dedf0a19d850859fc773a1b56c58a82eb16e8c
# Parent 827593a8a12bda9a35524bacf052b81d0e794652
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
@@ -411,7 +411,8 @@
class fncache(object):
# the filename used to be partially encoded
# hence the encodedir/decodedir dance
- def __init__(self, opener):
+ def __init__(self, opener, version):
+ self._version = version
self.opener = opener
self.entries = None
self._dirty = False
@@ -425,7 +426,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):
@@ -437,7 +441,10 @@
def _write(self, files, atomictemp):
fp = self.opener('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
@@ -497,7 +504,7 @@
self.createmode = _calcmode(self.path)
vfs = vfstype(self.path)
vfs.createmode = self.createmode
- 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