Corionis / ELS

Corionis Entertainment Library Synchronizer data management and back-up tool
https://corionis.github.io/ELS/
GNU General Public License v3.0
6 stars 0 forks source link

Hints must be created on a single publisher #117

Closed Corionis closed 9 months ago

Corionis commented 1 year ago

Currently there is a logical problem with the way Hints are processed.

Current: Hints are processed from publisher to subscriber.

Problem: If subscriber makes changes to a shared library, for instance a rename, the publisher assumes that file is missing and sends it again. If bi-directional back-ups are used a duplicate is created.

Solution: Change Hint processing to be bi-directional at the beginning of a session. Detect item conflicts.

Corionis commented 10 months ago

Additional problem: Hints work well for a single action. However multiple actions on the same file create multiple item name-based .els files. The processing order is not guaranteed so multiple actions may fail.

Potential solution: Change Hint naming to be directory-based instead of file-based. Therefore there is only one .els file with all actions in that directory. Helps "follow" the file or directory being operated on, e.g. move a file, then rename it.

Solve both problems at the same time.

Corionis commented 10 months ago

See:

Corionis commented 9 months ago

Until the GitHub Wiki documentation is updated see Navigator - System, Hints, Help icon for details on what Hints are, how they work, and how to enable using them.

More things need to be done along with cross-platform testing.

Feedback requested.

Corionis commented 9 months ago

Screenshot with mock data:

Screenshot from 2024-01-26 22-01-17

Corionis commented 9 months ago

Hint tracking, conflict detection, and execution working cross-platform with multiple simultaneous Navigator instances.

As always, requires more testing.

Corionis commented 9 months ago

Chasing a minor Hint button bug

Corionis commented 9 months ago

Had to do some clean-up of Hint file and button handling with Hints-only without a tracker/server being deprecated.