Mail Archives: geda-user/2014/10/17/13:28:54
On 10/17/2014 01:45 AM, gedau AT igor2 DOT repo DOT hu wrote:
> Where it certainly won't help: - object coord changes, things getting moved around in pcb - logical connections change in sch -
> pcb element or sch symbol gets replaced - sch element gets embedded or unembedded
>
> In my practice after the initial few commits the latter group makes up majority of the changes.
Yes, that does stop an external VCS from helping merges. It's a harder problem than my first glance idea.
> a format that would: - store symbols+attributes blocks separately from coordinates - would be restructured and indented for
> easier manual read (my daily PITA is figuring which attribute blocks are corresponding to which component and which attribute
> survives of the multiple blocks of an embedded sym) - a new structure should actively help diff to show useful context; if
> there are like 10 attributes of a symbol and the value of the last one changes, in the diff the attribute value change is
> visible, but usually not enough context to identify which component's attribute has changed; increasing the number of context
> lines doesn't help since this would increase the nosie too - separate coordinate info and pin connection info on nets; e.g.
> instead of a list of coordinates, a net would be a list of connection between named component/pins and where needed
> (automatically named) non-component hub points
>
> Diff on such a format would reveal how the connections have changed (among with a set of random-looking coord changes at the
> bottom which the user then could simply ignore).
What if that format was created by an external lint program instead of being part of every design file?
> meaningful diffs in PCB world would mean a GUI diff tool
Yes, sounds right. And also it would be great to have a fuzzy visual diff that showed some circuitry
shoved a little to the side still matching. Highlighting of who the owner of the discrepancy is based on
a previous and a 2nd previous drawing might be helpful to keep collaborators from
accidentally changing something. In PCB a visual diff could be used just to enforce working in separate corners
of a drawing for easy merging. Suppose visual diffs were done every 3 minutes and a zone in between called
a no-person's-land was checked for changes and alarmed if any stepping on occurs.
John
- Raw text -