diff --git a/rslib/src/decks/reparent.rs b/rslib/src/decks/reparent.rs index a9fcd318f..bfb3fee05 100644 --- a/rslib/src/decks/reparent.rs +++ b/rslib/src/decks/reparent.rs @@ -36,6 +36,9 @@ impl Collection { for deck in deck_ids { if let Some(mut deck) = self.storage.get_deck(*deck)? { if let Some(new_name) = deck.name.reparented_name(target_name) { + if new_name == deck.name { + continue; + } count += 1; let orig = deck.clone(); diff --git a/rslib/src/tags/reparent.rs b/rslib/src/tags/reparent.rs index 5d643379b..cbab806ff 100644 --- a/rslib/src/tags/reparent.rs +++ b/rslib/src/tags/reparent.rs @@ -109,11 +109,21 @@ fn reparented_name(existing_name: &str, new_parent: Option<&str>) -> Option baz::bar - Some(format!("{}::{}", new_parent, existing_base)) + let new_name = format!("{}::{}", new_parent, existing_base); + if new_name != existing_name { + Some(new_name) + } else { + None + } } } else { // foo::bar onto top level -> bar - Some(existing_base.into()) + let new_name = existing_base.into(); + if new_name != existing_name { + Some(new_name) + } else { + None + } } }