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) |