mercurial/cmdutil.py
changeset 21577 c62c5ce750ee
parent 21576 33395a7e5527
child 21578 7cfe51661e98
equal deleted inserted replaced
21576:33395a7e5527 21577:c62c5ce750ee
  2328             #   file state
  2328             #   file state
  2329             #   action if in target manifest
  2329             #   action if in target manifest
  2330             #   action if not in target manifest
  2330             #   action if not in target manifest
  2331             #   make backup if in target manifest
  2331             #   make backup if in target manifest
  2332             #   make backup if not in target manifest
  2332             #   make backup if not in target manifest
  2333             (modified, actions['revert'],   actions['remove'], True,  True),
  2333             (modified, (actions['revert'],   True),
  2334             (added,    actions['revert'],   actions['remove'], True,  False),
  2334                        (actions['remove'],   True)),
  2335             (removed,  actions['undelete'], None,              True,  False),
  2335             (added,    (actions['revert'],   True),
  2336             (deleted,  actions['revert'],   actions['remove'], False, False),
  2336                        (actions['remove'],   False)),
       
  2337             (removed,  (actions['undelete'], True),
       
  2338                        (None,                False)),
       
  2339             (deleted,  (actions['revert'], False),
       
  2340                        (actions['remove'], False)),
  2337             )
  2341             )
  2338 
  2342 
  2339         for abs, (rel, exact) in sorted(names.items()):
  2343         for abs, (rel, exact) in sorted(names.items()):
  2340             # hash on file in target manifest (or None if missing from target)
  2344             # hash on file in target manifest (or None if missing from target)
  2341             mfentry = mf.get(abs)
  2345             mfentry = mf.get(abs)
  2357                         msg = msg(abs)
  2361                         msg = msg(abs)
  2358                     ui.status(msg % rel)
  2362                     ui.status(msg % rel)
  2359             # search the entry in the dispatch table.
  2363             # search the entry in the dispatch table.
  2360             # if the file is in any of this sets, it was touched in the working
  2364             # if the file is in any of this sets, it was touched in the working
  2361             # directory parent and we are sure it needs to be reverted.
  2365             # directory parent and we are sure it needs to be reverted.
  2362             for table, hitlist, misslist, backuphit, backupmiss in disptable:
  2366             for table, hit, miss in disptable:
  2363                 if abs not in table:
  2367                 if abs not in table:
  2364                     continue
  2368                     continue
  2365                 # file has changed in dirstate
  2369                 # file has changed in dirstate
  2366                 if mfentry:
  2370                 if mfentry:
  2367                     handle(hitlist, backuphit)
  2371                     handle(*hit)
  2368                 elif misslist is not None:
  2372                 elif miss[0] is not None:
  2369                     handle(misslist, backupmiss)
  2373                     handle(*miss)
  2370                 break
  2374                 break
  2371             else:
  2375             else:
  2372                 # Not touched in current dirstate.
  2376                 # Not touched in current dirstate.
  2373 
  2377 
  2374                 # file is unknown in parent, restore older version or ignore.
  2378                 # file is unknown in parent, restore older version or ignore.