----- Forwarded message from Nathaniel Smith <[email protected]> -----

From: Nathaniel Smith <[email protected]>
Date: Fri, 7 Dec 2012 20:45:42 +0000
To: [email protected]
Subject: Re: [linux-elitists] Ledger: org mode for double-entry bookkeeping

On Fri, Dec 7, 2012 at 3:17 PM, Don Marti <[email protected]> wrote:
> (By the way, I'm now at Perforce, working on related
> problems among other things.  Although I prefer to use
> applications of the future, a lot of people are still
> using current mass-market desktop applications that
> failed to understand git-merge-friendly principles
> when designing their on-disk formats, which is
> understandable considering how much longer than git
> they've been around.)

Last I checked, git's merge algorithm has a lot more heuristics than
principled guarantees, which makes the idea of "git-merge-friendly
principles" more vacuous than would be ideal. It's sort of a shame,
since we actually solved the problem of merging complex structured
data in monotone. We used it for merging arbitrary mixes of
file/directory renames, but the principles are more general:
  http://thread.gmane.org/gmane.comp.version-control.monotone.devel/4297
  http://thread.gmane.org/gmane.comp.version-control.revctrl/93
  http://thread.gmane.org/gmane.comp.version-control.monotone.devel/9781
Unfortunately we only did this *after* git and mercurial's designs
"forked off", so the ideas haven't really had any influence. Plain
text is actually about the worst case for merging; AFAICT there are
still *no* algorithms that don't blow up and do horrible things in
some situation or another, because the linear ordering of lines turns
out to be a particularly nasty data structure to work with. Merging
trees, graphs, email message flags, contact fields, etc. etc. are all
totally doable though.

If I wanted to be an engineer when I grew up, then I'd convince
someone to pay me to write a sort of bastard child of sqlite and git,
where you could write a description of complex data structures and it
would implement
chained-hash-synchronization/delta-compressed-storage/provably-good-merge-algorithms,
with a clean API to expose conflicts to the app as structured
first-class entities and other niceties useful for synchronizing apps
(e.g., pruning history, in case you don't need 15 years of edits to
your mail store or calendar). Couchdb kind of wants to be this, but
last I checked couchdb doesn't even record merges in its internal
history graph, so it's doomed.

Unfortunately I decided to be an academic instead, so, no time.

-n
_______________________________________________
Do not Cc: anyone else on mail sent to this list.  The list server is set for 
maximum one recipient.
linux-elitists mailing list
[email protected]
http://zgp.org/cgi-bin/mailman/listinfo/linux-elitists

----- End forwarded message -----
-- 
Eugen* Leitl <a href="http://leitl.org";>leitl</a> http://leitl.org
______________________________________________________________
ICBM: 48.07100, 11.36820 http://www.ativel.com http://postbiota.org
8B29F6BE: 099D 78BA 2FD3 B014 B08A  7779 75B0 2443 8B29 F6BE
_______________________________________________
fossil-users mailing list
[email protected]
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to