mercurial/subrepo.py
changeset 16451 9c431cfdca12
parent 16430 6883c2363f44
parent 16450 c9c8c9053119
child 16468 2fb521d75dc2
equal deleted inserted replaced
16449:874a680a3e23 16451:9c431cfdca12
   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.