rust-status: don't trigger dirstate v1 rewrite when only v2 data is changed
The assumption that we need to rewrite (or append to) the dirstate if the
ignore pattern hash has changed or if any cached directory mtimes have changed
is only valid when using dirstate-v2. In dirstate-v1, neither of these things
are written to disk.
#require no-windows
$ . "$TESTDIR/remotefilelog-library.sh"
$ hg init master
$ cd master
$ cat >> .hg/hgrc <<EOF
> [remotefilelog]
> server=True
> EOF
$ echo x > foo
$ echo y > bar
$ hg commit -qAm one
$ cd ..
# partial shallow clone
$ hg clone --shallow ssh://user@dummy/master shallow --noupdate --config remotefilelog.includepattern=foo
streaming all changes
3 files to transfer, 336 bytes of data (no-zstd !)
transferred 336 bytes in * seconds (* */sec) (glob) (no-zstd !)
3 files to transfer, 338 bytes of data (zstd !)
transferred 338 bytes in * seconds (* */sec) (glob) (zstd !)
searching for changes
no changes found
$ cat >> shallow/.hg/hgrc <<EOF
> [remotefilelog]
> cachepath=$PWD/hgcache
> debug=True
> includepattern=foo
> reponame = master
> [extensions]
> remotefilelog=
> EOF
$ ls shallow/.hg/store/data
bar.i
# update partial clone
$ cd shallow
$ hg update
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob)
$ cat foo
x
$ cat bar
y
$ cd ..
# pull partial clone
$ cd master
$ echo a >> foo
$ echo b >> bar
$ hg commit -qm two
$ cd ../shallow
$ hg pull
pulling from ssh://user@dummy/master
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 0 changes to 0 files
new changesets a9688f18cb91
(run 'hg update' to get a working copy)
$ hg update
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob)
$ cat foo
x
a
$ cat bar
y
b
$ cd ..