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 |