# HG changeset patch # User Matt Harbison # Date 1515962350 18000 # Node ID 8580e5898cb74d9ef360230861987a32dd93d152 # Parent c9eb92fb87b7f6b86904dffd0691300ab52f6f46 lfs: convert '{lfs_files}' keyword to a hybrid list This will allow more attributes about the file to be queried. diff -r c9eb92fb87b7 -r 8580e5898cb7 hgext/lfs/__init__.py --- a/hgext/lfs/__init__.py Sun Dec 10 21:42:33 2017 +0100 +++ b/hgext/lfs/__init__.py Sun Jan 14 15:39:10 2018 -0500 @@ -61,9 +61,11 @@ localrepo, minifileset, node, + pycompat, registrar, revlog, scmutil, + templatekw, upgrade, vfs as vfsmod, wireproto, @@ -221,8 +223,18 @@ @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 -r c9eb92fb87b7 -r 8580e5898cb7 tests/test-lfs.t --- a/tests/test-lfs.t Sun Dec 10 21:42:33 2017 +0100 +++ b/tests/test-lfs.t Sun Jan 14 15:39:10 2018 -0500 @@ -859,6 +859,11 @@ 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