tag:infinitekind.tenderapp.com,2009-01-14:/discussions/moneydance-development/2824-checking-moneydance-in-to-version-controlInfinite Kind: Discussion 2020-06-11T10:23:42Ztag:infinitekind.tenderapp.com,2009-01-14:Comment/483966382020-06-11T06:07:59Z2020-06-11T06:07:59ZChecking Moneydance in to Version Control<div><p>I just wanted to share that I've been checking in snapshots of my Moneydance data folder to version control software. Moneydance does have its automatic backup feature, but a real version control system offers very nice benefits.</p>
<p>Primarily, I am able to attach messages to each commit (instead of just a timestamp), and it's much less effort to undo changes and roll back to a previous snapshot. It's easy to imagine how indispensible this is while developing an extension that modifies (and occasional mutilates) my precious books. It also provides a means of synchronization between my computers that I trust a bit better than Dropbox.</p>
<p>Moneydance's data format is interesting. It appears to save a new file for every action taken, and then compact those dozens or hundreds of small files into a bigger one on a monthly basis. This behavior, in addition to the fact that these files utilize binary serialization instead of text serialization, means that Moneydance data really isn't conducive to version control. Reverting anything other than the most recent change, or merging parallel branches of work probably aren't possible in the current data format. That said, I've still found it to be worthwhile, both for the sake of rolling back, and to keep a good dated record of the changes that I've made.</p>
<p>Specifically, I'm using Plastic SCM, which, among the various version control software available, has the absolute fastest operation and best handling of binary files.</p></div>Max Pixeltag:infinitekind.tenderapp.com,2009-01-14:Comment/483966382020-06-11T10:23:37Z2020-06-11T10:23:37ZChecking Moneydance in to Version Control<div><p>It's great to hear your positive experience with using version control with the moneydance file. I'd note that the files are only binary because they are encrypted and that behind the encryption they are line-based text files. As you noted, a new file is created for each change (or set of changes if they are grouped). The tiksync/safe/trunk file represents the current state of the data on the current computer. That current state is composed from the combination of all of the incremental change files, and the processed.dct file contains a record of which incremental txn files have been incorporated into the trunk.</p>
<p>So in theory if you did have a conflict between changes on two computers you could revert the trunk and processed.dct files which would cause both clients to re-apply the incremental changes from the individual txn files.</p>
<p>Of course I always need to add the disclaimer that having syncing enabled would roll back any of these manual changes :)</p>
<p>Thanks,<br>
Sean</p>
<p>--<br>
Sean Reilly<br>
Developer, The Infinite Kind<br>
<a href="https://infinitekind.com">https://infinitekind.com</a></p></div>Sean Reilly