Alexandre,

Could you please run this:

~~~~~~~~~
"Adapted from: https://vimeo.com/116886609"
| view timeline |

"Loading package for working with fossil"
"Integration with external tools"
Gofer new
������ smalltalkhubUser: 'Offray' project: 'Grafoscopio';
������ package: 'Grafoscopio-ExternalTools';
������ load.

"Extracting data"
timeline := FossilTimeline new.
timeline importFromUrl:�� 'http://mutabit.com/deltas/repos.fossil/piamed/libro/doc/tip/Libro/timeline-buscador.json'.

"Visualization"
view := RTMondrian new.
view nodes: timeline commits.
view edges
������ connectFrom: [#parents first].
view layout tree.
view.
"(timeline commits at: 1) parents first"
~~~~~~~~~

At the end you will get a set of squares visualized like this ones:


^Up Graphic 1: Trying to understand edges.

These squares are representations of FossilCommits objects imported from a Json file, and the "connectFrom: [#parents first]" is the line I'm having problems with. "#parents first" is the message I send to each node to know its parents in that very collection of commits, so I imagined that if I put that as the block argument for "connectFrom" I would get a nice tree, similar to the graphic 2 below. I don't get what's happening here or what I'm missing.


^ Up Graphic 2: A nicely drawn mondrian tree layout for RTLayout.

Any help on how to get tree like visualizations for this Fossil objects would be greatly appreciated.

Thanks,

Offray

Ps: Something was happening with ws.stfx.eu this morning at 7:00 (GMT -5) and trying to publish a workspace gives a 500 error.


On 16/06/15 16:08, Alexandre Bergel wrote:
I am not really following. Hard to guess here.

Can you make the image accessible for me? I can then have a closer look at it.

Alexandre


On Jun 15, 2015, at 3:18 PM, Offray Vladimir Luna C��rdenas <offray@riseup.net> wrote:

Hi all. Is me again :),

I have being fighting all this morning trying to bet a better understanding of edge connections and tree layouts. I'm making some progress, but still I don't grasp it. At [1] you can find my starting example. So far, so good, so I created my own variation for my own data at [2]. My main issue is the #connectFrom message argument. If you uncomment the last line of [1] you will see that sending the #superclass message gives me an object that is of the same kind that the ones have been added to the view previously and I imagine that the reason they can be connected in a tree. With the example at [2] the message [#parents first] gives me a fossil commit object, but if I ran the code, the nodes are unconnected. What I'm missing?

[1] http://ws.stfx.eu/DK3VNXBVAHXF
[2] http://ws.stfx.eu/DHF4VIR8TSPC

Thanks,

Offray

On 15/06/15 06:47, Offray Vladimir Luna C��rdenas wrote:
Hi Peter,

Thanks for your quick answer. I was pretty curious about trying to implement some of this ideas, but only until today I had the proper time to do it. I ran your code and now I'm trying to translate the ideas on it to my problem: Drawing a tree for the story of a fossil repository. 

First, using the procedure at [1] I was able to export a fossil commit repo history as Json and by running the script at [2] I was able to get a small set of dots, which represent dictionaries with all commit data, including ancestors for each node, like the attached screenshot shows. In the video at [3] at 1:06 min, seems that lays the key for my visualization, but for that I need to create a fossil commit object that can understand the #ancestor message. Because I already have them as dictionaries thanks to NeoJson, seems that I'm really close to get the visualization I'm looking for. I hope to work on it this morning and return to the list with data visualizations or more questions.


[1] http://stackoverflow.com/questions/30577090/how-to-export-fossil-scm-timeline-to-another-format/30584926#30584926
[2] http://ws.stfx.eu/A5C8JJMA2HUK
[3] https://vimeo.com/116886609

Cheers,

Offray



On 02/06/15 05:09, Peter Uhn��k wrote:
HI Offray,

I gave it a quick bash and come up with the following code. It's just a prototype and could be greatly simplified.

- MCVersionInfo ancestors for whatever reason returned empty array down the line (so its cut off at the end), but I didn't investigate the problem
- edge building and possibly ancestor retrieval could be simplified with builders; I think RTMondrian has methods for it but can't remember exactly (agilevisualization mentioned RTGraphBuilder but that has been removed to my knowledge)

~~~~~~~~~~~~~~~
mc := MCSmalltalkhubRepository allInstances detect: [ :m | m project = 'Roassal2' ].

root := mc versionInfoFromFileNamed: mc readableFileNames first.

family := Set new.
retriever := nil.
retriever := [ :child |
 family add: child.
 child ancestors do: [ :a | retriever value: a ]
].
retriever value: root.
obs := family asGroup.

v := RTView new.
es := RTEllipse new size: 15; color: Color blue; elementsOn: obs.
v addAll: es.

edges := RTEdge
 buildEdgesFromObjects: obs
 from: #yourself
 toAll: #ancestors
 using: (RTArrowedLine new withShorterDistanceAttachPoint; color: Color red)
 scope: es.
v addAll: edges.

es @ RTDraggable.
es @ (RTLabelled new text: [ :m | m nameWithout: 'Roassal2' ]).

v @ RTDraggableView.
v @ RTZoomableView.

RTDominanceTreeLayout new
 verticalGap: 30;
 horizontalGap: 15;
 on: es.

v open
~~~~~~~~~~~~~~~~


<Mail Attachment.png>

Cheers,
Peter
���

On Tue, Jun 2, 2015 at 5:39 AM, Offray Vladimir Luna C��rdenas <offray@riseup.net> wrote:
Hi,

On a closer detail, seems that [1] contains the starting point I'm looking for. I'll keep you posted and of course any other approach will be listened.

[1] https://dl.dropboxusercontent.com/u/31543901/AgileVisualization/Roassal/0104-Roassal.html

Cheers,

Offray


On 01/06/15 22:04, Offray Vladimir Luna C��rdenas wrote:
Hi all,

I had asked a similar question before with no much advances, but today I made a discovery that can improve the things a lot: how to export timeline data as structured JSON [1] (and of course this open the possibility to work with it on Pharo). Now I would like to graph the data as a tree with forks, merges and dates and authors of commits. I have seen chronia, but seems overkill for this feature (and is integrated with CVS only).

[1] http://stackoverflow.com/questions/30577090/how-to-export-fossil-scm-timeline-to-another-format/30580043#30580043

As usual, any pointer on how to get this going will be greatly appreciated and I will give feedback to the community on how to do it.

Cheers,

Offray