sapling/eden/fs/inodes
Puneet Kaushik eeaf1c0025 Started Eden for Windows and integrated hg store with it.
Summary:
This diff is first in the series to make Eden work on Windows. It includes:

1. HG backing store and Object store, which provides the capability to talk to mercurial and fetch the file and folder contents on Windows.
2. Subprocess and Pipe definition for Windows.
3. The Visual studio solution and projects files to compile Eden and scm datapack.

Few Important points:

1. Most of the changes to existing code is done under a macro EDEN_WIN so that it doesn't impact on other platform.
2. Sqlite is used for caching the fetched contents. We are not using Rocksdb on Windows.
3. The main function only calls some test code and exit after printing the output.
4. The initializeMononoke code is disabled for Windows because it needs Proxygen to talk HTTP. Will enable this once I get Proxygen and other dependencies working.
5. HgImporter pass Windows handles to hg_import_helper as command line args. The code to convert these handles into fds is in a separate diff.

Reviewed By: wez

Differential Revision: D8653992

fbshipit-source-id: 52a3c3750425fb92c2a7158c2c214a9372661e13
2018-08-21 17:53:38 -07:00
..
test Use a deterministic executor in TestMount 2018-08-21 12:23:00 -07:00
CheckoutAction.cpp Future<T>::then 6/n: Future<T>::then() & -> Future<T>::then() &&. 2018-08-03 23:36:16 -07:00
CheckoutAction.h use Future::makeEmpty() instead of Optional<Future> 2018-06-13 10:22:42 -07:00
CheckoutContext.cpp move folly/experimental/logging to folly/logging/ 2018-04-30 21:29:29 -07:00
CheckoutContext.h Enabled additional compiler warnings in Eden. 2018-06-01 11:39:01 -07:00
CMakeLists.txt add CMake build files 2018-04-30 14:37:46 -07:00
DeferredDiffEntry.cpp Future<T>::then 6/n: Future<T>::then() & -> Future<T>::then() &&. 2018-08-03 23:36:16 -07:00
DeferredDiffEntry.h Enabled additional compiler warnings in Eden. 2018-06-01 11:39:01 -07:00
DiffContext.cpp DiffContext changes to use TopLevelIgnores 2018-07-19 17:21:38 -07:00
DiffContext.h DiffContext changes to use TopLevelIgnores 2018-07-19 17:21:38 -07:00
Differ.cpp move folly/experimental/logging to folly/logging/ 2018-04-30 21:29:29 -07:00
Differ.h update getScmStatus() to require the commit hash as an argument 2018-04-06 12:51:31 -07:00
DirEntry.cpp clarify DirEntry's ownership of InodeBase* 2018-07-17 21:37:35 -07:00
DirEntry.h clarify DirEntry's ownership of InodeBase* 2018-07-17 21:37:35 -07:00
EdenDispatcher.cpp Future<T>::then 6/n: Future<T>::then() & -> Future<T>::then() &&. 2018-08-03 23:36:16 -07:00
EdenDispatcher.h mark a bunch of folly::Future<folly::Unit> functions with FOLLY_NODISCARD 2018-04-26 21:00:25 -07:00
EdenFileHandle.cpp restructure JournalDelta and fix Watchman subscription race 2018-08-15 14:52:06 -07:00
EdenFileHandle.h mark a bunch of folly::Future<folly::Unit> functions with FOLLY_NODISCARD 2018-04-26 21:00:25 -07:00
EdenMount.cpp Started Eden for Windows and integrated hg store with it. 2018-08-21 17:53:38 -07:00
EdenMount.h Use a deterministic executor in TestMount 2018-08-21 12:23:00 -07:00
FileInode.cpp stop writing to the overlay header on unload 2018-08-16 11:52:29 -07:00
FileInode.h stop writing to the overlay header on unload 2018-08-16 11:52:29 -07:00
GlobNode.cpp fix logic bug in glob prefetching 2018-07-16 11:38:15 -07:00
GlobNode.h move GlobNode -> inodes dir 2018-07-13 11:22:19 -07:00
InodeBase.cpp restructure JournalDelta and fix Watchman subscription race 2018-08-15 14:52:06 -07:00
InodeBase.h stop writing to the overlay header on unload 2018-08-16 11:52:29 -07:00
InodeDiffCallback.h run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
InodeError.cpp throw all errno exceptions as std::generic_category 2018-03-20 13:38:45 -07:00
InodeError.h throw all errno exceptions as std::generic_category 2018-03-20 13:38:45 -07:00
InodeLoader.h add InodeLoader to improve getFileInformation perf 2018-07-12 11:53:54 -07:00
InodeMap.cpp stop writing to the overlay header on unload 2018-08-16 11:52:29 -07:00
InodeMap.h have Overlay track nextInodeNumber_ instead of InodeMap 2018-05-31 01:46:15 -07:00
InodeMetadata.cpp allow changing uid/gid on files and directories 2018-05-24 00:15:54 -07:00
InodeMetadata.h allow changing permissions on directories 2018-05-22 11:22:19 -07:00
InodePtr-defs.h run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
InodePtr.cpp fix opt build 2018-03-12 22:22:59 -07:00
InodePtr.h add explicit conversion from std::unique_ptr to InodePtr 2018-03-09 13:37:08 -08:00
InodePtrFwd.h run clang-format across all C++ files 2017-11-03 16:02:03 -07:00
InodeTable.h store FileInode and TreeInode timestamps in the InodeTable 2018-05-22 11:22:19 -07:00
InodeTimestamps.cpp mark parts of EdenTimestamp noexcept 2018-05-09 16:50:52 -07:00
InodeTimestamps.h update mtime on directories when renaming 2018-06-01 11:39:01 -07:00
Overlay.cpp stop writing to the overlay header on unload 2018-08-16 11:52:29 -07:00
Overlay.h stop writing to the overlay header on unload 2018-08-16 11:52:29 -07:00
overlay.thrift decouple whether an entry has an inode number from materialization status 2018-03-23 18:21:21 -07:00
ParentInodeInfo.h Split Dir into its own type and move TreeInodeState out of TreeInode 2018-06-01 09:38:45 -07:00
ServerState.cpp Rename UnboundedQueueThreadPool to UnboundedQueueExecutor and add a ManualExecutor variant 2018-08-03 13:21:59 -07:00
ServerState.h Rename UnboundedQueueThreadPool to UnboundedQueueExecutor and add a ManualExecutor variant 2018-08-03 13:21:59 -07:00
TopLevelIgnores.h Remove unused code for ingesting system and user ignore files 2018-07-30 19:06:33 -07:00
TreeInode.cpp use rvalue-qual Future::ensure(): pass 2 2018-08-16 20:37:45 -07:00
TreeInode.h stop writing to the overlay header on unload 2018-08-16 11:52:29 -07:00
TreeInodeDirHandle.cpp store FileInode and TreeInode timestamps in the InodeTable 2018-05-22 11:22:19 -07:00
TreeInodeDirHandle.h remove the fusell namespace 2018-03-19 17:01:52 -07:00