mercurial/commands.py
changeset 2033 e3280d350792
parent 2029 d436b21b20dc
child 2034 5e7aff1b6ae1
equal deleted inserted replaced
2032:cd6bdbc508dd 2033:e3280d350792
   405 
   405 
   406     def use_template(self, t):
   406     def use_template(self, t):
   407         '''set template string to use'''
   407         '''set template string to use'''
   408         self.t.cache['changeset'] = t
   408         self.t.cache['changeset'] = t
   409 
   409 
   410     def write(self, thing):
   410     def write(self, thing, header=False):
   411         '''write expanded template.
   411         '''write expanded template.
   412         uses in-order recursive traverse of iterators.'''
   412         uses in-order recursive traverse of iterators.'''
   413         for t in thing:
   413         for t in thing:
   414             if hasattr(t, '__iter__'):
   414             if hasattr(t, '__iter__'):
   415                 self.write(t)
   415                 self.write(t, header=header)
       
   416             elif header:
       
   417                 self.ui.write_header(t)
   416             else:
   418             else:
   417                 self.ui.write(t)
   419                 self.ui.write(t)
       
   420 
       
   421     def write_header(self, thing):
       
   422         self.write(thing, header=True)
   418 
   423 
   419     def show(self, rev=0, changenode=None, brinfo=None):
   424     def show(self, rev=0, changenode=None, brinfo=None):
   420         '''show a single changeset or file revision'''
   425         '''show a single changeset or file revision'''
   421         log = self.repo.changelog
   426         log = self.repo.changelog
   422         if changenode is None:
   427         if changenode is None:
   547             'rev': rev,
   552             'rev': rev,
   548             'tags': showtags,
   553             'tags': showtags,
   549             }
   554             }
   550 
   555 
   551         try:
   556         try:
       
   557             if self.ui.debugflag and 'header_debug' in self.t:
       
   558                 key = 'header_debug'
       
   559             elif self.ui.quiet and 'header_quiet' in self.t:
       
   560                 key = 'header_quiet'
       
   561             elif self.ui.verbose and 'header_verbose' in self.t:
       
   562                 key = 'header_verbose'
       
   563             elif 'header' in self.t:
       
   564                 key = 'header'
       
   565             else:
       
   566                 key = ''
       
   567             if key:
       
   568                 self.write_header(self.t(key, **props))
   552             if self.ui.debugflag and 'changeset_debug' in self.t:
   569             if self.ui.debugflag and 'changeset_debug' in self.t:
   553                 key = 'changeset_debug'
   570                 key = 'changeset_debug'
   554             elif self.ui.quiet and 'changeset_quiet' in self.t:
   571             elif self.ui.quiet and 'changeset_quiet' in self.t:
   555                 key = 'changeset_quiet'
   572                 key = 'changeset_quiet'
   556             elif self.ui.verbose and 'changeset_verbose' in self.t:
   573             elif self.ui.verbose and 'changeset_verbose' in self.t:
  1895         # Implement and delegate some ui protocol.  Save hunks of
  1912         # Implement and delegate some ui protocol.  Save hunks of
  1896         # output for later display in the desired order.
  1913         # output for later display in the desired order.
  1897         def __init__(self, ui):
  1914         def __init__(self, ui):
  1898             self.ui = ui
  1915             self.ui = ui
  1899             self.hunk = {}
  1916             self.hunk = {}
       
  1917             self.header = {}
  1900         def bump(self, rev):
  1918         def bump(self, rev):
  1901             self.rev = rev
  1919             self.rev = rev
  1902             self.hunk[rev] = []
  1920             self.hunk[rev] = []
       
  1921             self.header[rev] = []
  1903         def note(self, *args):
  1922         def note(self, *args):
  1904             if self.verbose:
  1923             if self.verbose:
  1905                 self.write(*args)
  1924                 self.write(*args)
  1906         def status(self, *args):
  1925         def status(self, *args):
  1907             if not self.quiet:
  1926             if not self.quiet:
  1908                 self.write(*args)
  1927                 self.write(*args)
  1909         def write(self, *args):
  1928         def write(self, *args):
  1910             self.hunk[self.rev].append(args)
  1929             self.hunk[self.rev].append(args)
       
  1930         def write_header(self, *args):
       
  1931             self.header[self.rev].append(args)
  1911         def debug(self, *args):
  1932         def debug(self, *args):
  1912             if self.debugflag:
  1933             if self.debugflag:
  1913                 self.write(*args)
  1934                 self.write(*args)
  1914         def __getattr__(self, key):
  1935         def __getattr__(self, key):
  1915             return getattr(self.ui, key)
  1936             return getattr(self.ui, key)
  1962                 prev = (parents and parents[0]) or nullid
  1983                 prev = (parents and parents[0]) or nullid
  1963                 dodiff(du, du, repo, prev, changenode, match=matchfn)
  1984                 dodiff(du, du, repo, prev, changenode, match=matchfn)
  1964                 du.write("\n\n")
  1985                 du.write("\n\n")
  1965         elif st == 'iter':
  1986         elif st == 'iter':
  1966             if count == limit: break
  1987             if count == limit: break
       
  1988             if du.header[rev]:
       
  1989                 for args in du.header[rev]:
       
  1990                     ui.write_header(*args)
  1967             if du.hunk[rev]:
  1991             if du.hunk[rev]:
  1968                 count += 1
  1992                 count += 1
  1969                 for args in du.hunk[rev]:
  1993                 for args in du.hunk[rev]:
  1970                     ui.write(*args)
  1994                     ui.write(*args)
  1971 
  1995