PhilippC / PhilippC/keepass2android
"Work on internal cache only" keeps reverting back
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 6.2k
- Forks
- 478
- Avg merge
- 1h 4m
- Merged PRs (30d)
- 2
Description
Version: 1.10-pre
There is an option for Work on internal cache only which makes keepass2android read/write only to whatever cache/db it's using (or so is my guess). However if I then hit Synchronize cache copy with the source it does a 2-way-sync such that the cache and the source-db both get updated with each other's contents, but then it reverts back to using that source-db again and I need to press the Work on internal cache only again in order to keep that going. Is this intended or is this a bug?
The reason I ask is because to me this is a very useful feature to not have data-loss when sync-ing multiple devices. This would make it behave like a "master-local" sync. Say if it never reverted (unless explicitly told so via some other menu item) and continued working on the internal cache, then the source-db on the filesystem can just be overwritten during my-dumb-file-sync-mechanism. It wouldn't matter even if keepass2android was offline at the moment (say because background app got killed etc). When it starts up again, it just uses it's local copy (the cache) and all its previous changes not sync-ed with anyone else yet are still preserved. Now I can just hit Synchronize cache copy with the source for a one-time 2-way-sync which will update both the local copy (the "cache") and the source db (master). The source db can then be sync-ed with whatever mechanism one is using with say keepassXC on desktop etc. We would never have to resolve conflicts due to the dumb-file-sync, because keepass* family of programs already merge dbs flawlessly and in case of true conflict (same record updated differently) just keep the one with the latest timestamp and put the others in the version history (which can be restored from if needed).
Currently to achieve this master-local sync, I need to remember to press the Work on internal cache only again immediately after Synchronize cache copy with the source otherwise it loses that status.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the workflow in the Android app: enable “Work on internal cache only,” run “Synchronize cache copy with the source,” and observe whether the cache-only setting persists. Trace the menu actions and state handling involved; done means the intended cache/source behavior is defined and the setting no longer changes unexpectedly, with regression coverage for the workflow.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, csharp
- Domain
- databases, mobile, security
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100