"private-kvp" merge reverted other changes since November.

John Ralls jralls at ceridwen.us
Tue May 6 22:41:17 EDT 2014

On May 6, 2014, at 6:16 PM, Mike Alexander <mta at umich.edu> wrote:

> I get this error when I quit GnuCash (master branch) with a report open:
> Backtrace:
> In ice-9/boot-9.scm:
> 157: 7 [catch #t #<catch-closure 116f3a2c0> ...]
> In unknown file:
>  ?: 6 [apply-smob/1 #<catch-closure 116f3a2c0>]
>  ?: 5 [call-with-input-string "gnc:report-generate-restore-forms" ...]
> In ice-9/boot-9.scm:
> 2320: 4 [save-module-excursion #<procedure 1185f6600 at ice-9/eval-string.scm:65:9 ()>]
> In ice-9/eval-string.scm:
> 44: 3 [read-and-eval #<input: string 1181f69c0> #:lang ...]
> 37: 2 [lp gnc:report-generate-restore-forms]
> In ice-9/eval.scm:
> 393: 1 [eval #<memoized gnc:report-generate-restore-forms> ()]
> In unknown file:
>  ?: 0 [memoize-variable-access! # #]
> ERROR: In procedure memoize-variable-access!:
> ERROR: Unbound variable: gnc:report-generate-restore-forms
> This appears to be because the merge of the "private-kvp" branch accidentally reverted part of 87c9a3b from Feb. 27.  That commit changed the function name to gnc:report-serialize, but the private-kvp merge changed the call back but not the definition.  This is only one of many changes reverted by this merge.  Since the private-kvp branch is based on c2d93cbe from November 3, other changes since then have been reverted also.
> I compared two diffs: "git diff c2d93cbe 207bedb" and "git diff acad5a0 f49983b" which I think should be functionally much the same.  The first is changes made on the private-kvp branch and the second is changes made by the merge from it to master.  In fact the two diffs are quite different.  Among the differences is the one that causes the error quoted above.
> Just to pick another random example, the merge also removed a call to qof_instance_set_dirty in gnc_template_register_save_xfrm_cell which is in register/ledger-core/split-register-model-save.c.  This call was added in 613ba0d on December 7.  This is only one of a number of changes I noticed.

That's unfortunate. It means that our strategy of merging instead of rebasing isn't going to work.

I can't address the details until I get back from travel next week -- and it may take a few more days of catch up after that -- but I'll go through the diffs in detail and try to repair any regressions.

Going forward we need to consider how to handle long-running and deferred branches (private-kvp was an instance of the latter: I wrote most of it in November and early December, but decided that we were too close to final release to merge it). Obviously more and better tests would help, but that's not a realistic prescription. Any ideas, anyone?

John Ralls

More information about the gnucash-devel mailing list