comparison mercurial/branchmap.py @ 18232:dd0b636b0b65

branchmap: add a copy method If we want branchcache of different filter to collaborate, they need a simple way to copy each other. This will ensure that each filtered have no side effect on other filter level cache.
author Pierre-Yves David <pierre-yves.david@ens-lyon.org>
date Wed, 02 Jan 2013 01:40:42 +0100
parents d5655e742457
children a55b06885cda
comparison
equal deleted inserted replaced
18231:c0c943ef4e55 18232:dd0b636b0b65
115 return ((self.tipnode == repo.changelog.node(self.tiprev)) 115 return ((self.tipnode == repo.changelog.node(self.tiprev))
116 and (self.filteredhash == self._hashfiltered(repo))) 116 and (self.filteredhash == self._hashfiltered(repo)))
117 except IndexError: 117 except IndexError:
118 return False 118 return False
119 119
120 def copy(self):
121 """return an deep copy of the branchcache object"""
122 return branchcache(self, self.tipnode, self.tiprev, self.filteredhash)
120 123
121 def write(self, repo): 124 def write(self, repo):
122 try: 125 try:
123 f = repo.opener(_filename(repo), "w", atomictemp=True) 126 f = repo.opener(_filename(repo), "w", atomictemp=True)
124 cachekey = [hex(self.tipnode), str(self.tiprev)] 127 cachekey = [hex(self.tipnode), str(self.tiprev)]