musescore / musescore/MuseScore

Implement conflict checking for cloud scores

Open
#22,473 1 comment 0 reactions 3 assignees View on GitHub

@shoogle is already working on this.

Since Apr 18, 2024.

cloud feature request P1
Dominant language
C++
Stars
15.1k
Forks
3.3k
Avg merge
2d 2h
Merged PRs (30d)
91

Description

Problem to be solved
  1. The user edits a cloud score on 1 machine, but can’t upload the changes (they didn’t have an internet connection)
  2. Then they go to another machine, edit the same score and upload the changes. So now they have 2 versions of the same score (a local one, and a cloud one).
  3. Finally, they go back to the 1st machine and now they have the internet connection. Current behaviour: the local copy of their score is silently overwritten with the cloud version
Proposed solution

We need to prompt the user to resolve the conflicting copies before displaying the score. I.e.:

  1. User clicks on a score to open it
  2. IF we detect there is a conflicting copy online, we show the user one of the below dialogs (right one if the score is publicly visible, left one if private/unlisted)

Screenshot 2024-04-17 at 5 16 43 pm

  1. User can click on the hyperlinked text in the above dialog to see what’s actually saved to the cloud at that moment. If they know there should be different changes, they have the option (for the local version) to “Save as…” / “Publish as new score”, thereby preserving both copies.
  2. Clicking “Save as…” triggers the save flow. The score that then appears before the user is the newly saved score (online version remains untouched and unopened in the app).
  3. Clicking “Replace” overwrites the online score with the local one. This score then appears before the user in the app.

@shoogle FYI

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.