lfs: consult the narrow matcher when extracting pointers from ctx (
issue5794)
I added a testcase for lfs to all narrow tests, and the following failed:
test-narrow-acl.t
test-narrow-exchange.t
test-narrow-patterns.t
test-narrow-strip.t
test-narrow-trackedcmd.t
test-narrow-widen.t
test-narrow.t
The first two still have errors in the pretxnchangegroup on clone and (receiving
a) push, which I'm still looking into (
4d63f3bc1e1a fixed something in this area
already). These two modified tests seem to cover the things that failed in the
remaining narrow tests, i.e. `hg tracked` and `hg strip`, so I didn't bother
enabling the testcases elsewhere. Maybe we should, but it's 68 tests total.
--- a/hgext/lfs/wrapper.py Sat Oct 20 20:25:56 2018 +0900
+++ b/hgext/lfs/wrapper.py Sun Oct 21 22:26:00 2018 -0400
@@ -374,7 +374,12 @@
stored for the path is an empty dict.
"""
result = {}
+ m = ctx.repo().narrowmatch()
+
+ # TODO: consider manifest.fastread() instead
for f in ctx.files():
+ if not m(f):
+ continue
p = pointerfromctx(ctx, f, removed=removed)
if p is not None:
result[f] = p
--- a/tests/test-narrow-strip.t Sat Oct 20 20:25:56 2018 +0900
+++ b/tests/test-narrow-strip.t Sun Oct 21 22:26:00 2018 -0400
@@ -1,4 +1,12 @@
#testcases flat tree
+#testcases lfs-on lfs-off
+
+#if lfs-on
+ $ cat >> $HGRCPATH <<EOF
+ > [extensions]
+ > lfs =
+ > EOF
+#endif
$ . "$TESTDIR/narrow-library.sh"
--- a/tests/test-narrow.t Sat Oct 20 20:25:56 2018 +0900
+++ b/tests/test-narrow.t Sun Oct 21 22:26:00 2018 -0400
@@ -1,4 +1,12 @@
#testcases flat tree
+#testcases lfs-on lfs-off
+
+#if lfs-on
+ $ cat >> $HGRCPATH <<EOF
+ > [extensions]
+ > lfs =
+ > EOF
+#endif
$ . "$TESTDIR/narrow-library.sh"