591 if dsrc in invalid: |
591 if dsrc in invalid: |
592 # already seen to be uninteresting |
592 # already seen to be uninteresting |
593 continue |
593 continue |
594 elif dsrc in d1 and ddst in d1: |
594 elif dsrc in d1 and ddst in d1: |
595 # directory wasn't entirely moved locally |
595 # directory wasn't entirely moved locally |
596 invalid.add(dsrc + "/") |
596 invalid.add(dsrc) |
597 elif dsrc in d2 and ddst in d2: |
597 elif dsrc in d2 and ddst in d2: |
598 # directory wasn't entirely moved remotely |
598 # directory wasn't entirely moved remotely |
599 invalid.add(dsrc + "/") |
599 invalid.add(dsrc) |
600 elif dsrc + "/" in dirmove and dirmove[dsrc + "/"] != ddst + "/": |
600 elif dsrc in dirmove and dirmove[dsrc] != ddst: |
601 # files from the same directory moved to two different places |
601 # files from the same directory moved to two different places |
602 invalid.add(dsrc + "/") |
602 invalid.add(dsrc) |
603 else: |
603 else: |
604 # looks good so far |
604 # looks good so far |
605 dirmove[dsrc + "/"] = ddst + "/" |
605 dirmove[dsrc] = ddst |
606 |
606 |
607 for i in invalid: |
607 for i in invalid: |
608 if i in dirmove: |
608 if i in dirmove: |
609 del dirmove[i] |
609 del dirmove[i] |
610 del d1, d2, invalid |
610 del d1, d2, invalid |
611 |
611 |
612 if not dirmove: |
612 if not dirmove: |
613 return copy, {}, diverge, renamedelete, {} |
613 return copy, {}, diverge, renamedelete, {} |
|
614 |
|
615 dirmove = {k + "/": v + "/" for k, v in dirmove.iteritems()} |
614 |
616 |
615 for d in dirmove: |
617 for d in dirmove: |
616 repo.ui.debug(" discovered dir src: '%s' -> dst: '%s'\n" % |
618 repo.ui.debug(" discovered dir src: '%s' -> dst: '%s'\n" % |
617 (d, dirmove[d])) |
619 (d, dirmove[d])) |
618 |
620 |