# HG changeset patch # User Matt Mackall # Date 2012-05-06 19:37:51 # Node ID 80aef0bc5ba7e29c79b6f6a56bea1ced67b15ad7 # Parent 0c98820be15ce9606f7cdb77f31694e0fc40ea7a context: add copies method with caching diff --git a/mercurial/context.py b/mercurial/context.py --- a/mercurial/context.py +++ b/mercurial/context.py @@ -8,6 +8,7 @@ from node import nullid, nullrev, short, hex, bin from i18n import _ import ancestor, mdiff, error, util, scmutil, subrepo, patch, encoding, phases +import copies import match as matchmod import os, errno, stat @@ -695,6 +696,14 @@ class filectx(object): c = visit.pop(max(visit)) yield c + def copies(self, c2): + if not util.hasattr(self, "_copycache"): + self._copycache = {} + sc2 = str(c2) + if sc2 not in self._copycache: + self._copycache[sc2] = copies.pathcopies(c2) + return self._copycache[sc2] + class workingctx(changectx): """A workingctx object makes access to data related to the current working directory convenient.