sapling/eden/fs/store
Xavier Deguillard a7f0370727 pathmap: fix case sensitivity insertion ordering
Summary:
When the PathMap is case insensitive, its ordering must be the same as if only
lower cased elements were inserted into it. Unfortunately, due to the use of a
case sensitive std::lower_bound, this property is violated. To fix this, and
simplify the code a bit, the comparator passed to std::lower_bound must be case
insensitive so searching and inserting are looking in the same location.

To achieve this, a new generic and centralized way of comparing path is
introduced. Since A couple of places are interested in comparing paths, and
doing so with cross platform and case insensitively in mind can be tricky.
Let's add this code to the PathFuncs code directly so it's available everywhere
for every paths types.

Reviewed By: chadaustin

Differential Revision: D36119091

fbshipit-source-id: 3f7f6349c00d14bb9cb424d33328024f2962d7c8
2022-05-19 18:57:33 -07:00
..
git model: use PathMap in Tree 2022-05-19 18:57:33 -07:00
hg model: use PathMap in Tree 2022-05-19 18:57:33 -07:00
test model: use PathMap in Tree 2022-05-19 18:57:33 -07:00
BackingStore.h Create an enum represents backing store type 2022-05-16 16:01:59 -07:00
BackingStoreLogger.cpp move process name cache 2022-04-04 11:37:38 -07:00
BackingStoreLogger.h fs: fix license header 2022-01-04 15:00:07 -08:00
BlobAccess.cpp Change ObjectStore to return ImmediateFuture to replace CPU threads pool with immediate executor for non-CPU bound execution 2022-05-16 16:01:59 -07:00
BlobAccess.h fs: fix license header 2022-01-04 15:00:07 -08:00
BlobCache.h fs: fix license header 2022-01-04 15:00:07 -08:00
CMakeLists.txt reduce unit test runtime by decoupling EdenServer from the full set of BackingStore implementations 2022-04-13 12:01:59 -07:00
Diff.cpp pathmap: fix case sensitivity insertion ordering 2022-05-19 18:57:33 -07:00
Diff.h store: allow passing a DiffContext to diffCommitsForStatus 2022-04-27 11:05:01 -07:00
DiffCallback.h diff: allow reporting directory changes too 2022-05-06 09:44:33 -07:00
DiffContext.cpp store: allow passing a DiffContext to diffCommitsForStatus 2022-04-27 11:05:01 -07:00
DiffContext.h store: allow passing a DiffContext to diffCommitsForStatus 2022-04-27 11:05:01 -07:00
eden_store_util.cpp fs: fix license header 2022-01-04 15:00:07 -08:00
EmptyBackingStore.cpp use BackingStore to translate object IDs to human readable representations 2022-03-03 17:17:25 -08:00
EmptyBackingStore.h model: remove getName from TreeEntry 2022-05-11 20:24:35 -07:00
ImportPriority.h change the size of ImportPriorityKind and ObjectFetchContext members 2022-04-05 11:39:07 -07:00
IObjectStore.h Change ObjectStore to return ImmediateFuture to replace CPU threads pool with immediate executor for non-CPU bound execution 2022-05-16 16:01:59 -07:00
KeySpace.cpp fs: fix license header 2022-01-04 15:00:07 -08:00
KeySpace.h store: deprecate KeySpace::TreeMetaDataFamily 2022-03-02 15:03:35 -08:00
LocalStore.cpp model: remove an unecessary std::move in Tree:tryDeserialize 2022-05-05 17:46:04 -07:00
LocalStore.h fix some laziness in the include structure 2022-03-03 12:11:31 -08:00
LocalStoreCachedBackingStore.cpp model: remove getName from TreeEntry 2022-05-11 20:24:35 -07:00
LocalStoreCachedBackingStore.h model: remove getName from TreeEntry 2022-05-11 20:24:35 -07:00
MemoryLocalStore.cpp fs: fix license header 2022-01-04 15:00:07 -08:00
MemoryLocalStore.h fs: fix license header 2022-01-04 15:00:07 -08:00
ObjectCache-inl.h fs: fix license header 2022-01-04 15:00:07 -08:00
ObjectCache.h fix some laziness in the include structure 2022-03-03 12:11:31 -08:00
ObjectFetchContext.cpp getRequestInfo return pointer instead of reference 2022-03-02 20:04:11 -08:00
ObjectFetchContext.h change the size of ImportPriorityKind and ObjectFetchContext members 2022-04-05 11:39:07 -07:00
ObjectStore.cpp model: use PathMap in Tree 2022-05-19 18:57:33 -07:00
ObjectStore.h store: make the ObjectStore aware of case sensitivity 2022-05-19 18:57:33 -07:00
PathLoader.cpp model: move Tree closer to the PathMap API 2022-05-11 20:24:35 -07:00
PathLoader.h fs: fix license header 2022-01-04 15:00:07 -08:00
RocksDbLocalStore.cpp store: set RocksDB max_total_wal_size 2022-02-15 21:23:03 -08:00
RocksDbLocalStore.h fs: fix license header 2022-01-04 15:00:07 -08:00
ScmStatusDiffCallback.cpp diff: allow reporting directory changes too 2022-05-06 09:44:33 -07:00
ScmStatusDiffCallback.h diff: allow reporting directory changes too 2022-05-06 09:44:33 -07:00
SerializedBlobMetadata.cpp fs: fix license header 2022-01-04 15:00:07 -08:00
SerializedBlobMetadata.h fix some laziness in the include structure 2022-03-03 12:11:31 -08:00
SqliteLocalStore.cpp fs: fix license header 2022-01-04 15:00:07 -08:00
SqliteLocalStore.h fs: fix license header 2022-01-04 15:00:07 -08:00
StatsFetchContext.cpp getRequestInfo return pointer instead of reference 2022-03-02 20:04:11 -08:00
StatsFetchContext.h getRequestInfo return pointer instead of reference 2022-03-02 20:04:11 -08:00
StoreResult.cpp fs: fix license header 2022-01-04 15:00:07 -08:00
StoreResult.h fs: fix license header 2022-01-04 15:00:07 -08:00
TreeCache.cpp fs: fix license header 2022-01-04 15:00:07 -08:00
TreeCache.h fs: fix license header 2022-01-04 15:00:07 -08:00
TreeMetadata.cpp fs: fix license header 2022-01-04 15:00:07 -08:00
TreeMetadata.h fs: fix license header 2022-01-04 15:00:07 -08:00