merge-ort: handle cached rename & trivial resolution interaction better#2095
merge-ort: handle cached rename & trivial resolution interaction better#2095newren wants to merge 1 commit intogitgitgadget:masterfrom
Conversation
Back in commit a562d90 (merge-ort: fix failing merges in special corner case, 2025-11-03), we hit a rename assertion due to a trivial directory resolution affecting the parent of a cached rename. Since the path didn't need to be considered, we side-stepped it with if (!newinfo) continue; in process_renames(). We have since run into a case in production where a trivial resolution of a file affects the direct target of a cached rename rather than a parent directory of it. Add a testcase demonstrating this additional case. Now, if we were to follow the lead of commit a562d90, we could resolve this alternate case with an extra condition on the above if: if (!newinfo || newinfo->merged.clean) continue; However, if we had done that earlier, we would have made 979ee83 (merge-ort: fix corner case recursive submodule/directory conflict handling, 2025-12-29) harder to find and fix, and this particular position for this condition isn't actually at the root of the issue but downstream from it. Instead, let's rip out this if-check from a562d90 and put in an alternative that more directly addresses trivially resolved paths that happen to be cached renames or parent directories thereof, which is a better fix for the original testcase and which also solves the newly added testcase as well. Signed-off-by: Elijah Newren <newren@gmail.com>
|
/submit |
|
Submitted as pull.2095.git.1776724214171.gitgitgadget@gmail.com To fetch this version into To fetch this version to local tag |
|
This branch is now known as |
|
This patch series was integrated into seen via git@6936328. |
|
This patch series was integrated into seen via git@df56e91. |
|
This patch series was integrated into seen via git@672447e. |
|
There was a status update in the "Cooking" section about the branch "ort" merge backend improvements. Will merge to 'next'. source: <pull.2095.git.1776724214171.gitgitgadget@gmail.com> |
|
This patch series was integrated into seen via git@e0210ca. |
|
This patch series was integrated into seen via git@3d0d5f0. |
|
This patch series was integrated into seen via git@0887c78. |
|
This patch series was integrated into next via git@9fe2466. |
Longstanding bug discovered recently.