fix: Entries missing after database merge #2223

This commit is contained in:
J-Jamet
2025-10-21 12:36:23 +02:00
parent 332eda8a7a
commit a48dccf27a

View File

@@ -488,11 +488,11 @@ class DatabaseKDBXMerger(private var database: DatabaseKDBX) {
// Merge by modification time // Merge by modification time
if (entry.lastModificationTime.isBefore(entryToMerge.lastModificationTime) if (entry.lastModificationTime.isBefore(entryToMerge.lastModificationTime)
) { ) {
// Update entry with databaseEntryToMerge and merge history
addHistory(entry, entryToMerge) addHistory(entry, entryToMerge)
if (parentEntryToMerge == entry.parent) { if (parentEntryToMerge == entry.parent) {
entry.updateWith(entryToMerge, copyHistory = true, updateParents = false) entry.updateWith(entryToMerge, copyHistory = true, updateParents = false)
} else { } else {
// Update entry with databaseEntryToMerge and merge history
database.removeEntryFrom(entry, entry.parent) database.removeEntryFrom(entry, entry.parent)
if (parentEntryToMerge != null) { if (parentEntryToMerge != null) {
database.addEntryTo(entryToMerge, parentEntryToMerge) database.addEntryTo(entryToMerge, parentEntryToMerge)
@@ -501,6 +501,12 @@ class DatabaseKDBXMerger(private var database: DatabaseKDBX) {
} else if (entry.lastModificationTime.isAfter(entryToMerge.lastModificationTime) } else if (entry.lastModificationTime.isAfter(entryToMerge.lastModificationTime)
) { ) {
addHistory(entryToMerge, entry) addHistory(entryToMerge, entry)
} else {
// If it's the same modification time, simply move entry to the right location
parentEntryToMerge?.let {
database.removeEntryFrom(entry, entry.parent)
database.addEntryTo(entryToMerge, parentEntryToMerge)
}
} }
} }
} }
@@ -569,6 +575,7 @@ class DatabaseKDBXMerger(private var database: DatabaseKDBX) {
database.removeGroupFrom(group, group.parent) database.removeGroupFrom(group, group.parent)
if (parentGroupToMerge != null) { if (parentGroupToMerge != null) {
database.addGroupTo(groupToMerge, parentGroupToMerge) database.addGroupTo(groupToMerge, parentGroupToMerge)
// Add each child
} }
} }
} }