rough-minister-5825605/11/2016, 11:01 PM
1) relocate the entire workdir, by default, to `$HOME/.pants/<build_root hash>` with fallback to `$TMPDIR/...`. this has other benefits for things like scoot, `git clean -fdx` etc. 2) relocate just the relevant watchman workdir bits (e.g. the socket and friends), by default, to a similar path - or carve a general workdir-like dumping ground just for unix socket storage. cons: complicates the runtime footprint with another one-off dir. 3) create a `relativized_cwd` contextmanager that takes an absolute path, splits that at the dir/base name and does a `with pushd(dirname(path)): yield basename(path)` - effectively changing the cwd to the path_part for the purposes of execution of some block against a much shorter relative path. wholly unproven, but UNIX sockets do support relative paths. cons: relative paths can be error prone. 4) implement something like <http://openvswitch.org/pipermail/dev/2013-January/024528.html> for linux. cons: linux-only. 5) reduce the watchman socket path length in jenkins by -1 characters (could simply rename the `watchman.sock` to something shorter) and punt on the larger issue for now - and perhaps position #1 as a long term solution.