##// END OF EJS Templates
merge: cache the fs checks made during [_checkunknownfiles]...
Arseniy Alekseyev -
r50784:c7624b1a default
parent child Browse files
Show More
@@ -145,18 +145,19 b' def _checkunknownfiles(repo, wctx, mctx,'
145 145 warnconflicts.update(conflicts)
146 146
147 147 checkunknowndirs = _unknowndirschecker()
148 for f in mresult.files(
149 (
150 mergestatemod.ACTION_CREATED,
151 mergestatemod.ACTION_DELETED_CHANGED,
152 )
153 ):
154 if _checkunknownfile(repo, wctx, mctx, f):
155 fileconflicts.add(f)
156 elif pathconfig and f not in wctx:
157 path = checkunknowndirs(repo, wctx, f)
158 if path is not None:
159 pathconflicts.add(path)
148 with repo.wvfs.audit.cached():
149 for f in mresult.files(
150 (
151 mergestatemod.ACTION_CREATED,
152 mergestatemod.ACTION_DELETED_CHANGED,
153 )
154 ):
155 if _checkunknownfile(repo, wctx, mctx, f):
156 fileconflicts.add(f)
157 elif pathconfig and f not in wctx:
158 path = checkunknowndirs(repo, wctx, f)
159 if path is not None:
160 pathconflicts.add(path)
160 161 for f, args, msg in mresult.getactions(
161 162 [mergestatemod.ACTION_LOCAL_DIR_RENAME_GET]
162 163 ):
@@ -56,7 +56,7 b' class pathauditor:'
56 56
57 57 def __init__(self, root, callback=None, realfs=True, cached=False):
58 58 self.audited = set()
59 self.auditeddir = set()
59 self.auditeddir = dict()
60 60 self.root = root
61 61 self._realfs = realfs
62 62 self._cached = cached
@@ -118,10 +118,11 b' class pathauditor:'
118 118 for i in range(len(parts)):
119 119 prefix = pycompat.ossep.join(parts[: i + 1])
120 120 if prefix in self.auditeddir:
121 continue
122 res = self._checkfs_exists(prefix, path)
123 if self._cached:
124 self.auditeddir.add(prefix)
121 res = self.auditeddir[prefix]
122 else:
123 res = self._checkfs_exists(prefix, path)
124 if self._cached:
125 self.auditeddir[prefix] = res
125 126 if not res:
126 127 break
127 128
General Comments 0
You need to be logged in to leave comments. Login now