sapling/eden/integration/hg
Xavier Deguillard c407619ac1 inodes: use Trees instead of Inodes for Prjfs callbacks
Summary:
In ProjectedFS terminology, the "backing store" refers to the state of files
and directories in the source control backend. For the longest time, EdenFS
assumed that the Inodes hierarchy was the "backing store", but this lead to
subtle bugs. For instance, renaming a non-hydrated placeholder would render the
file unreadable due to the read callback from ProjecedFS callback using the old
file name, not the new one
(https://github.com/microsoft/ProjFS-Managed-API/issues/68). It also meant that
files just created would always get a tombstone written on disk when being
removed as ProjectedFS queries EdenFS when removing a file via the access
callback. Returning true from this callback means that this file is present in
the backing store and thus ProjectedFS needs to create a tombstone on disk.

In order to fix these issues, EdenFS needs not to query the Inodes hierarchy,
but the Tree hierarchy. The latter matches with the expected behavior from
ProjectedFS.

For modification callbacks, these are by design acting on the Inode hierarchy
and thus are unchanged.

Reviewed By: chadaustin

Differential Revision: D32022639

fbshipit-source-id: bef18a0709a7eff9ef0a48a90126d1339be0023e
2021-11-09 13:29:48 -08:00
..
lib config: add a clone.default-mount-protocol config 2021-08-04 19:31:05 -07:00
absorb_test.py replace a bunch of pyre-fixme comments with pyre-ignoree 2020-02-24 18:55:19 -08:00
add_test.py integration: enable the add_test on Windows 2021-08-02 12:04:34 -07:00
CMakeLists.txt enable all integration test sources in CMake builds 2020-05-04 11:46:09 -07:00
commit_test.py replace a bunch of pyre-fixme comments with pyre-ignoree 2020-02-24 18:55:19 -08:00
copy_test.py replace a bunch of pyre-fixme comments with pyre-ignoree 2020-02-24 18:55:19 -08:00
debug_clear_local_caches_test.py replace a bunch of pyre-fixme comments with pyre-ignoree 2020-02-24 18:55:19 -08:00
debug_get_parents.py make hg inform edenfs of newly created root manifests 2021-07-29 10:01:02 -07:00
debug_hg_dirstate_test.py replace a bunch of pyre-fixme comments with pyre-ignoree 2020-02-24 18:55:19 -08:00
diff_test.py replace a bunch of pyre-fixme comments with pyre-ignoree 2020-02-24 18:55:19 -08:00
doctor_test.py make hg inform edenfs of newly created root manifests 2021-07-29 10:01:02 -07:00
files_test.py integration: enable files_test on Windows 2020-08-03 11:26:31 -07:00
fold_test.py integration: enable fold tests on Windows 2021-08-02 12:04:33 -07:00
graft_test.py replace a bunch of pyre-fixme comments with pyre-ignoree 2020-02-24 18:55:19 -08:00
grep_test.py replace a bunch of pyre-fixme comments with pyre-ignoree 2020-02-24 18:55:19 -08:00
histedit_test.py replace a bunch of pyre-fixme comments with pyre-ignoree 2020-02-24 18:55:19 -08:00
journal_test.py replace a bunch of pyre-fixme comments with pyre-ignoree 2020-02-24 18:55:19 -08:00
merge_test.py integration: fix merge tests 2020-11-02 20:47:29 -08:00
move_test.py replace a bunch of pyre-fixme comments with pyre-ignoree 2020-02-24 18:55:19 -08:00
negative_caching_test.py integration: run the hg integration tests with NFS too 2021-05-26 14:05:48 -07:00
non_eden_operation_test.py Daily arc lint --take BLACK 2021-06-15 10:03:43 -07:00
post_clone_test.py integration: enable post_clone test on Windows 2021-08-02 12:04:34 -07:00
pull_test.py integration: fix pull_test with getdeps 2021-07-27 16:16:30 -07:00
README.md move integration tests to eden/integration 2017-01-31 14:41:14 -08:00
rebase_test.py inodes: invalidate more on Windows 2020-08-03 11:26:31 -07:00
revert_test.py fix hg revert on conflicted file during conflict resolution 2020-03-16 18:35:20 -07:00
rm_test.py replace a bunch of pyre-fixme comments with pyre-ignoree 2020-02-24 18:55:19 -08:00
rollback_test.py revlog: turn on head-based-commit-transaction for tests 2020-07-08 14:33:58 -07:00
sparse_test.py replace a bunch of pyre-fixme comments with pyre-ignoree 2020-02-24 18:55:19 -08:00
split_test.py run linter in eden/integration 2021-01-25 16:13:54 -08:00
status_deadlock_test.py replace a bunch of pyre-fixme comments with pyre-ignoree 2020-02-24 18:55:19 -08:00
status_test.py integration: run the hg integration tests with NFS too 2021-05-26 14:05:48 -07:00
storage_engine_test.py replace a bunch of pyre-fixme comments with pyre-ignoree 2020-02-24 18:55:19 -08:00
symlink_test.py replace a bunch of pyre-fixme comments with pyre-ignoree 2020-02-24 18:55:19 -08:00
undo_test.py replace a bunch of pyre-fixme comments with pyre-ignoree 2020-02-24 18:55:19 -08:00
update_test.py inodes: use Trees instead of Inodes for Prjfs callbacks 2021-11-09 13:29:48 -08:00

Integration tests in this directory are specific to the Eden extension for Mercurial.

Most tests will want to subclass HgExtensionTestBase.