Git Product home page Git Product logo

Comments (15)

guanlisheng avatar guanlisheng commented on June 24, 2024 1

you might need to set periodic sync

here you go https://youtube.com/shorts/zxQHkbXhWok?si=wTn4DNBJBcsHzPe3

instant sync would take longer due to Android OS limit

from android-money-manager-ex.

marcdw1289 avatar marcdw1289 commented on June 24, 2024 1

Closing. The password issue was addressed.
The syncthing "issue" is no more. Everything in that regard is working fine.

from android-money-manager-ex.

guanlisheng avatar guanlisheng commented on June 24, 2024

so far, it is a known issue. just leave the password blank/empty. there is no much difference from previous versions.

from android-money-manager-ex.

guanlisheng avatar guanlisheng commented on June 24, 2024

hi @marcdw1289 ,
I am interested in your phone storage + syncthing issue. can you share more?

from android-money-manager-ex.

marcdw1289 avatar marcdw1289 commented on June 24, 2024

Upon thinking again I believe there is no syncthing issue.
I was fighting with DecSync at the same time I was testing with MMEx and was frustrated.

The MMEx database gets synced just fine. On the target device I would open the app and not see changes thus thinking it was not working. Been using the 2018.11 version for so long I was expecting "instant gratification". 😁

Then I remembered a discussion that mentioned the difference between the 'local' data (/data/data/moneymanagerex/) vs internal storage (/sdcard/MoneyManagerEx/).

So I assume I have to manually open the syncthinged database(?). If so then things are fine but correct me if not. Still trying to get the hang of things.

from android-money-manager-ex.

bballmaster avatar bballmaster commented on June 24, 2024

I have a suspicion about the syncthing problem. The problem with synchronization is that AMMEX makes some change to the local database immediately after it opens a db. It forces this change to be pushed to the sync-folder:

  1. if there were no changes to the remote db from another devices: "Database stored successfully".
  2. if there were changes to the remote db from another device: "Both the local and the remote files have been modified".

In the second case I have to create a copy of the last remote db in my sync folder and open it with AMMEX as a new db. Which leads me to the first case, where I have to use only AMMEX on my phone, so there would be no changes to the remote db from another devices and no conflicts.

It all works even with a new clean db created with AMMEX:

  1. create a db with AMMEX in the remote sync-folder;
  2. create an account in it - just to make it not empty;
  3. wait until the new db is synced on desktop;
  4. open the new db on desktop;
  5. make any change - create another account;
  6. wait for sync to be completed to your mobile;
  7. open AMMEX and get your "Both files have been modified".

from android-money-manager-ex.

guanlisheng avatar guanlisheng commented on June 24, 2024

hi @bballmaster,
The desired behavior is that every device modifies and performs the change sync in time. multi modifications to a single file are problematic and will result in a conflict.

once conflicted, we can force push to and pull from the remote (depending on which is the ground truth). re open is a kind of force pull.

in your example, a sync (manual or periodical) is needed between 2 and 3. this is to reflect the changes to the new db in your sync-folder.

this arch might explain it a little bit and MMEX is leverageing the external storage service to data sync.

from android-money-manager-ex.

bballmaster avatar bballmaster commented on June 24, 2024

Hi @guanlisheng.

Thanks for your answer.

I totally get the scheme of cloud storage synchronization, and I don't expect it to be possible to make multiple chacges to one flie. The described problem occures in the item 7 in my example. The "Sync on start" option is on, but AMMEX does not pull the modified db file from the remote folder, but immediately after the start modifies the local db file (without my participation) and tries to push it to the remote folder - here happens the conflict.

The expected behavior is that with the "Sync on start" option on AMMEX would know where the latest changes are and at the start:

  • if the remote file was changed last, AMMEX should pull it;
  • if the local file was changed last, AMMEX should push it to the remote folder.

Am I wrong with this logic?

from android-money-manager-ex.

guanlisheng avatar guanlisheng commented on June 24, 2024

your logic is correct, seems you just forgot to push it to the remote after 2 /before 3 (as I said).
can you try following my suggestion to perform a sync (either manual or period, e.g. restart the app)?

from android-money-manager-ex.

bballmaster avatar bballmaster commented on June 24, 2024

Sure. I checked thoroughly multiple times.

Here is how to reproduce my steps:

  1. Open AMMEX on a phone and create a new DB in a folder being synced via Syncthing, so the db file appears on the second device almost immediately.
  2. Wait for one minute and create the first account in the db.
  3. Go to Settings -> Synchronization and perform "Upload".
  4. Close AMMEX.
  5. Wait for the db file to be synced to the second device (I can see it, when the modification time changes, as I wait one minute before any db change).
  6. Open the synced db file on the second device with the desktop MMEX.
  7. See the first account and in one minute create the second one.
  8. Wait for the db file to be synced to the phone - as you can see the file modification time changed.
  9. Open AMMEX on the phone.
  10. Get the conflict message - "Both the local and the remote files have been modified", just one created account - the first one.

After I wrote this sequence I did it all once again - same result. Do you see what I miss? Or can you reproduce it the same way?

P.S.: the "Sync on start" option is on.

from android-money-manager-ex.

guanlisheng avatar guanlisheng commented on June 24, 2024

These 10 steps are much clearer and it is expected to work. the root cause is to be addressed.

Can you change step 3 by clicking Synchronize in main menu?

from android-money-manager-ex.

guanlisheng avatar guanlisheng commented on June 24, 2024

btw, you are using v2024.03.07, correct? maybe we can start a new issue separately.

from android-money-manager-ex.

bballmaster avatar bballmaster commented on June 24, 2024

#1616 (comment)

Sure. Just tried it with "Synchronize" action - no difference.

And sorry I didn't mention the version before: I was still using the previous release - 2024.02.15.1019 because of some other issues. The thing is that the search in selects became case-sensitive for cyrillic symbols, and subcategories do not unfold while searching with capital letters. Had no time to report.

And I just reproduced it all with the latest release - 2024.03.07.1021.

from android-money-manager-ex.

guanlisheng avatar guanlisheng commented on June 24, 2024

@wolfsolver, can you take a look at the category issue?

in terms of sync, I reproduced it once time. still not sure the root case why local file mtime is not determined properly.

a workaround is to click Synchronize action one more time until you see the message The database is up to date.

from android-money-manager-ex.

guanlisheng avatar guanlisheng commented on June 24, 2024

hi @bballmaster, can you try the latest apk via https://github.com/moneymanagerex/android-money-manager-ex/releases/tag/2024.03.19.1023.

i tested and it works well on your steps. it was caused by a silly bug.

from android-money-manager-ex.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.