sapling/eden/mononoke/commit_rewriting
Kostia Balytskyi b7f8a1b193 megarepotool: add bonsai merge
Summary:
An extremely thin wrapper around existing APIs: just a way to create merge commits from the command line.

This is needed to make the merge strategy work:

```
C
|
M3
| \
.  \
|   \
M2   \
| \   \
.  \   \
|   \   \
M1   \   \
| \   \   \
.  TM3 \   \
.  /    |  |
.  D3 (e7a8605e0d) TM2  |
.  | /    /
.  D2 (33140b117c)  TM1
.  |  /
.  D1 (733961456f)
|   |
|    \
|    DAG to merge
|
main DAG
```

When we're creating `M2` as a result of merge of `TM2` into the main DAG, some files are deleted in the `TM3` branch, but not deleted in the `TM2` branch. Executing merge by running `hg merge` causes these files to be absent in `M2`. To make Mercurial work, we would need to execute `hg revert` for each such file prior to `hg merge`. Bonsai merge semantics however just creates correct behavior for us. Let's therefore just expose a way to create bonsai merges via the `megarepotool`.

Reviewed By: StanislavGlebik

Differential Revision: D22890787

fbshipit-source-id: 1508b3ede36f9b7414dc4d9fe9730c37456e2ef9
2020-08-03 11:32:35 -07:00
..
backsyncer mononoke/backsyncer_cmd: make backsyncer_cmd public (#36) 2020-07-30 02:52:56 -07:00
bookmark_renaming add newtype for CommitSyncConfigVersion 2020-06-26 02:45:26 -07:00
bookmarks_validator mononoke/mononoke_x_repo_sync_job: make mononoke_x_repo_sync_job and related public (#40) 2020-07-31 09:02:33 -07:00
commit_validator mononoke/mononoke_x_repo_sync_job: make mononoke_x_repo_sync_job and related public (#40) 2020-07-31 09:02:33 -07:00
cross_repo_sync mononoke/megarepotool: make megarepotool public (#38) 2020-07-30 06:50:54 -07:00
live_commit_sync_config live_commit_sync_config: make scs xrepo-lookup watch live changes 2020-07-21 09:09:23 -07:00
megarepo megarepotool: add bonsai merge 2020-08-03 11:32:35 -07:00
mononoke_x_repo_sync_job mononoke/mononoke_x_repo_sync_job: make mononoke_x_repo_sync_job and related public (#40) 2020-07-31 09:02:33 -07:00
movers mononoke/repo_import: add rewrite_commit functionality 2020-06-30 11:39:35 -07:00
synced_commit_mapping Regenerate all Cargo.tomls after upgrade to futures 0.3.5 2020-07-06 20:49:43 -07:00