mirror of
https://github.com/facebook/sapling.git
synced 2024-10-09 00:14:35 +03:00
2369f6f810
Summary: This changes a couple aspects of the materialization process: - Write out child files in the overlay before their parent. If we throw an exception or crash partway through this process, it is better to have the child not marked materialized in its parent, rather than to have the parent indicate that the child is materialized but to not actually have any overlay data for the child. In the former case we will still load the correct child data the next time we need to, but in the latter case we would fail to load the child correctly. - Hold the rename lock while materializing our parent directories, to ensure that we materialize the correct parent, and it cannot change while we are trying to perform the materialization. - Make the parent responsible for modifying the child's TreeInode::Entry. This data is owned by the parent and is protected by the parent's contents_ lock. The child really shouldn't ever be directly accessing this data without holding the parent's contents_ lock. Reviewed By: bolinfest Differential Revision: D4688057 fbshipit-source-id: 2662f79cb7d7febb086f4e0888a3d96a580c4bfa |
||
---|---|---|
.. | ||
cli | ||
config | ||
inodes | ||
journal | ||
model | ||
rocksdb | ||
service | ||
store | ||
testharness |