diff --git a/hgext/lfs/__init__.py b/hgext/lfs/__init__.py --- a/hgext/lfs/__init__.py +++ b/hgext/lfs/__init__.py @@ -61,9 +61,11 @@ from mercurial import ( localrepo, minifileset, node, + pycompat, registrar, revlog, scmutil, + templatekw, upgrade, vfs as vfsmod, wireproto, @@ -221,8 +223,18 @@ def extsetup(ui): @templatekeyword('lfs_files') def lfsfiles(repo, ctx, **args): """List of strings. LFS files added or modified by the changeset.""" + args = pycompat.byteskwargs(args) + pointers = wrapper.pointersfromctx(ctx) # {path: pointer} - return sorted(pointers.keys()) + files = sorted(pointers.keys()) + + makemap = lambda v: { + 'file': v, + } + + # TODO: make the separator ', '? + f = templatekw._showlist('lfs_file', files, args) + return templatekw._hybrid(f, files, makemap, pycompat.identity) @command('debuglfsupload', [('r', 'rev', [], _('upload large files introduced by REV'))]) diff --git a/tests/test-lfs.t b/tests/test-lfs.t --- a/tests/test-lfs.t +++ b/tests/test-lfs.t @@ -859,6 +859,11 @@ there's no 'lfs' destination repo requir oid sha256:5bb8341bee63b3649f222b2215bde37322bea075a30575aa685d8f8d21c77024 size 29 x-is-binary 0 + $ hg --cwd convert_lfs log -r 'all()' -T '{rev}: {lfs_files % "{file}\n"}' + 0: a1 + 1: a2 + 2: a2 + $ grep 'lfs' convert_lfs/.hg/requires lfs