# HG changeset patch # User Matt Harbison # Date 2015-04-18 17:08:41 # Node ID 2553ef7355abf25296e31102a0b8cfdd4ebebbbb # Parent e4e69cebeedd9981394786bd25b8fee14a6b89ba largefiles: don't mangle filesets when fixing up the log matcher The fileset-generated.t test previously failed with this: + hg: parse error: unknown identifier: .hglf/modified + (did you mean 'modified'?) + [255] Filesets will find the standins on their own, without any help. While that's useful for some things like modified(), clean(), etc., it is wrong for things like size(). Proper fileset support for largefiles is not trivial, but this was failing with just the extension enabled on a normal repo. diff --git a/hgext/largefiles/overrides.py b/hgext/largefiles/overrides.py --- a/hgext/largefiles/overrides.py +++ b/hgext/largefiles/overrides.py @@ -305,6 +305,9 @@ def overridelog(orig, ui, repo, *pats, * pats = set(p) def fixpats(pat, tostandin=lfutil.standin): + if pat.startswith('set:'): + return pat + kindpat = match_._patsplit(pat, None) if kindpat[0] is not None: diff --git a/tests/test-fileset-generated.t b/tests/test-fileset-generated.t --- a/tests/test-fileset-generated.t +++ b/tests/test-fileset-generated.t @@ -72,6 +72,20 @@ Test log content1_content2_content3-tracked | 1 + 3 files changed, 3 insertions(+), 0 deletions(-) +Largefiles doesn't crash + $ hg log -T '{rev}\n' --stat 'set:modified()' --config extensions.largefiles= + 1 + content1_content2_content1-tracked | 2 +- + content1_content2_content3-tracked | 2 +- + missing_content2_content3-tracked | 1 + + 3 files changed, 3 insertions(+), 2 deletions(-) + + 0 + content1_content1_content3-tracked | 1 + + content1_content2_content1-tracked | 1 + + content1_content2_content3-tracked | 1 + + 3 files changed, 3 insertions(+), 0 deletions(-) + $ hg log -T '{rev}\n' --stat 'set:added()' 1 content1_missing_content1-tracked | 1 - diff --git a/tests/test-largefiles-misc.t b/tests/test-largefiles-misc.t --- a/tests/test-largefiles-misc.t +++ b/tests/test-largefiles-misc.t @@ -37,6 +37,13 @@ Test copies and moves from a directory o A dira/dirb/largefile $ cd dira $ hg cp dirb/largefile foo/largefile + +TODO: Ideally, this should mention the largefile, not the standin + $ hg log -T '{rev}\n' --stat 'set:clean()' + 0 + .hglf/dira/dirb/largefile | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + $ hg ci -m "deep copy" Invoking status precommit hook A dira/foo/largefile