[Kmymoney-devel] Merge driver for KMM files

Yury G. Kudryashov urkud.urkud at gmail.com
Mon Aug 12 09:23:36 UTC 2013


Hi!

I actively use at least two computers (desktop+laptop), and now I have to 
remember which one has the most recent kmymoney file. It is not always easy, 
because sometimes I have laptop and no Internet connection. Moreover, 
sometimes I want myself to enter my expenses using laptop (say, during a 
trip), and my wife to enter her expenses on desktop.

The solution I want to implement is an ability to add .kmy files to git. 
Currently I can setup diff driver to gunzip files, then show diff of XML 
files but I suppose that performing text merge of XML files is not safe. For 
this reason, I want to implement a proper diff3 merge for .kmy files. My 
plan:
- Get rid of global variables, move them to the class representing a KMM 
document.
- Show differences between two files:
  * renamed accounts etc (same ID, different names);
  * new transactions, accounts;
  * removed transactions;
  * edited transactions.
- 3-way merge:
  * if an account was renamed in one branch, accept rename;
  * if an account was renamed in two branches, ask user;
  * warn about transactions removed/edited in the remote branch;
  * accept new transactions from remote branch;
  * accept new accounts from remote branch.

What do you think about this plan?
-- 
Yury G. Kudryashov,
mailto: urkud at mccme.ru



More information about the KMyMoney-devel mailing list