Repository navigation
ci: resolve merge conflicts caused by Action pins - #1015
Draft
Matthew John Cheetham (mjcheetham) wants to merge 1 commit into
Draft
Matthew John Cheetham (mjcheetham) wants to merge 1 commit into
Matthew John Cheetham (mjcheetham) wants to merge 1 commit into
Conversation
Microsoft Git requires full commit SHAs for GitHub Actions, while the upstream workflows use symbolic refs. An upstream version update can therefore conflict with downstream pinning even when both changes can be preserved: keeping our side loses the update, while taking theirs drops the required pin. Use the normal merge machinery on unpinned downstream contents, then pin the merged workflows again. Emulating the pin reversals and remerge with merge-tree avoids choosing one conflicted side or guessing how to edit markers, and preserves other downstream customizations. Require the index and working tree to match an untouched ordinary conflicted merge before installing the result. Refuse if unpinning leaves any conflicts, since installing those files as an ordinary tree would incorrectly mark unrelated paths as resolved. A successful resolution is staged with the original merge parents intact, leaving the final merge commit to the maintainer. The new path accepts only conflicted two-parent merges; clean merges paused before committing are rejected as well. The existing pin-refresh and commit behavior remains unchanged when no merge is in progress. Assisted-by: GPT-6.1 Sol Signed-off-by: Matthew John Cheetham <mjcheetham@outlook.com>
Matthew John Cheetham (mjcheetham)
requested a review
from Johannes Schindelin (dscho)
October 23, 2026 13:06
This branch has not been deployed
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.
Microsoft Git requires full commit SHAs for GitHub Actions, while the upstream workflows use symbolic refs. An upstream version update can therefore conflict with downstream pinning even when both changes can be preserved: keeping our side loses the update, while taking theirs drops the required pin.
Use the normal merge machinery on unpinned downstream contents, then pin the merged workflows again. Emulating the pin reversals and remerge with merge-tree avoids choosing one conflicted side or guessing how to edit markers, and preserves other downstream customizations.
Require the index and working tree to match an untouched ordinary conflicted merge before installing the result. Refuse if unpinning leaves any conflicts, since installing those files as an ordinary tree would incorrectly mark unrelated paths as resolved. A successful resolution is staged with the original merge parents intact, leaving the final merge commit to the maintainer.
The new path accepts only conflicted two-parent merges; clean merges paused before committing are rejected as well. The existing pin-refresh and commit behavior remains unchanged when no merge is in progress.