diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -2848,6 +2848,7 @@ for i in pycompat.xrange(blo, bhi): yield ('+', b[i]) + uipathfn = scmutil.getuipathfn(repo) def display(fm, fn, ctx, pstates, states): rev = scmutil.intrev(ctx) if fm.isplain(): @@ -2875,8 +2876,8 @@ for change, l in iter: fm.startitem() fm.context(ctx=ctx) - fm.data(node=fm.hexfunc(scmutil.binnode(ctx))) - fm.write('path', '%s', fn, label='grep.filename') + fm.data(node=fm.hexfunc(scmutil.binnode(ctx)), path=fn) + fm.plain(uipathfn(fn), label='grep.filename') cols = [ ('rev', '%d', rev, not plaingrep), diff --git a/tests/test-grep.t b/tests/test-grep.t --- a/tests/test-grep.t +++ b/tests/test-grep.t @@ -32,6 +32,20 @@ port:4:vaportight port:4:import/export +simple from subdirectory + + $ mkdir dir + $ cd dir + $ hg grep -r tip:0 port + port:4:export + port:4:vaportight + port:4:import/export + $ hg grep -r tip:0 port --config ui.relative-paths=yes + ../port:4:export + ../port:4:vaportight + ../port:4:import/export + $ cd .. + simple with color $ hg --config extensions.color= grep --config color.mode=ansi \