The Revision Graph window shows all entries (files/directories) within all revisions which are related to a specific repository entry (file/directory) at a specific revision. A Revision Graph is typically invoked by Query|Revision Graph from the Project Window, but there are various other ways/windows to invoke a Revision Graph in SmartSVN.
The central component of the Revision Graph window is the Revisions graph, which displays the complete graph for the selected entry. The graph consists of nodes, branches and links.
A node represents a specific entry (file/directory) at a specific revision in the repository. Every graph has a unique root node, which is displayed in the upper left corner of the graph. A node which is directly derived from another ancestor node, i.e. which has the same URL, but at a higher revision number, is displayed directly below its ancestor in the same branch. A node, which is derived from another ancestor node by copying, is displayed right below its ancestor in a separate branch. A node shows its revision number, author and date. It can also show inlined tags and branches in the lower part of the node's area. Tags and branches are copies of the revision graph entry which have happened in a specific revision, hence in general they would be represented by separate nodes on their own. They will be inlined however, if the revision graph entry itself has not been changed in the tag/branch copy revision and no further commits to the copied location have happened. To detect tags and branches, the Tag-Branch-Layout must be configured properly.
A branch is a collection of linked nodes (which are directly derived from each other), at the same URL. The head of the branch displays this URL, divided into trunk/tag/branch, path and name of the node. The division of the URL depends on the Tag-Branch-Layout and certain parts (like the name, or the path) may be omitted if they have not changed compared to the ancestor node.
You can navigate through the graph either with the mouse or with the keyboard (cursor keys) and select certain nodes by clicking with the mouse or using <Space>-keystroke.
The overall layout of the window is similar to the Log window. The Revision Info component displays detailed information for the currently selected revision. The lower Directories/Files area shows all files/directories for the currently selected revision which are located below the Log Scope (see Revision Graph); other entries of the revision are skipped.
Always exactly one of the four views is 'active' which is displayed by its highlighted title. Menu bar actions (as well as toolbar buttons) are always referring to the currently active view.
The Revision Graph can display information on which revisions have been merged from other revisions in various ways. Depending on the selected visualization method, it may be necessary to fetch SVN's mergeinfo for every displayed revision from the repository, what may take a while. SmartSVN will cache this mergeinfo for the current graph, so subsequent invocations of mergeinfo-related queries are performed much faster.
Use Query|Show Merge Arrows to display merge arrows pointing from merge source to merge target revisions. In case the merge source is a range of revisions, the corresponding revisions will be surrounded by a bracket.
Use Query|Show Merge Sources to display which revisions have been merged into the currently selected target revision(s). In this way every revision is classified into one of the following categories:
The classification is displayed by color-coding the revisions; the colors can be specified in the Revision Graph settings.
Use Query|Show Merge Targets to display to which revisions the currently selected target revision(s) have been merged. In this way every revision is classified into one of the following categories:
The classification is displayed by color-coding the revisions; the colors can be specified in the Revision Graph settings.
Use Edit|Search to search for certain revisions. Enter the Search For term and select in which parts of the displayed information to Search In. With Branch Name selected, the search will included the assigned branch of the revision; this may either be the containing branch or an assigned tag displayed inlined for the revision. Revision Number, Author and Commit Message will include the corresponding revision properties.
The search results will be displayed in the revision table. You may select a certain revision and jump to it in the graph by clicking Select. Alternatively, you may keep the dialog open in foreground and automatically jump to the selected revision by having Directly select revision in graph selected.
Use View|Branch Filter to filter the display for certain branches. Select Show all branches to reset the filter and show all branches. Select Filter branches matching following regular expression and enter the Regular Expression filter criterion to restrict the display to the corresponding branches. The last entered Regular Expression pattern will be stored in SmartSVN's project settings.
Note |
For details on the supported regular expression constructs refer to http://java.sun.com/j2se/1.5.0/docs/api/java/util/regex/Pattern.html. In addition to the regular expression syntax you may prefix the whole expression by ! to negate the expression, i.e. to hide instead of show the matching branches and vice versa. |
The tables in the bottom of the dialog will give a preview of the filter results, denoting the Shown Branches and Hidden Branches. Click OK to apply the branch filter to the graph.
Refer to Edit menu for more details.
Tip |
You can also use Ctrl-key in combination with the mouse-wheel to zoom in/out the graph. |
Refer to Modify menu for details.
Use Clear Merge Information to clear the currently displayed merge information (and the cached revision mergeinfo).
Refer to Query menu for details.
Refer to Window for more details.