diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py index 533f04d4cb6d7914c658a80fff048a743f64fddd_bWVyY3VyaWFsL2NtZHV0aWwucHk=..264b90a060b785533d22dd5a282f8587d42cb633_bWVyY3VyaWFsL2NtZHV0aWwucHk= 100644 --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -2188,8 +2188,9 @@ mfnode = ctx.manifestnode() try: if mfnode and mfl[mfnode].find(file)[0]: + _prefetchfiles(repo, ctx, [file]) write(file) return 0 except KeyError: pass @@ -2191,9 +2192,12 @@ write(file) return 0 except KeyError: pass - for abs in ctx.walk(matcher): + files = [f for f in ctx.walk(matcher)] + _prefetchfiles(repo, ctx, files) + + for abs in files: write(abs) err = 0 diff --git a/tests/test-lfs-test-server.t b/tests/test-lfs-test-server.t index 533f04d4cb6d7914c658a80fff048a743f64fddd_dGVzdHMvdGVzdC1sZnMtdGVzdC1zZXJ2ZXIudA==..264b90a060b785533d22dd5a282f8587d42cb633_dGVzdHMvdGVzdC1sZnMtdGVzdC1zZXJ2ZXIudA== 100644 --- a/tests/test-lfs-test-server.t +++ b/tests/test-lfs-test-server.t @@ -177,6 +177,26 @@ ../archive/c ../archive/d +Cat will prefetch blobs in a group + + $ rm -rf .hg/store/lfs `hg config lfs.usercache` + $ hg cat -vr 1 a b c + lfs: need to transfer 3 objects (43 bytes) + lfs: downloading 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b (12 bytes) + lfs: adding 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b to the usercache + lfs: processed: 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b + lfs: downloading 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b (12 bytes) + lfs: processed: 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b + lfs: downloading d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 (19 bytes) + lfs: adding d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 to the usercache + lfs: processed: d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 + lfs: found 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b in the local lfs store + THIS-IS-LFS + lfs: found 31cf46fbc4ecd458a0943c5b4881f1f5a6dd36c53d6167d5b69ac45149b38e5b in the local lfs store + THIS-IS-LFS + lfs: found d11e1a642b60813aee592094109b406089b8dff4cb157157f753418ec7857998 in the local lfs store + ANOTHER-LARGE-FILE + Revert will prefetch blobs in a group $ rm -rf .hg/store/lfs