sapling/eden/fs/inodes
Michael Bolin e837848da5 Introduce a special NoValueForKeyError for hgGetDirstateTuple() and hgCopyMapGet().
Summary:
Previously, we were generating a bit of disconcerting noise in our logs when
requesting a non-existent key in the dirstate or its copy map. We were also
susceptible to a logical error in the Eden side being silently translated to
a `KeyError` on the Python side.

Now we make things more explicit by converting a `std::out_of_range` on the C++
side to an explicit `NoValueForKeyError` that is defined in `eden.thrift`.
Now the Python side catches a `NoValueForKeyError` explicitly and converts it
into a `KeyError`. Other types of exceptions should pass through rather than be
swallowed.

This also updates the log messages to communicate when a there is no value for a
key. The messaging is improved so that it no longer appears to be a logical
error.

Reviewed By: wez

Differential Revision: D5800833

fbshipit-source-id: c44f2caf04622475d218593037cc6616bbb1c701
2017-09-11 10:52:09 -07:00
..
test dumb merge of MountPoint into EdenMount 2017-09-08 19:25:34 -07:00
CheckoutAction.cpp update logging statements to use folly logging APIs 2017-06-22 13:50:13 -07:00
CheckoutAction.h implement removing directories during checkout 2017-03-17 17:13:20 -07:00
CheckoutContext.cpp Adding lastCheckoutTime to EdenMount and initializing timestamps of FileInode with lastCheckoutTime 2017-07-27 11:52:31 -07:00
CheckoutContext.h Adding lastCheckoutTime to EdenMount and initializing timestamps of FileInode with lastCheckoutTime 2017-07-27 11:52:31 -07:00
DeferredDiffEntry.cpp avoid loading blob/tree metadata during hg status 2017-09-07 14:50:42 -07:00
DeferredDiffEntry.h minor clean up to GitIgnoreStack handling 2017-04-28 19:21:34 -07:00
DiffContext.h minor clean up to GitIgnoreStack handling 2017-04-28 19:21:34 -07:00
Dirstate.cpp Introduce a special NoValueForKeyError for hgGetDirstateTuple() and hgCopyMapGet(). 2017-09-11 10:52:09 -07:00
Dirstate.h Add new Thrift API: hgClearDirstate(mountPoint) 2017-08-22 16:50:24 -07:00
DirstatePersistence.cpp Reimplement dirstate used by Eden's Hg extension as a subclass of Hg's dirstate. 2017-05-26 12:05:29 -07:00
DirstatePersistence.h Reimplement dirstate used by Eden's Hg extension as a subclass of Hg's dirstate. 2017-05-26 12:05:29 -07:00
EdenDispatcher.cpp dumb merge of MountPoint into EdenMount 2017-09-08 19:25:34 -07:00
EdenDispatcher.h Dispatcher no longer needs to know about MountPoint 2017-09-08 19:25:34 -07:00
EdenMount.cpp unify state and fuseStatus in EdenMount 2017-09-08 19:25:34 -07:00
EdenMount.h unify state and fuseStatus in EdenMount 2017-09-08 19:25:34 -07:00
FileHandle.cpp add code to serialize FileHandleMap 2017-08-30 19:20:23 -07:00
FileHandle.h add code to serialize FileHandleMap 2017-08-30 19:20:23 -07:00
FileInode.cpp dumb merge of MountPoint into EdenMount 2017-09-08 19:25:34 -07:00
FileInode.h remove dead FileData references 2017-08-30 19:20:23 -07:00
hgdirstate.thrift Reimplement dirstate used by Eden's Hg extension as a subclass of Hg's dirstate. 2017-05-26 12:05:29 -07:00
InodeBase.cpp dumb merge of MountPoint into EdenMount 2017-09-08 19:25:34 -07:00
InodeBase.h implementing TreeInode::setInodeAttr 2017-08-14 13:36:37 -07:00
InodeDiffCallback.h move eden/utils and eden/fuse into eden/fs 2017-04-14 11:39:02 -07:00
InodeError.cpp update all copyright statements to "2016-present" 2017-01-20 22:03:02 -08:00
InodeError.h move eden/utils and eden/fuse into eden/fs 2017-04-14 11:39:02 -07:00
InodeMap.cpp Add test to verify that eden debug getpath indicates when inodes are unloaded 2017-08-25 08:34:31 -07:00
InodeMap.h Diagnostic tool to report Stat information of EdenFs 2017-08-25 12:49:35 -07:00
InodePtr-defs.h update all copyright statements to "2016-present" 2017-01-20 22:03:02 -08:00
InodePtr.cpp simplify InodePtr classes 2017-04-06 13:20:01 -07:00
InodePtr.h simplify InodePtr classes 2017-04-06 13:20:01 -07:00
InodePtrFwd.h simplify InodePtr classes 2017-04-06 13:20:01 -07:00
Overlay.cpp Wrapper for TimeStamps & helper function to set timestamps in setattr. 2017-08-11 11:36:07 -07:00
Overlay.h Wrapper for TimeStamps & helper function to set timestamps in setattr. 2017-08-11 11:36:07 -07:00
overlay.thrift fix issues updating TreeInode materialization status during checkout 2017-07-07 18:45:02 -07:00
ParentInodeInfo.h move eden/utils and eden/fuse into eden/fs 2017-04-14 11:39:02 -07:00
TARGETS dumb merge of MountPoint into EdenMount 2017-09-08 19:25:34 -07:00
TreeInode.cpp dumb merge of MountPoint into EdenMount 2017-09-08 19:25:34 -07:00
TreeInode.h dumb merge of MountPoint into EdenMount 2017-09-08 19:25:34 -07:00
TreeInodeDirHandle.cpp add code to serialize FileHandleMap 2017-08-30 19:20:23 -07:00
TreeInodeDirHandle.h add code to serialize FileHandleMap 2017-08-30 19:20:23 -07:00