The dirstate-v1 variant has the previous behavior.
dirstate-v1-tree uses the same format on disk, but uses the new
DirstateMap with a tree data structure and the new status algorithm.
These were untested so far.
( )
| hg-reviewers |
The dirstate-v1 variant has the previous behavior.
dirstate-v1-tree uses the same format on disk, but uses the new
DirstateMap with a tree data structure and the new status algorithm.
These were untested so far.
| No Linters Available |
| No Unit Test Coverage |
| Path | Packages | |||
|---|---|---|---|---|
| M | tests/test-dirstate-race.t (8 lines) | |||
| M | tests/test-dirstate-race2.t (8 lines) | |||
| M | tests/test-dirstate.t (8 lines) | |||
| M | tests/test-hgignore.t (8 lines) | |||
| M | tests/test-permissions.t (8 lines) | |||
| M | tests/test-purge.t (8 lines) | |||
| M | tests/test-status.t (8 lines) | |||
| M | tests/test-symlinks.t (8 lines) |
| Commit | Parents | Author | Summary | Date |
|---|---|---|---|---|
| e592c4087636 | ecfe0819ada5 | Simon Sapin | May 3 2021, 2:04 PM |
| Status | Author | Revision | |
|---|---|---|---|
| Closed | SimonSapin | D10704 status: Add some more tests | |
| Closed | SimonSapin | ||
| Closed | SimonSapin | ||
| Closed | SimonSapin | ||
| Closed | SimonSapin |
| #testcases dirstate-v1 dirstate-v1-tree | |||||
| #if dirstate-v1-tree | |||||
| #require rust | |||||
| $ echo '[experimental]' >> $HGRCPATH | |||||
| $ echo 'dirstate-tree.in-memory=1' >> $HGRCPATH | |||||
| #endif | |||||
| $ hg init repo | $ hg init repo | ||||
| $ cd repo | $ cd repo | ||||
| $ echo a > a | $ echo a > a | ||||
| $ hg add a | $ hg add a | ||||
| $ hg commit -m test | $ hg commit -m test | ||||
| Do we ever miss a sub-second change?: | Do we ever miss a sub-second change?: | ||||
| #testcases dirstate-v1 dirstate-v1-tree | |||||
| #if dirstate-v1-tree | |||||
| #require rust | |||||
| $ echo '[experimental]' >> $HGRCPATH | |||||
| $ echo 'dirstate-tree.in-memory=1' >> $HGRCPATH | |||||
| #endif | |||||
| Checking the size/permissions/file-type of files stored in the | Checking the size/permissions/file-type of files stored in the | ||||
| dirstate after an update where the files are changed concurrently | dirstate after an update where the files are changed concurrently | ||||
| outside of hg's control. | outside of hg's control. | ||||
| $ hg init repo | $ hg init repo | ||||
| $ cd repo | $ cd repo | ||||
| $ echo a > a | $ echo a > a | ||||
| $ hg commit -qAm _ | $ hg commit -qAm _ | ||||
| #testcases dirstate-v1 dirstate-v1-tree | |||||
| #if dirstate-v1-tree | |||||
| #require rust | |||||
| $ echo '[experimental]' >> $HGRCPATH | |||||
| $ echo 'dirstate-tree.in-memory=1' >> $HGRCPATH | |||||
| #endif | |||||
| ------ Test dirstate._dirs refcounting | ------ Test dirstate._dirs refcounting | ||||
| $ hg init t | $ hg init t | ||||
| $ cd t | $ cd t | ||||
| $ mkdir -p a/b/c/d | $ mkdir -p a/b/c/d | ||||
| $ touch a/b/c/d/x | $ touch a/b/c/d/x | ||||
| $ touch a/b/c/d/y | $ touch a/b/c/d/y | ||||
| $ touch a/b/c/d/z | $ touch a/b/c/d/z | ||||
| #testcases dirstate-v1 dirstate-v1-tree | |||||
| #if dirstate-v1-tree | |||||
| #require rust | |||||
| $ echo '[experimental]' >> $HGRCPATH | |||||
| $ echo 'dirstate-tree.in-memory=1' >> $HGRCPATH | |||||
| #endif | |||||
| $ hg init ignorerepo | $ hg init ignorerepo | ||||
| $ cd ignorerepo | $ cd ignorerepo | ||||
| debugignore with no hgignore should be deterministic: | debugignore with no hgignore should be deterministic: | ||||
| $ hg debugignore | $ hg debugignore | ||||
| <nevermatcher> | <nevermatcher> | ||||
| Issue562: .hgignore requires newline at end: | Issue562: .hgignore requires newline at end: | ||||
| #require unix-permissions no-root reporevlogstore | #require unix-permissions no-root reporevlogstore | ||||
| #testcases dirstate-v1 dirstate-v1-tree | |||||
| #if dirstate-v1-tree | |||||
| #require rust | |||||
| $ echo '[experimental]' >> $HGRCPATH | |||||
| $ echo 'dirstate-tree.in-memory=1' >> $HGRCPATH | |||||
| #endif | |||||
| $ hg init t | $ hg init t | ||||
| $ cd t | $ cd t | ||||
| $ echo foo > a | $ echo foo > a | ||||
| $ hg add a | $ hg add a | ||||
| $ hg commit -m "1" | $ hg commit -m "1" | ||||
| #testcases dirstate-v1 dirstate-v1-tree | |||||
| #if dirstate-v1-tree | |||||
| #require rust | |||||
| $ echo '[experimental]' >> $HGRCPATH | |||||
| $ echo 'dirstate-tree.in-memory=1' >> $HGRCPATH | |||||
| #endif | |||||
| init | init | ||||
| $ hg init t | $ hg init t | ||||
| $ cd t | $ cd t | ||||
| setup | setup | ||||
| $ echo r1 > r1 | $ echo r1 > r1 | ||||
| #testcases dirstate-v1 dirstate-v1-tree | |||||
| #if dirstate-v1-tree | |||||
| #require rust | |||||
| $ echo '[experimental]' >> $HGRCPATH | |||||
| $ echo 'dirstate-tree.in-memory=1' >> $HGRCPATH | |||||
| #endif | |||||
| $ hg init repo1 | $ hg init repo1 | ||||
| $ cd repo1 | $ cd repo1 | ||||
| $ mkdir a b a/1 b/1 b/2 | $ mkdir a b a/1 b/1 b/2 | ||||
| $ touch in_root a/in_a b/in_b a/1/in_a_1 b/1/in_b_1 b/2/in_b_2 | $ touch in_root a/in_a b/in_b a/1/in_a_1 b/1/in_b_1 b/2/in_b_2 | ||||
| hg status in repo root: | hg status in repo root: | ||||
| $ hg status | $ hg status | ||||
| #require symlink | #require symlink | ||||
| #testcases dirstate-v1 dirstate-v1-tree | |||||
| #if dirstate-v1-tree | |||||
| #require rust | |||||
| $ echo '[experimental]' >> $HGRCPATH | |||||
| $ echo 'dirstate-tree.in-memory=1' >> $HGRCPATH | |||||
| #endif | |||||
| == tests added in 0.7 == | == tests added in 0.7 == | ||||
| $ hg init test-symlinks-0.7; cd test-symlinks-0.7; | $ hg init test-symlinks-0.7; cd test-symlinks-0.7; | ||||
| $ touch foo; ln -s foo bar; ln -s nonexistent baz | $ touch foo; ln -s foo bar; ln -s nonexistent baz | ||||
| import with add and addremove -- symlink walking should _not_ screwup. | import with add and addremove -- symlink walking should _not_ screwup. | ||||
| $ hg add | $ hg add | ||||