Only show revisions that are either the source of a copy, or the start or end of a set of changes to a path.  Graphs are a lot smaller than the previous revision.
Only show revisions that are either the source of a copy, or the
start or end of a set of changes to a path.  Graphs are a lot
smaller than the previous revision.

This revision also adds some colouring to copy edges (green) and
delete nodes (red).  Codelines are also weighted, so dot will put
them closer together.  Edges between codeline nodes are put in
bold.

* tools/client-side/svn-graph.pl
  (process_revision): store an additional hashtable which is the
    reverse of changed_paths so we can later find which change is
    the first one for a given path.
    Also, don't print out path changes while traversing history.
    We need to acumulate the complete list of copyfrom values before
    we can know which paths need to be displayed.
    Also, display a revision counter to STDERR
  (main): After parsing the log, print out linked changed paths, filtering
    out paths that are not the source of a copy, or the first or last
    change to that path.


git-svn-id: f8a4e5e023278da1e04e203c7fe051e3c4285d88@853050 13f79535-47bb-0310-9956-ffa450edef68

wbond/subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,wbond/subversion,wbond/subversion,wbond/subversion,YueLinHo/Subversion,wbond/subversion,wbond/subversion,YueLinHo/Subversion,YueLinHo/Subversion,wbond/subversion,YueLinHo/Subversion,YueLinHo/Subversion