comparison mercurial/commands.py @ 2033:e3280d350792

Group changes done by the same developer on the same with --style=changelog Changeset and tags are appended to the change message for non-quiet and non-verbose output, so grouping works. Fixes last bit of issue110.
author Thomas Arendsen Hein <thomas@intevation.de>
date Sat, 01 Apr 2006 21:37:08 +0200
parents d436b21b20dc
children 5e7aff1b6ae1
comparison
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