hgext/convert/subversion.py
changeset 16683 525fdb738975
parent 16514 363e808de349
child 16687 e34106fa0dc3
equal deleted inserted replaced
16676:654b9e1966f7 16683:525fdb738975
    83     def __init__(self, p):
    83     def __init__(self, p):
    84         self.copyfrom_path = p.copyfrom_path
    84         self.copyfrom_path = p.copyfrom_path
    85         self.copyfrom_rev = p.copyfrom_rev
    85         self.copyfrom_rev = p.copyfrom_rev
    86         self.action = p.action
    86         self.action = p.action
    87 
    87 
    88 def get_log_child(fp, url, paths, start, end, limit=0, discover_changed_paths=True,
    88 def get_log_child(fp, url, paths, start, end, limit=0,
    89                     strict_node_history=False):
    89                   discover_changed_paths=True, strict_node_history=False):
    90     protocol = -1
    90     protocol = -1
    91     def receiver(orig_paths, revnum, author, date, message, pool):
    91     def receiver(orig_paths, revnum, author, date, message, pool):
    92         if orig_paths is not None:
    92         if orig_paths is not None:
    93             for k, v in orig_paths.iteritems():
    93             for k, v in orig_paths.iteritems():
    94                 orig_paths[k] = changedpath(v)
    94                 orig_paths[k] = changedpath(v)
   274             try:
   274             try:
   275                 latest = int(rev)
   275                 latest = int(rev)
   276             except ValueError:
   276             except ValueError:
   277                 raise util.Abort(_('svn: revision %s is not an integer') % rev)
   277                 raise util.Abort(_('svn: revision %s is not an integer') % rev)
   278 
   278 
   279         self.trunkname = self.ui.config('convert', 'svn.trunk', 'trunk').strip('/')
   279         self.trunkname = self.ui.config('convert', 'svn.trunk',
       
   280                                         'trunk').strip('/')
   280         self.startrev = self.ui.config('convert', 'svn.startrev', default=0)
   281         self.startrev = self.ui.config('convert', 'svn.startrev', default=0)
   281         try:
   282         try:
   282             self.startrev = int(self.startrev)
   283             self.startrev = int(self.startrev)
   283             if self.startrev < 0:
   284             if self.startrev < 0:
   284                 self.startrev = 0
   285                 self.startrev = 0
   860                             firstcset.parents.append(latest)
   861                             firstcset.parents.append(latest)
   861                 except SvnPathNotFound:
   862                 except SvnPathNotFound:
   862                     pass
   863                     pass
   863         except SubversionException, (inst, num):
   864         except SubversionException, (inst, num):
   864             if num == svn.core.SVN_ERR_FS_NO_SUCH_REVISION:
   865             if num == svn.core.SVN_ERR_FS_NO_SUCH_REVISION:
   865                 raise util.Abort(_('svn: branch has no revision %s') % to_revnum)
   866                 raise util.Abort(_('svn: branch has no revision %s')
       
   867                                  % to_revnum)
   866             raise
   868             raise
   867 
   869 
   868     def getfile(self, file, rev):
   870     def getfile(self, file, rev):
   869         # TODO: ra.get_file transmits the whole file instead of diffs.
   871         # TODO: ra.get_file transmits the whole file instead of diffs.
   870         if file in self.removed:
   872         if file in self.removed:
   947         relpaths = []
   949         relpaths = []
   948         for p in paths:
   950         for p in paths:
   949             if not p.startswith('/'):
   951             if not p.startswith('/'):
   950                 p = self.module + '/' + p
   952                 p = self.module + '/' + p
   951             relpaths.append(p.strip('/'))
   953             relpaths.append(p.strip('/'))
   952         args = [self.baseurl, relpaths, start, end, limit, discover_changed_paths,
   954         args = [self.baseurl, relpaths, start, end, limit,
   953                 strict_node_history]
   955                 discover_changed_paths, strict_node_history]
   954         arg = encodeargs(args)
   956         arg = encodeargs(args)
   955         hgexe = util.hgexecutable()
   957         hgexe = util.hgexecutable()
   956         cmd = '%s debugsvnlog' % util.shellquote(hgexe)
   958         cmd = '%s debugsvnlog' % util.shellquote(hgexe)
   957         stdin, stdout = util.popen2(util.quotecommand(cmd))
   959         stdin, stdout = util.popen2(util.quotecommand(cmd))
   958         stdin.write(arg)
   960         stdin.write(arg)