Should GnuCash use an external QOF library?

Neil Williams linux at codehelp.co.uk
Thu Jan 12 17:46:02 EST 2006


On Thursday 12 January 2006 2:50 pm, Derek Atkins wrote:
> Neil Williams <linux at codehelp.co.uk> writes:
> > Are you saying 
> > that  
> > entire trees can be merged? How much control is there over that process?
>
> I'm saying that entire trees can be merged.

OK, I now understand your idea. I didn't know svn could do that. In 
particular, the merging of just selected changesets.

> It's a relatively simple 
> process to make sure changesets from one tree get merged into the other.
> As for control over the process -- how much control do you want/need?

Not to change any Makefile.am, nothing outside lib/libqof/qof/ or 
lib/libqof/backend/file - nothing unexpected I suppose. qofla-dir.h.in isn't 
actually synchronised between the two trees, a differently named variable is 
used in each. (The resulting qofla-dir.h is the same, given the same 
options.) I guess that is fixable.

> It's extremely unlikely that code changes will require Makefile
> changes (at least from the GnuCash side)..  You can choose which
> changesets to merge across.

Could you give me a sample command? One using selected changesets?

What if a changeset includes changes outside lib/libqof/ ?

I'm assuming all this is done via the local working copies.

> If you're really really really against this option, 

I'm not, but I don't particularly want to completely drop SF CVS either. I 
guess that's a rod for my own back.

It would be relatively easy to use makepatch to transfer changes between the 
two (SF CVS and gnc svn) because the structure of the two trees could be the 
same - that is my main problem with the gnucash internal qof code. Having it 
in libqof has helped considerably but it's still a double patch sequence.

Let me think on it.

> another option to 
> inform you is that we could (try) to setup a post-commit process that
> emails you personally the changeset diff whenever there's a change to
> lib/libqof.  I don't know how easy it would be to do this offhand....

That's as easy to do from my end with a little use of filters or grep on 
gnucash-changes. I always read every gnucash-changes email, even if only to 
read the list of changed files. It's just frustrating when a change is made 
just after a libqof release.

> > I'm unconvinced, sorry. I don't like svn enough to use it for
> > another project.  Then there's the confusion of mixing qof into
> > gnucash space again.
>
> What confusion?

domain name, repository location. Maybe by retaining SF CVS as active this 
confusion would be minimised. It would be obvious that the svn tree exists to 
enable easier updates. It would almost be like having a development branch of 
QOF CVS.

If Anjuta supported svn I could also grant Chris' request for smaller 
increments in the changes but I can't see that being achievable, certainly 
not before G2. I DO want to retain SF CVS as a "pristine build" to coin a 
phrase from another painful thread on this list.
:-)

i.e. QOF CVS at SF will always, always, build make distcheck successfully.
(as does pilot-qof, since v0.0.5).

> > True the file replacements take a little preparation (with a SF tracker)
> > but they are handled promptly and that's a small price overall.
>
> Well, if you're willing to pay the price, I'd ask that you not
> complain about us making changes in our tree..  At least until after
> 2.0. 

I try not to complain - I would like just to be involved some more prior to a 
commit.

You have a point about v2 though. 

> After 2.0 I think we can discuss internal v. external qof. 
> Before 2.0, I think internal qof needs to be considered a viable
> development platform and unfortunately I think you're in the
> unenviable position of playing double-duty and patch-master to make
> sure our changes get propagated into SF.

It's inevitable that I carry the can for that. It is easier with lib/libqof 
but it's just part of the reality.

If the merge changeset syntax is as easy as you hint, it may make this process 
easier. However, I have to say that so far I have found svn merge to be a 
VERY difficult command with respect to the cashutil branch. It may be obvious 
to you but I am concerned that this merge tree system with selected 
changesets could be:
a) almost impossible to automate
b) easy to foul up - BADLY.

In contrast to you, I fear that using svn to merge entire trees could actually 
cause more data corruption, not less. This is grounded only in my own lack of 
confidence in svn merge commands. I respect your knowledge of svn but it'll 
be me doing the merges and I'm not at all sure I know enough to do it 
properly.

My biggest problem with the merges to the cashutil branch is just knowing 
which revisions to specify - it seems to be a black art. I've done one merge 
to bring updated gnucash trunk code into the cashutil branch (so that the 
branch had lib/libqof) and it took me ages to work out how to do it. e.g. How 
do I find out which is the starting revision? 

I did about a dozen dry runs and still got it wrong - twice. When I did 
commit, nothing appeared on gnucash-changes. Check for r12243 in 
gnucash-changes, Jan 3rd 2006. Trac seems to carry it (but times out) and it 
certainly committed, but I fouled up somewhere because no email was sent to 
gnucash-changes, only to gnucash-patches:
https://lists.gnucash.org/pipermail/gnucash-patches/2006-January/017345.html

I just don't have time to invest in learning svn like that. I get by but I 
don't think I'll ever be happy in svn.

> > I know you don't like SF but I'm happy there. Much happier than I
> > fear I would be with svn. Sorry. I do appreciate the idea.
>
> It's not that I don't like SF per se..  I do have issues with a number
> of SF's technical shortcomings..  I don't like how the anon-cvs is
> delayed by 24 hours.  I don't like the inability to get to the base
> repository.  I don't like how often SF is unreachable or has other
> downtime.  I don't like SF's CVS bandwidth limitations.

All valid points - they trouble me too, from time to time. The only difference 
is that I'm willing to overlook all those for the other things that SF 
provides. Principally the homepages, tracker, mailing lists, file releases, 
statistics (not the summary, the graphs which are more accurate), 
documentation and just the sheer recognition that SF enjoys. 

> The fact remains, it's very easy to merge files from two different SVN
> trees, so that we don't lose changes.  And yes, losing changes IS a
> major concern.  It's happened in the past, and I'm afraid it will
> happen again.

I do understand. I just don't share your enthusiasm for svn or your confidence 
that it is "very easy" to merge in svn. I've found it v.difficult - probably 
because I'm so used to CVS and only use svn for this one project. 99% of my 
commits are via CVS.

This is my ongoing problem, I am working towards data freedom and constantly 
flitting between various projects to get each one to talk to the others. It 
is why my "focus" is so different (as you once commented) - I'm not looking 
just at one codebase, I'm trying to fill the cracks between six. 

It was a black day for me when one changed from cvs, despite fully 
understanding the reasons.

-- 

Neil Williams
=============
http://www.data-freedom.org/
http://www.nosoftwarepatents.com/
http://www.linux.codehelp.co.uk/

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.gnucash.org/pipermail/gnucash-devel/attachments/20060112/56694d8a/attachment.bin


More information about the gnucash-devel mailing list