784 def push(self, opts): |
784 def push(self, opts): |
785 # push is a no-op for SVN |
785 # push is a no-op for SVN |
786 return True |
786 return True |
787 |
787 |
788 def files(self): |
788 def files(self): |
789 output = self._svncommand(['list']) |
789 output = self._svncommand(['list', '--recursive', '--xml'])[0] |
790 # This works because svn forbids \n in filenames. |
790 doc = xml.dom.minidom.parseString(output) |
791 return output.splitlines() |
791 paths = [] |
|
792 for e in doc.getElementsByTagName('entry'): |
|
793 kind = str(e.getAttribute('kind')) |
|
794 if kind != 'file': |
|
795 continue |
|
796 name = ''.join(c.data for c |
|
797 in e.getElementsByTagName('name')[0].childNodes |
|
798 if c.nodeType == c.TEXT_NODE) |
|
799 paths.append(name) |
|
800 return paths |
792 |
801 |
793 def filedata(self, name): |
802 def filedata(self, name): |
794 return self._svncommand(['cat'], name) |
803 return self._svncommand(['cat'], name)[0] |
795 |
804 |
796 |
805 |
797 class gitsubrepo(abstractsubrepo): |
806 class gitsubrepo(abstractsubrepo): |
798 def __init__(self, ctx, path, state): |
807 def __init__(self, ctx, path, state): |
799 # TODO add git version check. |
808 # TODO add git version check. |