comparison mercurial/commands.py @ 2037:f90513a3dbcd

Merged with crew.
author Thomas Arendsen Hein <thomas@intevation.de>
date Sun, 02 Apr 2006 08:19:41 +0200
parents c9226bcc288d 107dc72880f8
children a514c7509fa9
comparison
equal deleted inserted replaced
2036:c9226bcc288d 2037:f90513a3dbcd
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:
1253 """find the ancestor revision of two revisions in a given index""" 1270 """find the ancestor revision of two revisions in a given index"""
1254 r = revlog.revlog(util.opener(os.getcwd(), audit=False), index, "") 1271 r = revlog.revlog(util.opener(os.getcwd(), audit=False), index, "")
1255 a = r.ancestor(r.lookup(rev1), r.lookup(rev2)) 1272 a = r.ancestor(r.lookup(rev1), r.lookup(rev2))
1256 ui.write("%d:%s\n" % (r.rev(a), hex(a))) 1273 ui.write("%d:%s\n" % (r.rev(a), hex(a)))
1257 1274
1258 def debugcomplete(ui, cmd): 1275 def debugcomplete(ui, cmd='', **opts):
1259 """returns the completion list associated with the given command""" 1276 """returns the completion list associated with the given command"""
1277
1278 if opts['options']:
1279 options = []
1280 otables = [globalopts]
1281 if cmd:
1282 aliases, entry = find(cmd)
1283 otables.append(entry[1])
1284 for t in otables:
1285 for o in t:
1286 if o[0]:
1287 options.append('-%s' % o[0])
1288 options.append('--%s' % o[1])
1289 ui.write("%s\n" % "\n".join(options))
1290 return
1291
1260 clist = findpossible(cmd).keys() 1292 clist = findpossible(cmd).keys()
1261 clist.sort() 1293 clist.sort()
1262 ui.write("%s\n" % " ".join(clist)) 1294 ui.write("%s\n" % "\n".join(clist))
1263 1295
1264 def debugrebuildstate(ui, repo, rev=None): 1296 def debugrebuildstate(ui, repo, rev=None):
1265 """rebuild the dirstate as it would look like for the given revision""" 1297 """rebuild the dirstate as it would look like for the given revision"""
1266 if not rev: 1298 if not rev:
1267 rev = repo.changelog.tip() 1299 rev = repo.changelog.tip()
1895 # Implement and delegate some ui protocol. Save hunks of 1927 # Implement and delegate some ui protocol. Save hunks of
1896 # output for later display in the desired order. 1928 # output for later display in the desired order.
1897 def __init__(self, ui): 1929 def __init__(self, ui):
1898 self.ui = ui 1930 self.ui = ui
1899 self.hunk = {} 1931 self.hunk = {}
1932 self.header = {}
1900 def bump(self, rev): 1933 def bump(self, rev):
1901 self.rev = rev 1934 self.rev = rev
1902 self.hunk[rev] = [] 1935 self.hunk[rev] = []
1936 self.header[rev] = []
1903 def note(self, *args): 1937 def note(self, *args):
1904 if self.verbose: 1938 if self.verbose:
1905 self.write(*args) 1939 self.write(*args)
1906 def status(self, *args): 1940 def status(self, *args):
1907 if not self.quiet: 1941 if not self.quiet:
1908 self.write(*args) 1942 self.write(*args)
1909 def write(self, *args): 1943 def write(self, *args):
1910 self.hunk[self.rev].append(args) 1944 self.hunk[self.rev].append(args)
1945 def write_header(self, *args):
1946 self.header[self.rev].append(args)
1911 def debug(self, *args): 1947 def debug(self, *args):
1912 if self.debugflag: 1948 if self.debugflag:
1913 self.write(*args) 1949 self.write(*args)
1914 def __getattr__(self, key): 1950 def __getattr__(self, key):
1915 return getattr(self.ui, key) 1951 return getattr(self.ui, key)
1962 prev = (parents and parents[0]) or nullid 1998 prev = (parents and parents[0]) or nullid
1963 dodiff(du, du, repo, prev, changenode, match=matchfn) 1999 dodiff(du, du, repo, prev, changenode, match=matchfn)
1964 du.write("\n\n") 2000 du.write("\n\n")
1965 elif st == 'iter': 2001 elif st == 'iter':
1966 if count == limit: break 2002 if count == limit: break
2003 if du.header[rev]:
2004 for args in du.header[rev]:
2005 ui.write_header(*args)
1967 if du.hunk[rev]: 2006 if du.hunk[rev]:
1968 count += 1 2007 count += 1
1969 for args in du.hunk[rev]: 2008 for args in du.hunk[rev]:
1970 ui.write(*args) 2009 ui.write(*args)
1971 2010
2635 for t, n in l: 2674 for t, n in l:
2636 try: 2675 try:
2637 r = "%5d:%s" % (repo.changelog.rev(n), hex(n)) 2676 r = "%5d:%s" % (repo.changelog.rev(n), hex(n))
2638 except KeyError: 2677 except KeyError:
2639 r = " ?:?" 2678 r = " ?:?"
2640 ui.write("%-30s %s\n" % (t, r)) 2679 if ui.quiet:
2680 ui.write("%s\n" % t)
2681 else:
2682 ui.write("%-30s %s\n" % (t, r))
2641 2683
2642 def tip(ui, repo, **opts): 2684 def tip(ui, repo, **opts):
2643 """show the tip revision 2685 """show the tip revision
2644 2686
2645 Show the tip revision. 2687 Show the tip revision.
2812 _('forcibly copy over an existing managed file')), 2854 _('forcibly copy over an existing managed file')),
2813 ('I', 'include', [], _('include names matching the given patterns')), 2855 ('I', 'include', [], _('include names matching the given patterns')),
2814 ('X', 'exclude', [], _('exclude names matching the given patterns'))], 2856 ('X', 'exclude', [], _('exclude names matching the given patterns'))],
2815 _('hg copy [OPTION]... [SOURCE]... DEST')), 2857 _('hg copy [OPTION]... [SOURCE]... DEST')),
2816 "debugancestor": (debugancestor, [], _('debugancestor INDEX REV1 REV2')), 2858 "debugancestor": (debugancestor, [], _('debugancestor INDEX REV1 REV2')),
2817 "debugcomplete": (debugcomplete, [], _('debugcomplete CMD')), 2859 "debugcomplete":
2860 (debugcomplete,
2861 [('o', 'options', None, _('show the command options'))],
2862 _('debugcomplete [-o] CMD')),
2818 "debugrebuildstate": 2863 "debugrebuildstate":
2819 (debugrebuildstate, 2864 (debugrebuildstate,
2820 [('r', 'rev', '', _('revision to rebuild to'))], 2865 [('r', 'rev', '', _('revision to rebuild to'))],
2821 _('debugrebuildstate [-r REV] [REV]')), 2866 _('debugrebuildstate [-r REV] [REV]')),
2822 "debugcheckstate": (debugcheckstate, [], _('debugcheckstate')), 2867 "debugcheckstate": (debugcheckstate, [], _('debugcheckstate')),