mirror of
https://github.com/ppy/osu
synced 2025-03-05 02:49:30 +00:00
The code here was assuming that if the beatmap which is having changes copied across does not exist within the `BeatmapSet.Beatmaps` list, it was not yet persisted to realm. In some edge case, it can happen that the beatmap *is* persisted to realm but not correctly attached to the beatmap set. I don't yet know how this occurs, but it has caused loss of data for at least two users. The fix here is to check realm-wide for the beatmap (using its primary key) rather than only in the list. We then handle the scenario where the beatmap needs to be reattached to the set as a seprate step. --- This does raise others questions like "are we even structuring this correctly? couldn't a single beatmap exist in two different sets?" Maybe, but let's deal with that if/when it comes up. |
||
---|---|---|
.. | ||
BeatmapLookupCache.cs | ||
EmptyRealmSet.cs | ||
ICanAcceptFiles.cs | ||
IHasFiles.cs | ||
IHasGuidPrimaryKey.cs | ||
IHasNamedFiles.cs | ||
IHasOnlineID.cs | ||
IHasPrimaryKey.cs | ||
IHasRealmFiles.cs | ||
IModelDownloader.cs | ||
IModelFileManager.cs | ||
IModelImporter.cs | ||
IModelManager.cs | ||
ImportParameters.cs | ||
ImportProgressNotification.cs | ||
ImportTask.cs | ||
INamedFile.cs | ||
INamedFileInfo.cs | ||
INamedFileUsage.cs | ||
IPostNotifications.cs | ||
ISoftDelete.cs | ||
LegacyArchiveExporter.cs | ||
LegacyBeatmapExporter.cs | ||
LegacyBeatmapImporter.cs | ||
LegacyCollectionImporter.cs | ||
LegacyExporter.cs | ||
LegacyImportManager.cs | ||
LegacyModelImporter.cs | ||
LegacyScoreExporter.cs | ||
LegacyScoreImporter.cs | ||
LegacySkinExporter.cs | ||
LegacySkinImporter.cs | ||
Live.cs | ||
MemoryCachingComponent.cs | ||
ModelDownloader.cs | ||
ModelManager.cs | ||
OnlineLookupCache.cs | ||
RealmAccess.cs | ||
RealmArchiveModelImporter.cs | ||
RealmExtensions.cs | ||
RealmFileStore.cs | ||
RealmLive.cs | ||
RealmLiveUnmanaged.cs | ||
RealmObjectExtensions.cs | ||
StandardisedScoreMigrationTools.cs | ||
TooManyDownloadsNotification.cs | ||
UserLookupCache.cs |