Fixups for hg grep
- kill trimuser function
- remove ucache
- simplify descending logic
- fix files with matches logic
- correct tests
--- a/mercurial/commands.py Wed Oct 25 18:31:49 2006 -0500
+++ b/mercurial/commands.py Thu Oct 26 14:04:58 2006 -0500
@@ -298,13 +298,6 @@
if cleanup is not None:
os.unlink(cleanup)
-def trimuser(ui, name, rev, revcache):
- """trim the name of the user who committed a change"""
- user = revcache.get(rev)
- if user is None:
- user = revcache[rev] = ui.shortuser(name)
- return user
-
class changeset_printer(object):
'''show changeset information when templating not requested.'''
@@ -1470,29 +1463,23 @@
yield ('+', b[i])
prev = {}
- ucache = {}
def display(fn, rev, states, prevstates):
counts = {'-': 0, '+': 0}
filerevmatches = {}
if incrementing or not opts['all']:
- a, b = prevstates, states
+ a, b, r = prevstates, states, rev
else:
- a, b = states, prevstates
+ a, b, r = states, prevstates, prev.get(fn, -1)
for change, l in difflinestates(a, b):
- if incrementing or not opts['all']:
- r = rev
- else:
- r = prev[fn]
cols = [fn, str(r)]
if opts['line_number']:
cols.append(str(l.linenum))
if opts['all']:
cols.append(change)
if opts['user']:
- cols.append(trimuser(ui, getchange(r)[1], rev,
- ucache))
+ cols.append(ui.shortuser(getchange(r)[1]))
if opts['files_with_matches']:
- c = (fn, rev)
+ c = (fn, r)
if c in filerevmatches:
continue
filerevmatches[c] = 1
--- a/tests/test-grep.out Wed Oct 25 18:31:49 2006 -0500
+++ b/tests/test-grep.out Thu Oct 26 14:04:58 2006 -0500
@@ -9,7 +9,7 @@
port:2:2:+:spam:vaportight
port:2:3:+:spam:import/export
port:1:2:+:eggs:export
-port:0:1:+:eggs:import
+port:0:1:+:spam:import
port:4:import/export
% follow
port:0:import
@@ -22,4 +22,4 @@
port:2:2:+:spam:vaportight
port:2:3:+:spam:import/export
port:1:2:+:eggs:export
-port:0:1:+:eggs:import
+port:0:1:+:spam:import