Show More
@@ -374,16 +374,7 b' class changectx(object):' | |||
|
374 | 374 | |
|
375 | 375 | @propertycache |
|
376 | 376 | def _dirs(self): |
|
377 | dirs = set() | |
|
378 | for f in self._manifest: | |
|
379 | pos = f.rfind('/') | |
|
380 | while pos != -1: | |
|
381 | f = f[:pos] | |
|
382 | if f in dirs: | |
|
383 | break # dirs already contains this and above | |
|
384 | dirs.add(f) | |
|
385 | pos = f.rfind('/') | |
|
386 | return dirs | |
|
377 | return scmutil.dirs(self._manifest) | |
|
387 | 378 | |
|
388 | 379 | def dirs(self): |
|
389 | 380 | return self._dirs |
@@ -1155,7 +1146,7 b' class workingctx(changectx):' | |||
|
1155 | 1146 | self._repo.dirstate.setparents(node) |
|
1156 | 1147 | |
|
1157 | 1148 | def dirs(self): |
|
1158 |
return |
|
|
1149 | return self._repo.dirstate.dirs() | |
|
1159 | 1150 | |
|
1160 | 1151 | class workingfilectx(filectx): |
|
1161 | 1152 | """A workingfilectx object makes access to data related to a particular |
@@ -335,8 +335,8 b' def mergecopies(repo, c1, c2, ca):' | |||
|
335 | 335 | |
|
336 | 336 | # generate a directory move map |
|
337 | 337 | d1, d2 = c1.dirs(), c2.dirs() |
|
338 | d1.add('') | |
|
339 | d2.add('') | |
|
338 | d1.addpath('/') | |
|
339 | d2.addpath('/') | |
|
340 | 340 | invalid = set() |
|
341 | 341 | dirmove = {} |
|
342 | 342 |
@@ -25,20 +25,6 b' class rootcache(filecache):' | |||
|
25 | 25 | def join(self, obj, fname): |
|
26 | 26 | return obj._join(fname) |
|
27 | 27 | |
|
28 | def _incdirs(dirs, path): | |
|
29 | for base in scmutil.finddirs(path): | |
|
30 | if base in dirs: | |
|
31 | dirs[base] += 1 | |
|
32 | return | |
|
33 | dirs[base] = 1 | |
|
34 | ||
|
35 | def _decdirs(dirs, path): | |
|
36 | for base in scmutil.finddirs(path): | |
|
37 | if dirs[base] > 1: | |
|
38 | dirs[base] -= 1 | |
|
39 | return | |
|
40 | del dirs[base] | |
|
41 | ||
|
42 | 28 | class dirstate(object): |
|
43 | 29 | |
|
44 | 30 | def __init__(self, opener, ui, root, validate): |
@@ -107,11 +93,7 b' class dirstate(object):' | |||
|
107 | 93 | |
|
108 | 94 | @propertycache |
|
109 | 95 | def _dirs(self): |
|
110 | dirs = {} | |
|
111 | for f, s in self._map.iteritems(): | |
|
112 | if s[0] != 'r': | |
|
113 | _incdirs(dirs, f) | |
|
114 | return dirs | |
|
96 | return scmutil.dirs(self._map, 'r') | |
|
115 | 97 | |
|
116 | 98 | def dirs(self): |
|
117 | 99 | return self._dirs |
@@ -331,7 +313,7 b' class dirstate(object):' | |||
|
331 | 313 | |
|
332 | 314 | def _droppath(self, f): |
|
333 | 315 | if self[f] not in "?r" and "_dirs" in self.__dict__: |
|
334 |
|
|
|
316 | self._dirs.delpath(f) | |
|
335 | 317 | |
|
336 | 318 | def _addpath(self, f, state, mode, size, mtime): |
|
337 | 319 | oldstate = self[f] |
@@ -347,7 +329,7 b' class dirstate(object):' | |||
|
347 | 329 | raise util.Abort( |
|
348 | 330 | _('file %r in dirstate clashes with %r') % (d, f)) |
|
349 | 331 | if oldstate in "?r" and "_dirs" in self.__dict__: |
|
350 |
|
|
|
332 | self._dirs.addpath(f) | |
|
351 | 333 | self._dirty = True |
|
352 | 334 | self._map[f] = (state, mode, size, mtime) |
|
353 | 335 |
General Comments 0
You need to be logged in to leave comments.
Login now