streamclone: stop listing files for entries that have no volatile files
This will save a lot of python related time.
This significantly boost performance. The following number comes from a large
private repository using perf::stream-locked-section:
base-line: 35.04 seconds
prev-change: 24.51 seconds (-30%)
prev-change: 20.88 seconds (-40%)
prev-change: 14.22 seconds (-60%)
this-change: 11.58 seconds (-67% from baseline; -18% from prev)
Same with share-safe
$ echo "[format]" >> $HGRCPATH
$ echo "use-share-safe = True" >> $HGRCPATH
$ cd $TESTTMP
$ hg init myrepo
$ cd myrepo
$ cat > .hg/hgrc <<EOF
> [extensions]
> sparse=
> EOF
$ echo a > show
$ echo x > hide
$ hg ci -Aqm 'initial'
Regression test: checks that this command correctly locks the store
before updating the store [requirements] config.
$ hg up -q 0
$ hg debugsparse --include 'hide'