[update-checkout] Add --match-timestamp mode to sync adjacent repos while bisecting. #7539
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This adds a new command line flag to update-checkout to enable syncing adjacent
repositories to the swift repo by commit timestamp, as one needs to do when
bisecting swift history.
To use it, one just runs
utils/update-checkout --match-timestamp; it extracts thecurrent checkout's timestamp and then moves the adjacent repositories to the latest
checkout they have before that timestamp.
If there is a most-recent commit before the target timestamp made by swift-ci, it will
prefer that over a more-recent commit not-by-swift-ci; this is necessary to land on a
revision that actually represents a valid merged state, rather than a more-recent
merge input on an upstream branch (as happens every few minutes in the llvm and clang
repos).