Merge pull request #4712 from Ondra97/codex/fix-debt-section-moves

fix(tools): preserve technical debt section moves
This commit is contained in:
Dean 2026-10-14 14:13:58 +13:00 committed by GitHub
commit cd90ca50be
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 22 additions and 1 deletions

View File

@ -170,7 +170,7 @@ def apply_change(root, base, new, index_text):
position = entries.index(anchored) + 1
entries.insert(position, moved)
matcher = difflib.SequenceMatcher(None, [entry[2] for entry in before], [entry[2] for entry in after], autojunk=False)
matcher = difflib.SequenceMatcher(None, [entry[1:3] for entry in before], [entry[1:3] for entry in after], autojunk=False)
for tag, i1, i2, j1, j2 in matcher.get_opcodes():
if tag == "equal":
continue

View File

@ -110,6 +110,27 @@ class DebtSplitTests(unittest.TestCase):
self.assertFalse((self.root / "docs/dev/debt/libSceC.md").exists())
self.assertEqual(self.read(INDEX), self.git("show", "main:" + INDEX).stdout)
def test_resolve_moves_unchanged_entry_to_functional(self):
result = self.rebase([A_STUB, B_STUB], [C_STUB, A_FUNCTIONAL, SHADER, SHARED])
self.assertEqual(result.returncode, 0, result.stdout + result.stderr)
self.assertEqual(self.git("diff", "--name-only", "--diff-filter=U").stdout, "")
self.git("rebase", "--continue")
self.assertEqual(self.read("docs/dev/debt/libSceC.md"),
"# libSceC technical debt\n\n### Functional\n\n" + C_STUB.replace("../../", "../../../") + "\n")
self.assertEqual(result.stdout.split(), ["docs/dev/debt/libSceC.md"])
self.assertEqual(self.read(INDEX), self.git("show", "main:" + INDEX).stdout)
def test_resolve_moves_unchanged_entry_to_silent_stubs(self):
result = self.rebase([A_STUB, B_STUB, C_STUB, A_FUNCTIONAL], [SHADER, SHARED])
self.assertEqual(result.returncode, 0, result.stdout + result.stderr)
self.assertEqual(self.git("diff", "--name-only", "--diff-filter=U").stdout, "")
self.git("rebase", "--continue")
self.assertEqual(self.read("docs/dev/debt/libSceA.md"),
"# libSceA technical debt\n\n### Silent stubs\n\n" + A_STUB.replace("../../", "../../../") +
"\n" + A_FUNCTIONAL.replace("../../", "../../../") + "\n")
self.assertEqual(result.stdout.split(), ["docs/dev/debt/libSceA.md"])
self.assertEqual(self.read(INDEX), self.git("show", "main:" + INDEX).stdout)
def test_resolve_refuses_changes_to_lines_that_stay_in_the_index(self):
result = self.rebase([A_STUB, B_STUB, C_STUB], [A_FUNCTIONAL, SHADER, SHARED + " too"])
self.assertNotEqual(result.returncode, 0)