mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 09:17:30 +03:00
dd64e842c3
Summary: This diff fixes how syncing of merge commits decides on the `CommitSyncConfigVersion` to use. Old and incorrect behavior just always uses current version from `LiveCommitSyncConfig`. The desired behavior is to reuse the version with which parent commits are synced, and manually sync commits when version changes are needed. For merges it is more interesting, as merges have multiple parents. The overarching idea is to force all of the parents to have the same version and bail a merge if this is not the case. However, that is an ideal, and we are not there yet, because: - there are `NotSyncCandidate` parents, which can (and should at the moment) be safely excluded from the list of parents of the synced commit. - there are `Preserved` parents (which will turn into the ones synced with a `noop` version) - there are `RewrittenAs` and `EquivalentWorkingCopy` parents, which don't have an associated version. So until the problems above are solved: - absent `RewrittenAs`/`EquivalentWorkingCopy` versions are replaced with the current version - `Preserved` merge parents cause merge sync to fail. Reviewed By: StanislavGlebik Differential Revision: D24033905 fbshipit-source-id: c1c98b3e7097513af980b5a9f00cc62d248fc03b |
||
---|---|---|
.. | ||
backsyncer | ||
bookmark_renaming | ||
bookmarks_validator | ||
commit_validator | ||
cross_repo_sync | ||
live_commit_sync_config | ||
megarepo | ||
mononoke_x_repo_sync_job | ||
movers | ||
synced_commit_mapping |