lfs: convert '{lfs_files}' keyword to a hybrid list
This will allow more attributes about the file to be queried.
--- 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'))])
--- 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