mercurial/debugcommands.py
changeset 30957 14794735faa8
parent 30956 db30c6bfeb70
child 30958 df73368c87c3
equal deleted inserted replaced
30956:db30c6bfeb70 30957:14794735faa8
    38     encoding,
    38     encoding,
    39     error,
    39     error,
    40     exchange,
    40     exchange,
    41     extensions,
    41     extensions,
    42     fileset,
    42     fileset,
       
    43     formatter,
    43     hg,
    44     hg,
    44     localrepo,
    45     localrepo,
    45     lock as lockmod,
    46     lock as lockmod,
    46     merge as mergemod,
    47     merge as mergemod,
    47     obsolete,
    48     obsolete,
  1947                 for node in succsset[1:]:
  1948                 for node in succsset[1:]:
  1948                     ui.write(' ')
  1949                     ui.write(' ')
  1949                     ui.write(node2str(node))
  1950                     ui.write(node2str(node))
  1950             ui.write('\n')
  1951             ui.write('\n')
  1951 
  1952 
       
  1953 @command('debugtemplate',
       
  1954     [('r', 'rev', [], _('apply template on changesets'), _('REV')),
       
  1955      ('D', 'define', [], _('define template keyword'), _('KEY=VALUE'))],
       
  1956     _('[-r REV]... [-D KEY=VALUE]... TEMPLATE'),
       
  1957     optionalrepo=True)
       
  1958 def debugtemplate(ui, repo, tmpl, **opts):
       
  1959     """parse and apply a template
       
  1960 
       
  1961     If -r/--rev is given, the template is processed as a log template and
       
  1962     applied to the given changesets. Otherwise, it is processed as a generic
       
  1963     template.
       
  1964 
       
  1965     Use --verbose to print the parsed tree.
       
  1966     """
       
  1967     revs = None
       
  1968     if opts['rev']:
       
  1969         if repo is None:
       
  1970             raise error.RepoError(_('there is no Mercurial repository here '
       
  1971                                     '(.hg not found)'))
       
  1972         revs = scmutil.revrange(repo, opts['rev'])
       
  1973 
       
  1974     props = {}
       
  1975     for d in opts['define']:
       
  1976         try:
       
  1977             k, v = (e.strip() for e in d.split('=', 1))
       
  1978             if not k:
       
  1979                 raise ValueError
       
  1980             props[k] = v
       
  1981         except ValueError:
       
  1982             raise error.Abort(_('malformed keyword definition: %s') % d)
       
  1983 
       
  1984     if ui.verbose:
       
  1985         aliases = ui.configitems('templatealias')
       
  1986         tree = templater.parse(tmpl)
       
  1987         ui.note(templater.prettyformat(tree), '\n')
       
  1988         newtree = templater.expandaliases(tree, aliases)
       
  1989         if newtree != tree:
       
  1990             ui.note(("* expanded:\n"), templater.prettyformat(newtree), '\n')
       
  1991 
       
  1992     mapfile = None
       
  1993     if revs is None:
       
  1994         k = 'debugtemplate'
       
  1995         t = formatter.maketemplater(ui, k, tmpl)
       
  1996         ui.write(templater.stringify(t(k, **props)))
       
  1997     else:
       
  1998         displayer = cmdutil.changeset_templater(ui, repo, None, opts, tmpl,
       
  1999                                                 mapfile, buffered=False)
       
  2000         for r in revs:
       
  2001             displayer.show(repo[r], **props)
       
  2002         displayer.close()
       
  2003 
  1952 @command('debugupgraderepo', [
  2004 @command('debugupgraderepo', [
  1953     ('o', 'optimize', [], _('extra optimization to perform'), _('NAME')),
  2005     ('o', 'optimize', [], _('extra optimization to perform'), _('NAME')),
  1954     ('', 'run', False, _('performs an upgrade')),
  2006     ('', 'run', False, _('performs an upgrade')),
  1955 ])
  2007 ])
  1956 def debugupgraderepo(ui, repo, run=False, optimize=None):
  2008 def debugupgraderepo(ui, repo, run=False, optimize=None):