sapling/tests/test-dirstate-migrate.t
Jun Wu 556c49918c fsmonitor: store fsmonitor state in treestate
Summary:
The new treestate was designed to store fsmonitor state. Use it to make
fsmonitor and dirstate state consistent, and avoid fsmonitor state
invalidation.

The "fsmonitor identity" check was removed as we now rely on the dirstate
identity check - dirstate and fsmonitor state must be updated consistently -
both updated or neither updated.

Since this is the first dirstate that tracks "untracked" files, several places
are adjusted (ex. dmap.dropfile, dmap.keys) to take the new untracked files
into consideration.

Reviewed By: wez

Differential Revision: D7909172

fbshipit-source-id: 05fd64b25c67ae4b07bc8cfee2731c748205975e
2018-06-14 21:38:33 -07:00

91 lines
2.4 KiB
Perl

$ for src in 0 1 2; do
> for dst in 0 1 2; do
> [ $src = $dst ] && continue
> echo ==== Migrating dirstate v$src to v$dst ====
> cd $TESTTMP
> setconfig format.dirstate=$src
> newrepo
> touch normal modified removed deleted
> hg ci -A . -q -m init
> hg rm removed
> rm deleted
> touch untracked
> echo 1 > modified
> hg status
> hg debugtreestate status
> hg debugtreestate v$dst
> hg status
> hg debugtreestate status
> done
> done
==== Migrating dirstate v0 to v1 ====
M modified
R removed
! deleted
? untracked
dirstate v0 (flat dirstate, 4 files tracked)
M modified
R removed
! deleted
? untracked
dirstate v1 (using dirstate.tree.*, 4 files tracked) (glob)
==== Migrating dirstate v0 to v2 ====
M modified
R removed
! deleted
? untracked
dirstate v0 (flat dirstate, 4 files tracked)
M modified
R removed
! deleted
? untracked
dirstate v2 (using treestate*, offset *, 4 files tracked) (glob) (no-fsmonitor !)
dirstate v2 (using treestate*, offset *, 5 files tracked) (glob) (fsmonitor !)
==== Migrating dirstate v1 to v0 ====
M modified
R removed
! deleted
? untracked
dirstate v1 (using dirstate.tree*, 4 files tracked) (glob)
M modified
R removed
! deleted
? untracked
dirstate v0 (flat dirstate, 4 files tracked)
==== Migrating dirstate v1 to v2 ====
M modified
R removed
! deleted
? untracked
dirstate v1 (using dirstate.tree*, 4 files tracked) (glob)
M modified
R removed
! deleted
? untracked
dirstate v2 (using treestate*, offset *, 4 files tracked) (glob) (no-fsmonitor !)
dirstate v2 (using treestate*, offset *, 5 files tracked) (glob) (fsmonitor !)
==== Migrating dirstate v2 to v0 ====
M modified
R removed
! deleted
? untracked
dirstate v2 (using treestate*, offset *, 4 files tracked) (glob) (no-fsmonitor !)
dirstate v2 (using treestate*, offset *, 5 files tracked) (glob) (fsmonitor !)
M modified
R removed
! deleted
? untracked
dirstate v0 (flat dirstate, 4 files tracked)
==== Migrating dirstate v2 to v1 ====
M modified
R removed
! deleted
? untracked
dirstate v2 (using treestate*, offset *, 4 files tracked) (glob) (no-fsmonitor !)
dirstate v2 (using treestate*, offset *, 5 files tracked) (glob) (fsmonitor !)
M modified
R removed
! deleted
? untracked
dirstate v1 (using dirstate.tree*, 4 files tracked) (glob)