From d97c8e2fd2b40cf778ae2f952e2520183fc4902f Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Mon, 22 Jan 2024 18:48:32 +0000 Subject: [PATCH] tools/generate-item-upgrade-schema: filter old IDs that were already renamed by previous schemas this caused weird outputs if an item was renamed multiple times. --- tools/generate-item-upgrade-schema.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tools/generate-item-upgrade-schema.php b/tools/generate-item-upgrade-schema.php index c6096bafb..4eee92539 100644 --- a/tools/generate-item-upgrade-schema.php +++ b/tools/generate-item-upgrade-schema.php @@ -94,9 +94,14 @@ foreach($files as $file){ $newDiff = []; foreach($target["simple"] as $oldId => $newId){ - if(($merged["simple"][$oldId] ?? null) !== $newId){ - $newDiff["renamedIds"][$oldId] = $newId; + $previousNewId = $merged["simple"][$oldId] ?? null; + if( + $previousNewId === $newId || //if previous schemas already accounted for this + ($previousNewId !== null && isset($target["simple"][$previousNewId])) //or the item's ID has been changed for a second time + ){ + continue; } + $newDiff["renamedIds"][$oldId] = $newId; } if(isset($newDiff["renamedIds"])){ ksort($newDiff["renamedIds"], SORT_STRING);