Mercurial > hg
changeset 2566:d8560b458f76
Convert hg annotate to context api
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Wed, 28 Jun 2006 17:42:17 -0500 |
parents | 7f78ca2c7977 |
children | 2748253b49c2 |
files | mercurial/commands.py mercurial/context.py |
diffstat | 2 files changed, 14 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/commands.py Wed Jun 28 17:11:42 2006 -0500 +++ b/mercurial/commands.py Wed Jun 28 17:42:17 2006 -0500 @@ -701,15 +701,18 @@ ucache = {} def getname(rev): - cl = repo.changelog.read(repo.changelog.node(rev)) - return trimuser(ui, cl[1], rev, ucache) + try: + return ucache[rev] + except: + u = trimuser(ui, repo.changectx(rev).user(), rev, ucache) + ucache[rev] = u + return u dcache = {} def getdate(rev): datestr = dcache.get(rev) if datestr is None: - cl = repo.changelog.read(repo.changelog.node(rev)) - datestr = dcache[rev] = util.datestr(cl[2]) + datestr = dcache[rev] = util.datestr(repo.changectx(rev).date()) return datestr if not pats: @@ -720,20 +723,15 @@ if not opts['user'] and not opts['changeset'] and not opts['date']: opts['number'] = 1 - if opts['rev']: - node = repo.changelog.lookup(opts['rev']) - else: - node = repo.dirstate.parents()[0] - change = repo.changelog.read(node) - mmap = repo.manifest.read(change[0]) + ctx = repo.changectx(opts['rev'] or repo.dirstate.parents()[0]) for src, abs, rel, exact in walk(repo, pats, opts, node=node): - f = repo.file(abs) - if not opts['text'] and util.binary(f.read(mmap[abs])): + fctx = ctx.filectx(abs) + if not opts['text'] and util.binary(fctx.data()): ui.write(_("%s: binary file\n") % ((pats and rel) or abs)) continue - lines = f.annotate(mmap[abs]) + lines = fctx.annotate() pieces = [] for o, f in opmap:
--- a/mercurial/context.py Wed Jun 28 17:11:42 2006 -0500 +++ b/mercurial/context.py Wed Jun 28 17:42:17 2006 -0500 @@ -119,3 +119,6 @@ # hard for renames c = self._filelog.children(self._filenode) return [ filectx(self._repo, self._path, fileid=x) for x in c ] + + def annotate(self): + return self._filelog.annotate(self._filenode)