Merge pull request #4712 from Ondra97/codex/fix-debt-section-moves
fix(tools): preserve technical debt section moves
This commit is contained in:
commit
cd90ca50be
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Reference in New Issue