sapling/eden/mononoke/derived_data
Aida Getoeva ce373ec652 mononoke: derive deleted files manifest for merge commits
Summary:
Design doc for the Deleted Files Manifest derived data structure - https://fb.quip.com/Wk4XAi7dyXRr.

**This diff adds derivation logic for merge commits.**

For linear case each deleted manifest node has an optional liknode, that points to the changeset id where the path was deleted. If the liknode is None it means that the path is or was a directory and its subentries were deleted, but the path itself still exists.

The idea for merge commits is that paths deleted in merges now will  have liknodes pointing to the merge commit. So if the path was deleted in both branches of the merge commit, then deleted manifest of the merge commit will have a linknode for the path pointing to the merge commit itself. (For the examples see the test cases below.)

**To generate file history for the deleted file:**

If there is no unode for the given commit and path:
 * search for the path in the Deleted files manifest
 * if there is no node, there was no such path in the repo
 * from the manifest's liknode get the changeset id where the file was deleted
 * get the changeset's parents
 * for each parent try to find unode, if there is unode, then traverse history
 * otherwise check deleted manifest again (going back to the beginning)

This logic is going to be implemented in another diff.

Reviewed By: StanislavGlebik

Differential Revision: D21182002

fbshipit-source-id: 4dfa5ae0dab20a51d78e75c0fafb624f1a652fff
2020-04-27 18:23:45 -07:00
..
blame mononoke: make blobrepo and its dependencies OSS buildable 2020-03-31 04:02:45 -07:00
changeset_info third-party/rust: Turn off async-trait/support_old_nightly 2020-04-02 17:01:24 -07:00
deleted_files_manifest mononoke: derive deleted files manifest for merge commits 2020-04-27 18:23:45 -07:00
fastlog mononoke: asyncify fastlog/ops tests 2020-04-20 12:55:33 -07:00
filenodes mononoke: make blobrepo and its dependencies OSS buildable 2020-03-31 04:02:45 -07:00
fsnodes mononoke: add dry-run mode for backfilling fsnodes 2020-04-24 04:05:53 -07:00
mercurial_derived_data mononoke: make blobrepo and its dependencies OSS buildable 2020-03-31 04:02:45 -07:00
src mononoke: remove trace uploading while deriving data 2020-04-22 01:41:05 -07:00
unodes mononoke: make blobrepo and its dependencies OSS buildable 2020-03-31 04:02:45 -07:00
utils mononoke: make blobrepo and its dependencies OSS buildable 2020-03-31 04:02:45 -07:00
Cargo.toml Bump tokio to 0.2.13 2020-04-15 12:18:00 -07:00