Using Moneydance on two computers with Git

tan.k.h's Avatar

tan.k.h

19 Apr, 2020 01:55 AM

Hi,

I am a newbie, having just bought Moneydance and transitioned my data from Quicken.
Because my wife and I both take part in our finances, I have Moneydance installed on both our computers, say PC1 and
PC2. That allows us to work independently.

To keep ourselves from tripping over each other, I created a repo in Github and cloned the home.moneydance data folder.
The moneydance data folder are in different locations, say PC1 c:/data/home.moneydance and PC2 d:/user/keep/home.moneydance.
When we update our finances, we push/pull to/from the repo.

I just found that even if I on PC1 did not make any changes, and just viewed the accounts, the fact that
my data location is different from PC2 keeps causing Git to detect differences in the binary files
( safe/settings, safe/tiksync/processed.data and safe/tiksync/trunk ).

Would a reasonable workaround be to keep the paths the same, eg c:/dta/home.moneydance on both PCs? Would this
be the only reason for the Git differences? If the name of computer etc are kept, then all bets are off because
the datafile would essentially be tied on one machine. Hopefully this is not the case.

As an aside, does Moneydance use some proprietary database or is the data in some flat directory of files?
I noticed many files were introduced when I make changes. Eg home.moneydance/safe/tiksynch/out/*.txn.

I am not using Moneydance's synching and sharing data because I prefer Git and its history mechanisms and we don't wish to learn another synch process. Hopefully this does not touch off any nerves!

I found a similar discussion posting called "Keeping Moneydance files in a Git repository" by Darrell Burk, Jan 26, 2020
but there were no answers to his questions.

Hope to hear from the development team and anyone whose use scenario is close enough to advice me.

Thanks in advance! Cheers and save distancing.

  1. 1 Posted by derekkent23 on 19 Apr, 2020 09:22 AM

    derekkent23's Avatar

    I am not support staff, just a user.
    Hi tan.k.h

    You may find an expert who can help you with you approach but it’s unlikely.

    Moneydance sync data between devices using its internal sync engine. This allows you to have devices open at the same time. Add a transaction to one device and it appears on the other devices within 60 seconds. Some have tried using their own approaches but usually end up here asking how they can fix corrupted data files.

    If you are syncing between a number of computers and mobile devices, say phone, Moneydance need to use Dropbox. I prefer the sync method Dropbox Folder using a free Dropbox account.

    If you are syncing only between computers Moneydance can use other free cloud servers, such as OneDrive, Google Drive, Box.com, pCload, etc.
    The set up is handled within Moneydance and is simple and safe. Your data is end to end encrypted with the key only help on your devices, not in the cloud.

    Give it a try, it simple and works great and most important is supported by Moneydance.

    See https://infinitekind.tenderapp.com/kb/syncing-and-sharing-data

    Hope this helps

  2. 2 Posted by tan.k.h on 19 Apr, 2020 07:25 PM

    tan.k.h's Avatar

    Derek,

    Thanks for your info regarding syncing.

    I currently do not need that functionality, only sharing data between 2 computers and keeping it in version control.

    The operative word you made is "corrupted data files". As a new user, it is possible for me or my wife to accidentally do that. A version control system like Git is intended to make restoring previous versions very simple. It also supports sharing, so long as Moneydance does not keep machine specific information in the binary data..

    Anyway, still hopeful a developer will deign to provide some info as well.

    Thanks to the community for a rich library of Knowledge Base and past discussions for users to look up.

  3. Support Staff 3 Posted by Sean Reilly on 20 Apr, 2020 09:57 AM

    Sean Reilly's Avatar

    Hi tan.k.h,

    I would discourage using git for sharing in this way for the same reason that I discourage using Moneydance on any kind of shared folder. Moneydance expects the data file itself to be accessed by one person at a time and can writes the current state to internal files such as trunk, settings, and processed, all of which are stored encrypted. This means they are not diff-able by git which also means that changes made in two different places will conflict if they aren't strictly done serially. If the files weren't encrypted then they would be diff-able because the encoding is text-based and done on a line-by-line basis, but there's currently no option to store the files unencrypted.

    It is a nice idea to use git to be able to restore the file at any time in the past, but it won't be very efficient due to the encryption as well as the fact that Moneydance already keeps a record of every change made to the data file internally (all of the *.txn and *.mdtxn files). This means you'd be duplicating that data which could lead to a near-exponential increase in the size of your git repository.

    I'd recommend using the built-in Moneydance syncing which can be pointed to a shared folder of your choosing, which could itself be maintained in git, without having to worry about conflicts. Using a shared folder for syncing in that way would maintain the end-to-end encryption that is used for syncing, in case that's a concern, and you and your wife could each use your own local file encryption passphrase for the local data file.

    Another possibility is to use the normal local file with shared folder (or dropbox) syncing, but keep a record of your backup folders in git. That way you'd have nicely packaged daily snapshots (each file is a zipped moneydance data file) that could be stored in git, would only need to be done from one computer, and you wouldn't need to worry about conflicts.

    Thanks,
    Sean

    --
    Sean Reilly
    Developer, The Infinite Kind
    https://infinitekind.com

  4. 4 Posted by tan.k.h on 22 Apr, 2020 04:29 AM

    tan.k.h's Avatar

    Hi Sean,

    Thanks for your response.

    I agree that since I'm using Moneydance, I should try to use its solutions for backup and syncing whereever possible.

    Regarding version control of the data, I guess I have 2 ways to proceed:
    1) Use MD to generate backups, and version control the backups in Git
    2) Put MD data in a shared folder or Dropbox and version control that.

    It would seem that (1) is preferable since backups do not contain user specific preferences, and are compressed, and suitable for Git binary storage.

    Versioning (2) would not work work well for the 2 reasons you already mentioned - a) the MD data is already versioned b) the MD data contains specific user settings

    This leads to another question regarding how many files are involved in synching. See separate question on this entitled "How many files are involved when syncing with second computer"

    Thanks,

  5. Support Staff 5 Posted by Sean Reilly on 22 Apr, 2020 08:32 AM

    Sean Reilly's Avatar

    Also, just to clarify, method 1 does put the contents of a file into a .zip but because the contents of moneydance files are encrypted, it doesn't really compress.

    Thanks,
    Sean

    --
    Sean Reilly
    Developer/Director
    infinitekind.com (http://infinitekind.com)

  6. 6 Posted by tan.k.h on 23 Apr, 2020 04:37 AM

    tan.k.h's Avatar

    Thanks Sean and Derek and other interested readers,

    I've got enough clarifications on Moneydance syncing and backup to use the processes that MD is designed for. Thus, there is also no need to use Git at all.

    Looks like my questions are all answered, and I will close out this discussion.

    Cheers to everyone!

  7. tan.k.h closed this discussion on 23 Apr, 2020 04:49 AM.

Comments are currently closed for this discussion. You can start a new one.

Keyboard shortcuts

Generic

? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac