mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 08:47:12 +03:00
556c49918c
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
91 lines
2.4 KiB
Perl
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)
|