Merge pull request #4998 from ideabsassistenza/fix/debt-resolve-leading-entries

fix(debt): preserve leading entries during conflict resolution
This commit is contained in:
Dean authored and GitHub committed 2026-10-14 14:39:06 +13:00
commit 1633843382
2 files changed
+13 -1

No files matched your search

+1 -1
View File
@@ -163,7 +163,7 @@ def apply_change(root, base, new, index_text):
_, section, item, name = entry
entries = load(name).setdefault(section, [])
moved = relink(item, INDEX, debt_file(name))
position = len(entries)
position = 0 if anchor is None else len(entries)
if anchor is not None and anchor[1] == section and anchor[3] == name:
anchored = relink(anchor[2], INDEX, debt_file(name))
if anchored in entries:
+12
View File
@@ -157,6 +157,18 @@ class DebtSplitTests(unittest.TestCase):
self.assertNotEqual(result.returncode, 0)
self.assertIn("not in a three-way conflict", result.stderr)
def test_resolve_preserves_entries_inserted_before_the_first_existing_entry(self):
first = "- [libSceA](../../core/libs/prx/libSceA/First.cpp) - `sceAFirst` returns 0"
second = "- [libSceA](../../core/libs/prx/libSceA/Second.cpp) - `sceASecond` returns 0"
result = self.rebase([first, second, A_STUB, B_STUB, C_STUB], [A_FUNCTIONAL, SHADER, SHARED])
self.assertEqual(result.returncode, 0, result.stdout + result.stderr)
self.git("rebase", "--continue")
self.assertEqual(self.read("docs/dev/debt/libSceA.md"),
"# libSceA technical debt\n\n### Silent stubs\n\n" +
"\n".join(entry.replace("../../", "../../../") for entry in (first, second, A_STUB)) +
"\n\n### Functional\n\n" + A_FUNCTIONAL.replace("../../", "../../../") + "\n")
self.assertEqual(self.read(INDEX), self.git("show", "main:" + INDEX).stdout)
if __name__ == "__main__":
unittest.main()