On Mon, Aug 2, 2010 at 7:10 PM, thyrsus <[email protected]> wrote:

> The "Recovered Nodes" give me hope that a humanly useful
> representation of changes is possible.  I need to study that code.
> The result is so much better than opaque XML operations.

I think that's just for the clone stuff?

To survive bzr merges, .leo file would need a more merge-tolerant .leo file
notation.

One improvement could be this:

Instead of

<t tx="ekr.20070610063538.164">*...@nocolor

http://sourceforge.net/forum/message.php?msg_id=4309448

Still to do: update urls for tigris.*</t>

Have this:

<t tx="ekr.20070610063538.164">
*...@nocolor

http://sourceforge.net/forum/message.php?msg_id=4309448

Still to do: update urls for tigris.*
**</t>

(yes, extra newlines needed)

There should probably be extra newline between tnodes to make it easier for
merge tools.

vnode section of the .leo file would need more significant work. I STILL
think the headstring should be in the tnode section. It has been mentioned
many times that it indeed is there (in the in-memory representation), but
on-disk representation in .leo file it is still like this:

<v t="ekr.20040804164600.98"><vh>Fixed some bugs in
g.importFromPath</vh></v>

What's now in <vh> should be in <t *h=*"Fixed some bugs in g.importFromPath"
tx=gnx1>

This would, again, merge better.

For vnode hierarchy, finding the represenation would need some trial and
error.

Transient vnode ids could do the trick, so that tree structure could be
represented in "flat" fashion:


<v id=1 parent=3 childindex=1 t=gnx1>
<v id=2 parent=3 childindex=0 t=gnx2>
<v id=3 t=gnx3>

The interesting thing here is that vnodes

- have transient id, that is forgotten after the tree has been created
- are ordered by gnx. This ensures that vnodes don't move around in the .leo
file even when tree is manipulated. VCS merges are good at changing lines,
but very bad when lines move around.

OTOH, this might be akin to open-heart surgery with questionable gains. Real
practice would show whether it would make .leo files okay for collaborative
editing.



All that <global> stuff needs to be moved away from leo file, for good:

*<?xml version="1.0" encoding="utf-8"?>*
*bals body_outline_ratio="0.5" body_secondary_ratio="0.5">*
*        <global_window_position top="50" left="50" height="500"
width="700"/>*
*        <global_log_window_position top="0" left="0" height="0" width="0"/>
*
*</globals>*


-- 
Ville M. Vainio @@ Forum Nokia

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/leo-editor?hl=en.

Reply via email to