mercurial/cmdutil.py
changeset 23404 b913c394386f
parent 23391 d8cdd46f426d
parent 23403 edf29f9c15f0
child 23453 341e4798c24d
equal deleted inserted replaced
23399:fd5247a88e63 23404:b913c394386f
  2613         # or just forget etc).
  2613         # or just forget etc).
  2614         if parent == node:
  2614         if parent == node:
  2615             dsmodified = modified
  2615             dsmodified = modified
  2616             dsadded = added
  2616             dsadded = added
  2617             dsremoved = removed
  2617             dsremoved = removed
       
  2618             # store all local modifications, useful later for rename detection
       
  2619             localchanges = dsmodified | dsadded
  2618             modified, added, removed = set(), set(), set()
  2620             modified, added, removed = set(), set(), set()
  2619         else:
  2621         else:
  2620             changes = repo.status(node1=parent, match=m)
  2622             changes = repo.status(node1=parent, match=m)
  2621             dsmodified = set(changes.modified)
  2623             dsmodified = set(changes.modified)
  2622             dsadded    = set(changes.added)
  2624             dsadded    = set(changes.added)
  2623             dsremoved  = set(changes.removed)
  2625             dsremoved  = set(changes.removed)
       
  2626             # store all local modifications, useful later for rename detection
       
  2627             localchanges = dsmodified | dsadded
  2624 
  2628 
  2625             # only take into account for removes between wc and target
  2629             # only take into account for removes between wc and target
  2626             clean |= dsremoved - removed
  2630             clean |= dsremoved - removed
  2627             dsremoved &= removed
  2631             dsremoved &= removed
  2628             # distinct between dirstate remove and other
  2632             # distinct between dirstate remove and other
  2652             dsadded |= mergeadd
  2656             dsadded |= mergeadd
  2653             dsmodified -= mergeadd
  2657             dsmodified -= mergeadd
  2654 
  2658 
  2655         # if f is a rename, update `names` to also revert the source
  2659         # if f is a rename, update `names` to also revert the source
  2656         cwd = repo.getcwd()
  2660         cwd = repo.getcwd()
  2657         for f in dsadded:
  2661         for f in localchanges:
  2658             src = repo.dirstate.copied(f)
  2662             src = repo.dirstate.copied(f)
  2659             # XXX should we check for rename down to target node?
  2663             # XXX should we check for rename down to target node?
  2660             if src and src not in names and repo.dirstate[src] == 'r':
  2664             if src and src not in names and repo.dirstate[src] == 'r':
  2661                 dsremoved.add(src)
  2665                 dsremoved.add(src)
  2662                 names[src] = (repo.pathto(src, cwd), True)
  2666                 names[src] = (repo.pathto(src, cwd), True)