diff --git a/remotefilelog/basestore.py b/remotefilelog/basestore.py --- a/remotefilelog/basestore.py +++ b/remotefilelog/basestore.py @@ -380,3 +380,12 @@ % (removed, count, float(originalsize) / 1024.0 / 1024.0 / 1024.0, float(size) / 1024.0 / 1024.0 / 1024.0)) + +class baseunionstore(object): + def __init__(self, *args, **kwargs): + pass + + def markforrefresh(self): + for store in self.stores: + if util.safehasattr(store, 'markforrefresh'): + store.markforrefresh() diff --git a/remotefilelog/contentstore.py b/remotefilelog/contentstore.py --- a/remotefilelog/contentstore.py +++ b/remotefilelog/contentstore.py @@ -28,8 +28,10 @@ # The actual delta or full text data. DATA = 4 -class unioncontentstore(object): +class unioncontentstore(basestore.baseunionstore): def __init__(self, *args, **kwargs): + super(unioncontentstore, self).__init__(*args, **kwargs) + self.stores = args self.writestore = kwargs.get('writestore') @@ -144,11 +146,6 @@ for store in self.stores: store.markledger(ledger, options) - def markforrefresh(self): - for store in self.stores: - if util.safehasattr(store, 'markforrefresh'): - store.markforrefresh() - class remotefilelogcontentstore(basestore.basestore): def __init__(self, *args, **kwargs): super(remotefilelogcontentstore, self).__init__(*args, **kwargs) diff --git a/remotefilelog/metadatastore.py b/remotefilelog/metadatastore.py --- a/remotefilelog/metadatastore.py +++ b/remotefilelog/metadatastore.py @@ -1,8 +1,10 @@ import basestore, shallowutil from mercurial.node import hex, nullid -class unionmetadatastore(object): +class unionmetadatastore(basestore.baseunionstore): def __init__(self, *args, **kwargs): + super(unionmetadatastore, self).__init__(*args, **kwargs) + self.stores = args self.writestore = kwargs.get('writestore')