Aw: Re: Re: Re: Re: sequential use of Gnucash on multiple computers

Peter von Kaehne refdoc at gmx.net
Tue May 21 08:39:01 EDT 2013


   Thanks Blaise and Geert,

   This does make sense and has been very helpful.

   Peter

   Gesendet: Dienstag, 21. Mai 2013 um 14:27 Uhr
   Von: "Buddha Buck" <blaisepascal at gmail.com>
   An: "Peter von Kaehne" <refdoc at gmx.net>
   Cc: "Geert Janssens" <janssens-geert at telenet.be>, "GnuCash Users List"
   <gnucash-user at gnucash.org>
   Betreff: Re: Re: Re: Re: sequential use of Gnucash on multiple
   computers
   From my experience with version control systems, not likely.  However,
   I have seen other problems with merging XML files, namely overly
   aggressive determination of "common" lines in the merge, leading to
   poorly-formed XML results.

   For example:

   File1.xml
   -------------

   <transaction id="a">
     <split>...</split>
     <split>...</split>
   </transaction>
   <transaction id="new1">
     <split id="new1-1">...</split>
     <split id="new1-2">...</split>
   </transaction>
   <transaction id="b">
     <split>...</split>
     <split>...</split>
   </transaction>

   File2.xml
   -------------------

   <transaction id="a">
     <split>...</split>
     <split>...</split>
   </transaction>
   <transaction id="new2">
     <split id="new2-1">...</split>
     <split id="new2-2">...</split>
   </transaction>
   <transaction id="b">
     <split>...</split>
     <split>...</split>
   </transaction>

   MergedFile.xml
   ----------------------------

   <transaction id="a">
     <split>...</split>
     <split>...</split>
   </transaction>
   <transaction id="new1">
     <split id="new1-1">...</split>
     <split id="new1-2">...</split>
   <transaction id="new2">
     <split id="new2-1">...</split>
     <split id="new2-2">...</split>
   </transaction>
   <transaction id="b">
     <split>...</split>
     <split>...</split>
   </transaction>

   The problem being that the merge program saw the </transaction> line in
   both new files as a common edit, so included it only once in the
   output, while merging in only one copy each of the rest of the new
   transactions.

   In any event, the best policy when working with GnuCash files is to
   avoid having diverging checkouts and thus merge issues.  Always fetch
   the latest copy from subversion before starting GnuCash, and always
   commit your changes before moving to a different machine.


   On Tue, May 21, 2013 at 7:30 AM, Peter von Kaehne <[1]refdoc at gmx.net>
   wrote:

        Thanks Geert,
        On the risk of appearing a bit thick..,
        Is there a risk of the following happening?
        File 1
        Transaction A
          ..
        Transaction New1
          Split New1a
          Split New1b
        Transaction B
          ..
        ----------------------------
        File 2
        Transaction A
          ..
        Transaction New2
          Split New2a
          Split New2b
        Transaction B
          ..
        ---------------------------------
        Merged File
        Transaction A
          ..
        Transaction New1
          Split New2a
          Split New1a
        Transaction New2
          Split New1b
          Split New2b
        Transaction B
          ..
        --------------------------
        This would obviously be a corrupting disaster.
        A simple merge conflict would be annoying. But corruption would
     be a
        much bigger problem
        Peter
        Gesendet: Dienstag, 21. Mai 2013 um 12:29 Uhr
        Von: "Geert Janssens" <[2]janssens-geert at telenet.be>
        An: "Peter von Kaehne" <[3]refdoc at gmx.net>
        Betreff: Re: Aw: Re: Re: sequential use of Gnucash on multiple
        computers
        On Tuesday 21 May 2013 12:01:52 Peter von Kaehne wrote:
        Thanks Geert,
        Can you expand on that? Why would there be conflict? This
     obviously
        would be a reason that these are not good tools for the job!
        Gesendet: Dienstag, 21. Mai 2013 um 11:52 Uhr
        Von: "Geert Janssens" <[4]janssens-geert at telenet.be>

      But I'd expect concurrent changes on different PC's to conflict more
      often
      than not from a pure text point of view, even though you may have
      entered two
      totally unrelated transactions in the two PCs.


        Sure. New transactions entered are added sequentially to the data
     file
        (based on date entered). So if you add one transaction in version
     A of
        your file and another transaction in version B of your file. The
        resulting files will both have different text added at the same
        location in the file. Svn only sees text, it doesn't understand
        transaction and split semantics, so it will raise a merge
     conflict.
        Add to this that guids are random and it is very hard to enter
     the same
        transaction on two pc's a the same split second. This means that
     even
        if you enter the exact same transaction on the two different
     PC's, svn
        will still see conflicting text in the same locations in the
     file: two
        different guids and two different entry dates.
        You can easily try this yourself: create a minimal gnucash file.
     Then
        make a copy of it. Now open each file and add one transaction.
     Finally
        run a diff on the files. The diff will not show two independent
     blocks
        added in each file, but instead it will show overlapping changes.
        You could of course manually resolve each such conflict, but that
     is
        tedious and error prone. In my opinion you don't gain from such a
     set
        up.

      Geert
   _______________________________________________
   gnucash-user mailing list
   [5]gnucash-user at gnucash.org
   [6]https://lists.gnucash.org/mailman/listinfo/gnucash-user
   -----
   Please remember to CC this list on all your replies.
   You can do this by using Reply-To-List or Reply-All.

References

   1. file://localhost/tmp/refdoc@gmx.net
   2. file://localhost/tmp/janssens-geert@telenet.be
   3. file://localhost/tmp/refdoc@gmx.net
   4. file://localhost/tmp/janssens-geert@telenet.be
   5. file://localhost/tmp/gnucash-user@gnucash.org
   6. https://lists.gnucash.org/mailman/listinfo/gnucash-user


More information about the gnucash-user mailing list