[PATCH 0/2] checkout -m: recreate conflict labels
- From
- Phillip Wood <phillip.wood123@gmail.com>
- Date
- Sep 30, 2026, 09:48 UTC
- Message-ID
- <cover.1790761727.git.phillip.wood@dunelm.org.uk>
When "git checkout -m <path>" recreates a merge conflict, it uses the labels "base", "ours", "theirs", rather than the labels used by the original merge. This short series teaches the ort machinery to write the labels to ".git/MERGE_LABELS" when it switches to a merge result containing conflicts, so that "git checkout -m" can then read that file and use the same labels.
As "git checkout -m" is recreating the original conflict I wonder if we should remember the conflict style as well so that
git -c merge.conflictStyle=diff3 git merge topic
git checkout -m <unmerged-path>would recreate diff3 style conflicts, instead of using the default config. I cannot decide if that would be convenient or confusing and am interested to hear what others think.
base-commit: 3bc0341126508f78f5869cbfc0005e987efdf0c7 Published-As: https://github.com/phillipwood/git/releases/tag/pw%2Fconflict-labels%2Fv1 View-Changes-At: https://github.com/phillipwood/git/compare/3bc034112...fdaf3da99 Fetch-It-Via: git fetch https://github.com/phillipwood/git pw/conflict-labels/v1
Phillip Wood (2): remove_branch_state: convert boolean argument to flags merge: remember conflict labels
branch.c | 17 +++++++++---- branch.h | 4 ++- builtin/checkout.c | 30 ++++++++++++++++++---- builtin/commit.c | 1 + merge-ort.c | 19 ++++++++++++++ merge.c | 63 ++++++++++++++++++++++++++++++++++++++++++++++ merge.h | 4 +++ path.c | 1 + path.h | 1 + repository.c | 1 + repository.h | 1 + sequencer.c | 1 + t/t7201-co.sh | 21 ++++++++++++++++ 13 files changed, 153 insertions(+), 11 deletions(-)
-- 2.56.0.rc2.84.gaf8b4f0d381