hgext/convert/__init__.py
changeset 5100 39b6eaee6fd7
parent 5076 ef338e34a906
child 5106 745cffe59ca8
equal deleted inserted replaced
5099:117dab48ca99 5100:39b6eaee6fd7
     3 # Copyright 2005-2007 Matt Mackall <mpm@selenic.com>
     3 # Copyright 2005-2007 Matt Mackall <mpm@selenic.com>
     4 #
     4 #
     5 # This software may be used and distributed according to the terms
     5 # This software may be used and distributed according to the terms
     6 # of the GNU General Public License, incorporated herein by reference.
     6 # of the GNU General Public License, incorporated herein by reference.
     7 
     7 
     8 from common import NoRepo, converter_source, converter_sink
     8 from common import NoRepo, converter_source, converter_sink, decodeargs
     9 from cvs import convert_cvs
     9 from cvs import convert_cvs
    10 from git import convert_git
    10 from git import convert_git
    11 from hg import mercurial_source, mercurial_sink
    11 from hg import mercurial_source, mercurial_sink
    12 from subversion import convert_svn
    12 from subversion import convert_svn
    13 
    13 
    14 import os, shlex, shutil
    14 import os, shlex, shutil, sys
    15 from mercurial import hg, ui, util, commands
    15 from mercurial import hg, ui, util, commands
    16 from mercurial.i18n import _
    16 from mercurial.i18n import _
    17 
    17 
    18 commands.norepo += " convert"
    18 commands.norepo += " convert debug-svn-log"
    19 
    19 
    20 converters = [convert_cvs, convert_git, convert_svn, mercurial_source,
    20 converters = [convert_cvs, convert_git, convert_svn, mercurial_source,
    21               mercurial_sink]
    21               mercurial_sink]
    22 
    22 
    23 def convertsource(ui, path, **opts):
    23 def convertsource(ui, path, **opts):
   429 
   429 
   430     c = convert(ui, srcc, destc, revmapfile, filemapper(ui, opts['filemap']),
   430     c = convert(ui, srcc, destc, revmapfile, filemapper(ui, opts['filemap']),
   431                 opts)
   431                 opts)
   432     c.convert()
   432     c.convert()
   433 
   433 
       
   434 def debugsvnlog(ui, **opts):
       
   435     """Fetch SVN log in a subprocess and channel them back to parent to
       
   436     avoid memory collection issues.
       
   437     """
       
   438     util.set_binary(sys.stdin)
       
   439     util.set_binary(sys.stdout)
       
   440     args = decodeargs(sys.stdin.read())
       
   441     subversion.get_log_child(sys.stdout, *args)
       
   442 
   434 cmdtable = {
   443 cmdtable = {
   435     "convert":
   444     "convert":
   436         (_convert,
   445         (_convert,
   437          [('A', 'authors', '', 'username mapping filename'),
   446          [('A', 'authors', '', 'username mapping filename'),
   438           ('', 'filemap', '', 'remap file names using contents of file'),
   447           ('', 'filemap', '', 'remap file names using contents of file'),
   439           ('r', 'rev', '', 'import up to target revision REV'),
   448           ('r', 'rev', '', 'import up to target revision REV'),
   440           ('', 'datesort', None, 'try to sort changesets by date')],
   449           ('', 'datesort', None, 'try to sort changesets by date')],
   441          'hg convert [OPTION]... SOURCE [DEST [MAPFILE]]'),
   450          'hg convert [OPTION]... SOURCE [DEST [MAPFILE]]'),
       
   451     "debug-svn-log":
       
   452         (debugsvnlog,
       
   453          [],
       
   454          'hg debug-svn-log'),
   442 }
   455 }
       
   456