sapling/eden/integration
Wez Furlong 66eb606372 eden: add eden redirect subcommand
Summary:
This is part of the effort to make our bind-mount configuration more
visible and easier to change.

The idea is to generalize the concept of redirection and add a command to help
manage it.

The `eden redirect add` subcommand allows creating one of two different kinds
of redirection:

* `bind` - allocate some space using `mkscratch` and mount it into the repo
* `symlink` - allocate some space using `mkscratch` and create a symlink
  that points to it from the repo

On Linux we use bind mounts to implement `bind` but on macOS, which doesn't
have a bind mount concept, we create a sparse disk image file that can grow
to match the size of the disk on which it is created (in practice these are a
7-15MB in size to start and grow as the user stores data into them).

The `eden redirect del` subcommand allows removing a redirection, including
the legacy `bind-mounts` configuration from `.eden/client/config.toml`.

The `eden redirect list` subcommand lists the effective set of redirections,
both from the new redirections configuration and the legacy `bind-mounts`
configuration, along with their state.

The `eden redirect fixup` subcommand iterates over the effective set of
redirections and can remove and reinstate any that are in a broken state.

Reviewed By: strager

Differential Revision: D15707319

fbshipit-source-id: a5dd8c44c9f748482d7b48855b1305d44267885c
2019-06-25 18:42:38 -07:00
..
fsck update license headers in .py files 2019-06-19 17:02:46 -07:00
helpers update license headers in C++ files 2019-06-19 17:02:45 -07:00
hg update license headers in .py files 2019-06-19 17:02:46 -07:00
lib eden: add eden redirect subcommand 2019-06-25 18:42:38 -07:00
snapshot update license headers in .py files 2019-06-19 17:02:46 -07:00
basic_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
chown_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
clone_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
config_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
corrupt_overlay_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
debug_getpath_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
doteden_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
edenclient_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
fsck_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
glob_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
health_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
help_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
hypothesis_simple_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
info_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
linux_cgroup_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
materialized_query_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
mmap_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
mount_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
oexcl_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
patch_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
persistence_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
rage_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
rc_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
redirect_test.py eden: add eden redirect subcommand 2019-06-25 18:42:38 -07:00
remount_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
rename_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
repo_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
restart_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
rocksdb_store_test.py enable automatic garbage collection for RocksDBLocalStore 2019-06-20 20:57:04 -07:00
sed_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
service_log_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
setattr_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
stale_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
start_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
stats_test.py concurrently importing blobs from Mercurial and Mononoke 2019-06-24 13:45:02 -07:00
stop_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
systemd_fixture_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
systemd_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
takeover_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
thrift_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
unixsocket_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
unlink_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00
userinfo_test.py restore the $USER environment variable when dropping privileges 2019-06-20 21:01:36 -07:00
xattr_test.py update license headers in .py files 2019-06-19 17:02:46 -07:00