Repository navigation
Tools: list and pick the upstream fixes this fork has not taken - #22
Merged
Merged
Conversation
…ick them with -x This fork removed Android, the Oura/Polar/Huami peripherals and WHOOP 4.0, so merging upstream/main wholesale no longer works: three days of it (56 commits) came to 84 conflicts, 72 of them in deleted files. The fixes worth having, the BLE stack above all, are taken one at a time instead, and Tools/upstream-candidates.py finds them. It hides upstream commits that only touch code this fork removed, ones already taken (a `cherry-pick -x` trailer, or the same patch id), and ones declined in Tools/upstream-skip.txt. It simulates each of the rest against HEAD with `git merge-tree` and reports clean, clean once the files this fork removed are dropped, or N conflicts. A commit that only conflicts because it builds on an earlier candidate is re-simulated on top of it through throwaway commits, and marked `^` when it then applies. `--apply <sha>...` picks in upstream order with -x, `git rm`s the files this fork removed when those are the only conflicts, and stops before a commit that would need a hand resolution, leaving the tree clean. A file that is missing only because the upstream commit that adds it has not been taken is a conflict, never a drop: dropping it would cut part of the fix out of the pick without a word. Tools/test_upstream_candidates.py pins each rule against a throwaway repository shaped like this history (40 tests, standard unittest, run by tools-python.yml).
…dger Six upstream commits from a56840b..141cbd9 that do nothing for a WHOOP 5.0/MG Apple build (WHOOP 4.0, the Oura hypnogram heal, chest-strap and gym-machine reconnects, an Android test pin, a refactor-only Apple half) or that this fork has superseded (the REM funnel line), plus upstream's testing build numbers by subject.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
What
Tools/upstream-candidates.pylists the upstream commits this fork has not taken yet and says which of them apply, so upstream's fixes (the BLE stack above all) can be taken one at a time withgit cherry-pick -xinstead of by a wholesale merge, which stopped working once Android, Oura/Polar/Huami and WHOOP 4.0 were removed here (three days of upstream came to 84 conflicts, 72 in deleted files).-xtrailer, or the same patch id); commits declined inTools/upstream-skip.txt.--alllists them with the reason.git merge-treesimulation against HEAD (no index or work-tree change), reported asclean,clean, N rm(also edits N files this fork removed) orN conflicts. A commit that only conflicts because it builds on an earlier candidate is re-simulated on top of it and marked^when it then applies.--apply <sha>...: picks in upstream order with-x, drops the files this fork removed when those are the only conflicts, and stops before any commit that needs a hand resolution, leaving the tree clean. A file missing only because the upstream commit that adds it has not been taken is a conflict, never a drop.Tools/upstream-skip.txtstarts with today's review: six commits that do nothing for a 5.0/MG Apple build or that this fork has superseded, plus upstream's testing build numbers by subject.Verification
Tools/test_upstream_candidates.py: 40 tests against a throwaway repository shaped like this history (Android-only commits, both-platform fixes, clashes with the fork, chains, a file added by an earlier upstream commit, picked, same patch, declined). Isolated from the user's git config.--apply, or the removed-versus-not-yet-added rule each fails its tests.android/, Oura or the parity files);--applyof five real upstream commits on a throwaway worktree landed them in upstream order with-xtrailers, noandroid/resurrected, and an out-of-order follow-up applied once its predecessor was in.test_check_source_references(macOS/varvs/private/vartemp paths), unrelated and unchanged by this PR.