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