sapling/eden/integration
Andrey Chursin 0af2511a3f separate out ObjectId [proxy hash removal 1/n]
Summary:
The goal of this stack is to remove Proxy Hash type, but to achieve that we need first to address some tech debt in Eden codebase.

For the long time EdenFs had single Hash type that was used for many different use cases.

One of major uses for Hash type is identifies internal EdenFs objects such as blobs, trees, and others.

We seem to reach agreement that we need a different type for those identifiers, so we introduce separate ObjectId type in this diff to denote new identifier type and replace _some_ usage of Hash with ObjectId.

We still retain original Hash type for other use cases.

Roughly speaking, this is how this diff separates between Hash and ObjectId:

**ObjectId**:
* Everything that is stored in local store(blobs, trees, commits)

**Hash20**:
* Explicit hashes(Sha1 of the blob)
* Hg identifiers: manifest id and blob hg ig

For now, in this diff ObjectId has exactly same content as Hash, but this will change in the future diffs. Doing this way allows to keep diff size manageable, while migrating to new ObjectId right away would produce insanely large diff that would be both hard to make and review.

There are few more things that needs to be done before we can get to the meat of removing proxy hashes:

1) Replace include Hash.h with ObjectId.h where needed
2) Remove Hash type, explicitly rename rest of Hash usages to Hash20
3) Modify content of ObjectId to support new use cases
4) Modify serialized metadata and possibly other places that assume ObjectId size is fixed and equal to Hash20 size

Reviewed By: chadaustin

Differential Revision: D31316477

fbshipit-source-id: 0d5e4460a461bcaac6b9fd884517e129aeaf4baf
2021-10-01 10:25:46 -07:00
..
fsck test: verify that EdenFS can be started in the fsck tests 2021-07-26 20:07:19 -07:00
helpers separate out ObjectId [proxy hash removal 1/n] 2021-10-01 10:25:46 -07:00
hg config: add a clone.default-mount-protocol config 2021-08-04 19:31:05 -07:00
lib integration: teach integration test to arrange real edenfsctl via environ 2021-09-29 10:02:09 -07:00
snapshot test: verify that EdenFS can be started in the fsck tests 2021-07-26 20:07:19 -07:00
basic_test.py add json option to version 2021-08-30 22:12:15 -07:00
casing_test.py inodes: fix casing issue on Windows 2020-06-24 18:59:16 -07:00
chown_test.py integration: make tests compatible on Windows 2021-08-05 17:34:25 -07:00
clone_test.py integration: teach integration test to arrange real edenfsctl via environ 2021-09-29 10:02:09 -07:00
CMakeLists.txt cmake: build edenfsctl Rust 2021-09-29 10:02:09 -07:00
config_test.py rename eden.thrift Python module to eden.thrift.legacy 2020-06-10 19:29:42 -07:00
corrupt_overlay_test.py nfs: run custom integration tests on nfs 2021-05-12 15:01:08 -07:00
debug_getpath_test.py test: unbreak test_getpath_unlinked_inode on NFS 2021-05-26 19:17:11 -07:00
debug_test.py implement debugInodeStatus with traverseObservedInodes 2020-11-02 13:52:37 -08:00
doteden_test.py Add annotations to eden/integration/doteden_test.py 2021-03-12 09:57:26 -08:00
edenclient_test.py integration: use clone method from EdenFS object 2021-05-26 19:17:11 -07:00
fsck_test.py Changing eden/Eden/edenfs/Edenfs in the help and other user visible texts to EdenFS 2021-07-06 12:17:20 -07:00
glob_test.py prefetch option to only list files 2021-09-14 10:02:33 -07:00
health_test.py integration: teach integration test to arrange real edenfsctl via environ 2021-09-29 10:02:09 -07:00
help_test.py run linter in eden/integration 2021-01-25 16:13:54 -08:00
info_test.py include kernel protocol in rage 2021-09-24 15:48:24 -07:00
linux_cgroup_test.py integration: make tests compatible on Windows 2021-08-05 17:34:25 -07:00
materialized_query_test.py apply upgraded black 21.4b2 formatting to fbsource 2021-05-04 22:16:51 -07:00
mmap_test.py integration: make tests compatible on Windows 2021-08-05 17:34:25 -07:00
mount_test.py integration: teach integration test to arrange real edenfsctl via environ 2021-09-29 10:02:09 -07:00
oexcl_test.py Tidy up license headers 2019-10-11 05:28:23 -07:00
patch_test.py Tidy up license headers 2019-10-11 05:28:23 -07:00
persistence_test.py eden/integration/persistence_test.py 2020-02-24 15:42:45 -08:00
rage_test.py pretty print rage sections and normalize underlining 2021-09-10 23:54:48 -07:00
rc_test.py run linter in eden/integration 2021-01-25 16:13:54 -08:00
redirect_test.py fix redirect list test on Windows 2020-12-08 15:54:48 -08:00
remount_test.py Changing eden/Eden/edenfs/Edenfs in the help and other user visible texts to EdenFS 2021-07-06 12:17:20 -07:00
rename_test.py apply upgraded black 21.4b2 formatting to fbsource 2021-05-04 22:16:51 -07:00
restart_test.py integration: teach integration test to arrange real edenfsctl via environ 2021-09-29 10:02:09 -07:00
rocksdb_store_test.py nfs: run custom integration tests on nfs 2021-05-12 15:01:08 -07:00
sed_test.py Tidy up license headers 2019-10-11 05:28:23 -07:00
service_log_test.py integration: split the integration tests 2021-05-19 18:35:25 -07:00
setattr_test.py fix flaky time test by rounding to nearest second 2020-07-27 13:04:13 -07:00
stale_inode_test.py add a counter for the NFS unloaded unlinked inodes 2021-09-27 14:31:49 -07:00
stale_test.py nfs: run custom integration tests on nfs 2021-05-12 15:01:08 -07:00
start_test.py integration: teach integration test to arrange real edenfsctl via environ 2021-09-29 10:02:09 -07:00
stats_test.py integration: use count metric instead of rate 2021-08-17 17:29:33 -07:00
stop_test.py integration: teach integration test to arrange real edenfsctl via environ 2021-09-29 10:02:09 -07:00
systemd_test.py integration: teach integration test to arrange real edenfsctl via environ 2021-09-29 10:02:09 -07:00
takeover_test.py integration: teach integration test to arrange real edenfsctl via environ 2021-09-29 10:02:09 -07:00
thrift_test.py service: revert "normalize mount point in Thrift endpoints" 2021-08-25 14:54:58 -07:00
unicode_test.py nfs: fix non-UTF8 name handling 2021-05-26 14:05:48 -07:00
unixsocket_test.py apply black 20.8b1 formatting update 2020-10-14 20:21:52 -07:00
unlink_test.py tests: enable unlink_test on Windows 2020-06-19 18:13:20 -07:00
userinfo_test.py test: skip userinfo test if it's run as root 2021-09-10 16:42:15 -07:00
windows_fsck_test.py introduce basic fsck test cases 2021-05-17 23:38:03 -07:00
xattr_test.py tests: Fix UnusedVariable in xattr_test.py 2021-01-14 01:23:42 -08:00