Hi Offray,

The problem is rather easy to solve. Consider this script:

-=-=-=-=-=-=-=-=-=-=-=-=
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.
view layout tree.
view.
-=-=-=-=-=-=-=-=-=-=-=-=

Apparently, each fossil commit has a parent. The parent could be nil (which is 
okay).
Why do you call the variable “parents” and not “parent” ?

Cheers,
Alexandre

> On Jun 19, 2015, at 9:41 AM, Offray Vladimir Luna Cárdenas 
> <off...@riseup.net> wrote:
> 
> 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:
> 
> <jcjdcjje..png>
> ^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.
> 
> <cfbfiagc..png>
> ^ 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 
>>> <off...@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 
>>>>> <off...@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
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
> 

-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.




Reply via email to