Code

Changes between Version 5 and Version 6 of VisualizingDjangoChangesetDependencies


Ignore:
Timestamp:
05/11/07 09:42:23 (7 years ago)
Author:
Ramiro Morales
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • VisualizingDjangoChangesetDependencies

    v5 v6  
    77Later the cause became evident: The ''C'' changeset wasn't being considered by {{{darcs}}} because I had previously answered "no" when it offered me to apply a (chronologically previous) changeset ''B'' on which ''C'' depends (dependency in this context means both ''B'' and ''C'' modify some overlaping section of some file). 
    88 
    9 Given the fact that in {{{darcs}}} patches (changesets, patchsets) are first class citizens, it is relatively easy (when compared with other revision control systems) to track and visualize the dependencies among them by using it together with some related '''![3]'''tools and '''![4]'''{{{GraphViz}}}. 
     9Given the fact that in {{{darcs}}} patches (changesets, patchsets) are first class citizens, it is relatively easy (when compared with other revision control systems) to track and visualize the dependencies among them by using it together with some related '''![3]'''tools and '''![4]'''{{{Graphviz}}}. 
    1010 
    1111If we add a couple of ad-hoc scripts and some tips from the experience gained to the mix we can get something like this (partial output): 
     
    9494Finally, we feed the result to {{{dot(1)}}} (also part of {{{Graphviz}}}) to get our final output. For some output methods (PDF [via Postscript], server/client side image maps) we'll be able to click on the nodes and get our Web browser to go to the Django Trac page associated with the changeset at hand. 
    9595 
    96 For the PDF output we use {{{poster(1)}}} on the intermediate Postcript output to create a legible non-cropped multi-page output. 
     96For the PDF output we use {{{poster(1)}}} on the intermediate Postscript output to create a legible non-cropped multi-page output. 
    9797 
    9898== Files == 
     
    115115 
    116116 * The "Tailorization" node represents an initial synthetic patch created by {{{darcs}}} from which every other leaf node depends on, perhaps it would be better to find a way to eliminate it from the graph. 
    117  * I attempted without success modifying the {{{darcs-deps}}} script to eliminate the nodes that have no other nodes depending on them, next try will be using {{{Graphviz}}}'s {{{gvpr(1)}}}. 
     117 * I attempted without success modifying the {{{darcs-deps}}} script to eliminate the nodes that have no other nodes depending on them, next try will be using {{{Graphviz}}}'s {{{gvpr(1)}}} tool. 
     118 * The PDF output for this iteration has some problems, something that didn't happen before; it seems there is some non-deterministic interaction between {{{poster}}} and the {{{dot}}} PS output we feed to it. It would be nice to be able to create multi-page output  directly from {{{dot}}}, ideas welcome. 
    118119 
    119120== References ==