This page last changed on Jan 24, 2008 by edawson.

Since tags and branches in Subversion are implemented via directory copies, they are not really first-class concepts. You can describe what your tag/branch structure looks like, and FishEye will display that information as it would for CVS. These settings can be edited on the 'Add Repository' or 'Edit Repository' pages in the FishEye Administration pages.

The symbolic setup tells FishEye how to classify each path it encounters in the repository. Each path is classified as either a trunk, branch, tag or root path. The root category is used when a path does not match any of the given trunk/branch/tag settings and is mostly treated in the same way as trunk paths.

The symbolic settings do not exclude any paths from consideration by FishEye. To exclude paths you should set up appropriate 'allow' rules. If your symbolic setup does not match a path, that path will be classified as a root path and processed by FishEye accordingly.

If you change these trunk/branch/tag settings, you will need to do a complete re-scan of the repository. You can do this from the Indexer option.

For more information on tag/branch layout, see Repository Layout in the Subversion documentation, or How Tags Work in Subversion if you are having trouble.

Common layouts

There are two common repository layouts that you can choose from in FishEye. These layouts are described in Repository Layout in the Subversion documentation.

The first is where there are top level trunk, branches and tags directories. This is called '/trunk/..., /branches/NAME/..., /tags/NAME/...' in FishEye.

The second is where the trunk, branches and tags directories are one level down, under each top-level project directory. This is called '/project/trunk/..., /project/branches/NAME/..., /project/tags/NAME/...' in FishEye.

Custom layouts

You can describe to FishEye any custom tag/branch structure you have. If you want to use one of the common layouts as a basis, first select it from the dropdown, then select 'Custom' to edit/add rules.

When looking at a file on a branch, or a file that was tagged, FishEye needs to determine a name for the branch/tag. FishEye does this by matching a regular expression against the file's path, and extracting the name based upon the match. FishEye also needs a name for files on the trunk. In effect, this is the name of the trunk 'branch'.

For any file that matches a trunk/branch/tag regular expression, a logical path is calculated. Two different files with the same logical path are considered to be related. For example, using the second type of common repository layout:

  • The file project1/trunk/dir1/foo.txt would have a logical path of project1/dir1/foo.txt.
  • The file project1/tags/BUILD123/dir1/foo.txt would have a logical path of project1/dir1/foo.txt and the name of the tag would be project1-BUILD123.
  • Both these files have the same logical path, and so are considered related. By looking at the revision where the directory-copy for project1/tags/BUILD123/dir1/foo.txt occurred, FishEye can determine to what revision the tag project1-BUILD123 applies.

You can add as many rules as you need. For any given file, the first rule that matches is used.

Rule Description
Regex The regular expression used to match against the start of the path. The trailing part of the path that does not match the regex is called the tail.
Name An expression used to extract a tag or branch name from the regex.
Logical Path Prefix This is an expression used to construct the logical path. The logical path is the concatenation of the result of this expression, and the tail of the regex.
Document generated by Confluence on Apr 14, 2008 23:36