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

Geert Janssens janssens-geert at telenet.be
Wed May 7 12:38:24 EDT 2014


On Wednesday 07 May 2014 10:49:12 John Ralls wrote:
> On May 7, 2014, at 9:54 AM, Geert Janssens <janssens-geert at telenet.be> 
wrote:
> > On Tuesday 06 May 2014 22:41:17 John Ralls wrote:
> >> 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.
> > 
> > In fact I think something went wrong in your merge. I have redone it
> > locally by checking out master right before your merge and merging
> > the private-kvp branch head right before the merge.
> > 
> > There were a couple of merge conflicts which I manually resolved.
> > After the merge the gnc:report-serialize call was not reverted to
> > gnc:report- generate-restore-forms at all.
> > 
> > Neither is the qof_instance_set_dirty call removed from
> > gnc_template_register_save_sfrm_cell.
> > 
> > I can't tell for sure if the merge I did is fully correct because I
> > had to interpret the merge conflicts and I only did that
> > superficially. But still the issues mentioned above are not there.
> > They were not part of any merge conflict either.
> > 
> > Did you use specific merge settings ? I did only a plain git merge.
> 
> No, I also did a default merge, after several merges of master back
> into private-kvp in order to get it cleaned up; the result of those
> cleanups would be the head of kvp-merge that you re-merged.
> 
> If your merge passes make check, go ahead and revert-and-remerge. I'm
> not going to try that from my laptop.
> 
It didn't at first but then I noticed you added extra corrections 
directly into the merge commit to handle a number of const warnings in 
c++ and some other issues.

I have reapplied these fixes in a separate commit and the result builds, 
runs and passes make check.

The result has been pushed to the central repository again. Note that it 
was not possible to revert-and-remerge just like that. This is explained 
in man git-revert and the reference it has to local documentation file. 
Once merged you can revert the data but not the merge history. So if you 
re-merge after reverting the merge commit nothing happens because 
according to git the branch was already merged.

So instead I redid the merge on a separate branch (branched right before 
the bad merge) and cherry-picked this merge on top of the reverted merge 
in master.

Geert


More information about the gnucash-devel mailing list