Show More
@@ -415,11 +415,11 b' class dirstate(object):' | |||
|
415 | 415 | self._map.dirs.addpath(f) |
|
416 | 416 | self._dirty = True |
|
417 | 417 | self._updatedfiles.add(f) |
|
418 | self._map[f] = dirstatetuple(state, mode, size, mtime) | |
|
419 | 418 | if state != 'n' or mtime == -1: |
|
420 | 419 | self._map.nonnormalset.add(f) |
|
421 | 420 | if size == -2: |
|
422 | 421 | self._map.otherparentset.add(f) |
|
422 | self._map.addfile(f, state, mode, size, mtime) | |
|
423 | 423 | |
|
424 | 424 | def normal(self, f): |
|
425 | 425 | '''Mark a file normal and clean.''' |
@@ -490,8 +490,8 b' class dirstate(object):' | |||
|
490 | 490 | elif entry[0] == 'n' and entry[2] == -2: # other parent |
|
491 | 491 | size = -2 |
|
492 | 492 | self._map.otherparentset.add(f) |
|
493 | self._map[f] = dirstatetuple('r', 0, size, 0) | |
|
494 | 493 | self._map.nonnormalset.add(f) |
|
494 | self._map.removefile(f, size) | |
|
495 | 495 | if size == 0: |
|
496 | 496 | self._map.copymap.pop(f, None) |
|
497 | 497 | |
@@ -503,10 +503,9 b' class dirstate(object):' | |||
|
503 | 503 | |
|
504 | 504 | def drop(self, f): |
|
505 | 505 | '''Drop a file from the dirstate''' |
|
506 |
if |
|
|
506 | if self._map.dropfile(f): | |
|
507 | 507 | self._dirty = True |
|
508 | 508 | self._droppath(f) |
|
509 | del self._map[f] | |
|
510 | 509 | if f in self._map.nonnormalset: |
|
511 | 510 | self._map.nonnormalset.remove(f) |
|
512 | 511 | self._map.copymap.pop(f, None) |
@@ -636,7 +635,7 b' class dirstate(object):' | |||
|
636 | 635 | for f in self._updatedfiles: |
|
637 | 636 | e = dmap.get(f) |
|
638 | 637 | if e is not None and e[0] == 'n' and e[3] == now: |
|
639 |
dmap |
|
|
638 | dmap.addfile(f, e[0], e[1], e[2], -1) | |
|
640 | 639 | self._map.nonnormalset.add(f) |
|
641 | 640 | |
|
642 | 641 | # emulate that all 'dirstate.normal' results are written out |
@@ -1207,8 +1206,9 b' class dirstatemap(object):' | |||
|
1207 | 1206 | |
|
1208 | 1207 | - the state map maps filenames to tuples of (state, mode, size, mtime), |
|
1209 | 1208 | where state is a single character representing 'normal', 'added', |
|
1210 |
'removed', or 'merged'. It is |
|
|
1211 | dict. | |
|
1209 | 'removed', or 'merged'. It is read by treating the dirstate as a | |
|
1210 | dict. File state is updated by calling the `addfile`, `removefile` and | |
|
1211 | `dropfile` methods. | |
|
1212 | 1212 | |
|
1213 | 1213 | - `copymap` maps destination filenames to their source filename. |
|
1214 | 1214 | |
@@ -1282,15 +1282,9 b' class dirstatemap(object):' | |||
|
1282 | 1282 | def __contains__(self, key): |
|
1283 | 1283 | return key in self._map |
|
1284 | 1284 | |
|
1285 | def __setitem__(self, key, value): | |
|
1286 | self._map[key] = value | |
|
1287 | ||
|
1288 | 1285 | def __getitem__(self, key): |
|
1289 | 1286 | return self._map[key] |
|
1290 | 1287 | |
|
1291 | def __delitem__(self, key): | |
|
1292 | del self._map[key] | |
|
1293 | ||
|
1294 | 1288 | def keys(self): |
|
1295 | 1289 | return self._map.keys() |
|
1296 | 1290 | |
@@ -1298,6 +1292,27 b' class dirstatemap(object):' | |||
|
1298 | 1292 | """Loads the underlying data, if it's not already loaded""" |
|
1299 | 1293 | self._map |
|
1300 | 1294 | |
|
1295 | def addfile(self, f, state, mode, size, mtime): | |
|
1296 | """Add a tracked file to the dirstate.""" | |
|
1297 | self._map[f] = dirstatetuple(state, mode, size, mtime) | |
|
1298 | ||
|
1299 | def removefile(self, f, size): | |
|
1300 | """ | |
|
1301 | Mark a file as removed in the dirstate. | |
|
1302 | ||
|
1303 | The `size` parameter is used to store sentinel values that indicate | |
|
1304 | the file's previous state. In the future, we should refactor this | |
|
1305 | to be more explicit about what that state is. | |
|
1306 | """ | |
|
1307 | self._map[f] = dirstatetuple('r', 0, size, 0) | |
|
1308 | ||
|
1309 | def dropfile(self, f): | |
|
1310 | """ | |
|
1311 | Remove a file from the dirstate. Returns True if the file was | |
|
1312 | previously recorded. | |
|
1313 | """ | |
|
1314 | return self._map.pop(f, None) is not None | |
|
1315 | ||
|
1301 | 1316 | def nonnormalentries(self): |
|
1302 | 1317 | '''Compute the nonnormal dirstate entries from the dmap''' |
|
1303 | 1318 | try: |
@@ -1427,8 +1442,6 b' class dirstatemap(object):' | |||
|
1427 | 1442 | # Avoid excess attribute lookups by fast pathing certain checks |
|
1428 | 1443 | self.__contains__ = self._map.__contains__ |
|
1429 | 1444 | self.__getitem__ = self._map.__getitem__ |
|
1430 | self.__setitem__ = self._map.__setitem__ | |
|
1431 | self.__delitem__ = self._map.__delitem__ | |
|
1432 | 1445 | self.get = self._map.get |
|
1433 | 1446 | |
|
1434 | 1447 | def write(self, st, now): |
General Comments 0
You need to be logged in to leave comments.
Login now