--- a/mercurial/scmutil.py Wed Feb 29 14:24:57 2012 +0100
+++ b/mercurial/scmutil.py Thu Mar 01 17:39:58 2012 +0200
@@ -793,9 +793,17 @@
to tell us if a file has been replaced. If it can't, we fallback to
recreating the object on every call (essentially the same behaviour as
propertycache).'''
- def __init__(self, path, instore=False):
+ def __init__(self, path):
self.path = path
- self.instore = instore
+
+ def join(self, obj, fname):
+ """Used to compute the runtime path of the cached file.
+
+ Users should subclass filecache and provide their own version of this
+ function to call the appropriate join function on 'obj' (an instance
+ of the class that its member function was decorated).
+ """
+ return obj.join(fname)
def __call__(self, func):
self.func = func
@@ -813,7 +821,7 @@
if entry.changed():
entry.obj = self.func(obj)
else:
- path = self.instore and obj.sjoin(self.path) or obj.join(self.path)
+ path = self.join(obj, self.path)
# We stat -before- creating the object so our cache doesn't lie if
# a writer modified between the time we read and stat