1
0
mirror of https://github.com/ppy/osu.git synced 2025-01-10 20:32:58 +08:00
Commit Graph

40 Commits

Author SHA1 Message Date
Bartłomiej Dach
0e52797f29
Prefer not deleted models when picking model instances for reuse when importing
This fell out while investigating why the issue with online IDs
mismatching in the `.osu` could be worked around by importing the map
three times in total when starting from it not being available locally.

Here follows an explanation of why that "helped".

Import 1:
- The beatmap set is imported normally.
- Online metadata population sees the online ID mismatch and resets it
  on the problematic beatmap.

Import 2:
- The existing beatmap set is found, but deemed not reusable
  because of the single beatmap having its ID reset to -1.
- The existing beatmap set is marked deleted, and all the IDs of
  its beatmaps are reset to -1.
- The beatmap set is reimported afresh.
- Online metadata population still sees the online ID mismatch
  and resets it on the problematic beatmap.

Note that at this point the first import *is still physically present
in the database* but marked deleted.

Import 3:
- When trying to find the existing beatmap set to see if it can be
  reused, *the one pending deletion and with its IDs reset -
  - the remnant from import 1 - is returned*.
- Because of this, `validateOnlineIds()` resets online IDs
  *on the model representing the current reimport*.
- The beatmap set is reimported yet again.
- With the online ID reset, the online metadata population check for
  online ID mismatch does not run because *the IDs were reset to -1*
  earlier.

Preferring undeleted models when picking the model instance for reuse
prevents this scenario.
2024-10-30 08:18:44 +01:00
Dean Herbert
36a30cf077
Add note about using hard links in the future 2024-09-06 16:01:47 +09:00
Dean Herbert
d3c66e2404
Add basic flow for mounting beatmaps for external editing 2024-07-10 18:29:51 +09:00
Dean Herbert
a3d239c11a
Remove unused method 2024-04-29 18:48:07 +08:00
Berkan Diler
6adf0ac01e Use new LINQ Order() instead of OrderBy() when possible 2024-02-08 18:01:00 +01:00
Bartłomiej Dach
5ad962070c
Fix skin editor freezing game if opened during active gameplay 2023-10-27 14:34:30 +02:00
Bartłomiej Dach
0769d0f49f
Merge branch 'master' into fix-batch-import-score-missing-notifications 2023-09-27 17:06:47 +02:00
Dean Herbert
2481c0b64b Don't show replay import "missing beatmap" notifications during stable import
Closes https://github.com/ppy/osu/issues/24926.
2023-09-27 17:04:43 +09:00
Dean Herbert
d1d82d2b49 Improve notification display when score import fails 2023-09-26 15:00:56 +09:00
Susko3
f8537c1cbe Delegate file deletion to ImportTask to allow overriding it 2023-01-22 22:19:04 +01:00
Dean Herbert
a22b7298c6
Adjust english slightly 2023-01-10 22:27:36 +09:00
Salman Ahmed
0d6b9ebc0f Display number of failing models during batch-import 2023-01-10 13:32:10 +03:00
Salman Ahmed
8a05223591 Check cancellation token if importer was resumed while sleeping 2023-01-09 20:07:46 +03:00
Salman Ahmed
a1fbfe4b8b Specifiy importer name during pause/resume in logs 2023-01-09 19:53:41 +03:00
Dean Herbert
811a562608 Don't use bindables to avoid potential cross-usage contamination 2023-01-10 01:10:20 +09:00
Dean Herbert
62ffb4fe78 Pause imports during active gameplay 2023-01-09 18:54:11 +09:00
Dean Herbert
b8904fe747 Move ImportParameters to better home 2022-12-13 21:41:26 +09:00
Dean Herbert
cb16d62700 Hook up ImportParameter flow with IModelImporter caller methods 2022-12-13 21:29:32 +09:00
Dean Herbert
1d4230993d Hook up parameter with RealmFileStore to complete the chain 2022-12-13 19:55:18 +09:00
Dean Herbert
cf2719d4c0 Convert batchImport parameter to parameters class to allow further import configuration 2022-12-13 19:55:18 +09:00
Dean Herbert
390ff8b9da Reduce the scope of realm transactions during import operations 2022-10-11 21:58:28 +09:00
Dan Balasescu
8cbd344330 Improve performance when cancelling import with debugger attached 2022-09-05 11:28:13 +09:00
Dean Herbert
c35da62224 Add flow for bypassing local cache lookups when refreshing beatmap metadata 2022-07-28 16:33:51 +09:00
Dean Herbert
8370ca9765 Add ImportAsUpdate method to IModelImporter to avoid otehr changes 2022-07-26 15:49:04 +09:00
Dean Herbert
8b6665cb5b Ensure initial beatmap processing is done inside the import transaction 2022-07-11 02:51:54 +09:00
Dan Balasescu
0bc332e90b
Merge pull request #19029 from peppy/fix-skin-import-duplicate
Fix skins potentially being duplicated on batch import
2022-07-08 14:18:14 +09:00
Dean Herbert
c53dd4a703 Fix editor saving not updating BeatmapSetInfo's hash 2022-07-08 02:33:14 +09:00
Dean Herbert
cf1da1dd18 Fix skins potentially being duplicated on batch import
Resolves https://github.com/ppy/osu/discussions/19024#discussioncomment-3099200
2022-07-07 22:39:07 +09:00
Dean Herbert
da61d0547f Include archive name in import log output 2022-06-27 15:24:25 +09:00
Bartłomiej Dach
26c5b59f6d
Replace usages of string.To{Lower,Upper}() 2022-06-24 11:57:45 +02:00
Dean Herbert
e732c5a2d7 Add PostImport method matching PreImport 2022-06-20 18:40:23 +09:00
Dean Herbert
45c5013f09 Remove default value of RealmArchiveModelImporter.HandledExtensions
Not used anywhere and probably not wanted ever.
2022-06-20 18:40:23 +09:00
Dean Herbert
dbae4c6f5a PostImport -> PresentImport 2022-06-20 18:36:29 +09:00
Dean Herbert
882e1c69e5 Move nested task back outside try-catch to avoid double-error 2022-06-20 15:36:44 +09:00
Dean Herbert
dd93c7359e Update xmldoc for importFromArchive method 2022-06-20 15:25:43 +09:00
Dean Herbert
92f1a2958c Rename Import(TModel) to ImportModel to differentiate from other import methods 2022-06-20 15:18:07 +09:00
Dean Herbert
a6c8a832aa Remove Import(ArchiveReader) and redirect existing usages to Import(ImportTask) 2022-06-20 15:14:57 +09:00
Dan Balasescu
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
Dean Herbert
1f3e1b2d97 Combine BeatmapManager and BeatmapModelManager into one class 2022-06-16 18:07:04 +09:00
Dean Herbert
f23ddfe6cc Move remaining realm classes out of Stores namespace 2022-06-15 21:56:00 +09:00