654 elif kind == svn.core.svn_node_dir: |
654 elif kind == svn.core.svn_node_dir: |
655 if ent.action == 'M': |
655 if ent.action == 'M': |
656 # If the directory just had a prop change, |
656 # If the directory just had a prop change, |
657 # then we shouldn't need to look for its children. |
657 # then we shouldn't need to look for its children. |
658 continue |
658 continue |
659 elif ent.action == 'R' and parents: |
659 if ent.action == 'R' and parents: |
660 # If a directory is replacing a file, mark the previous |
660 # If a directory is replacing a file, mark the previous |
661 # file as deleted |
661 # file as deleted |
662 pmodule, prevnum = self.revsplit(parents[0])[1:] |
662 pmodule, prevnum = self.revsplit(parents[0])[1:] |
663 pkind = self._checkpath(entrypath, prevnum, pmodule) |
663 pkind = self._checkpath(entrypath, prevnum, pmodule) |
664 if pkind == svn.core.svn_node_file: |
664 if pkind == svn.core.svn_node_file: |
665 removed.add(self.recode(entrypath)) |
665 removed.add(self.recode(entrypath)) |
|
666 elif pkind == svn.core.svn_node_dir: |
|
667 # We do not know what files were kept or removed, |
|
668 # mark them all as changed. |
|
669 for childpath in self._iterfiles(pmodule, prevnum): |
|
670 childpath = self.getrelpath("/" + childpath) |
|
671 if childpath: |
|
672 changed.add(self.recode(childpath)) |
666 |
673 |
667 for childpath in self._iterfiles(path, revnum): |
674 for childpath in self._iterfiles(path, revnum): |
668 childpath = self.getrelpath("/" + childpath) |
675 childpath = self.getrelpath("/" + childpath) |
669 if childpath: |
676 if childpath: |
670 changed.add(self.recode(childpath)) |
677 changed.add(self.recode(childpath)) |