Include Exclude paths

By default, Fisheye will cache and index your whole repository, and present all of this information to users. You can allow Fisheye to process certain parts of your repository and/or disallow it from accessing other parts, by configuring inclusion/exclusion patterns for Fisheye to follow. These patterns are set in the 'Include/Exclude Paths' repository option.

On this page:

Configuring Include/Exclude paths

You can configure the include/exclude paths option for a specific repository or configure linkers for all repositories.

Configuring Include/Exclude for a specific repository

To configure the include/exclude paths option for a repository:

  1. Click the 'cog' menu in the Fisheye header, and choose Administration (you'll need to be logged in as an administrator to see this link).
  2. Click the Repositories link. The list of repositories set up in your Fisheye instance will be displayed.
  3. Click the name of the repository, (under the Name column in the list of repositories). The Repository Options for the repository will be displayed in a dialog.
  4. Click the Include/Exclude Paths tab. The 'Include/Exclude Paths' screen will be displayed (see screenshot below).
  5. Configure the includes/excludes for the repository as desired:
    • Click the Add... link to add a new include/exclude pattern. See the Adding an Include and Adding an Exclude sections below for further instructions.
    • Click the cog icon () next to a linker and click Edit from the dropdown menu to edit an include/exclude pattern. The editable 'Linker' dialog is identical to the 'Add a Link' dialog. See the Adding an Include and Adding an Exclude sections below for further instructions.
    • Click the cog icon () next to a linker and click Delete from the dropdown menu to delete the include/exclude pattern.
  6. Save your changes.

Configure Include/Exclude for all repositories

To configure the allow (process) for all repositories:

  1. Click the 'cog' menu in the Fisheye header, and choose Administration (you'll need to be logged in as an administrator to see this link).
  2. Click Defaults. The 'Repository Defaults' will be displayed.
  3. Click the Include/Exclude Paths tab. The 'Include/Exclude Paths' screen will be displayed (see screenshot below).
  4. Configure the includes/excludes for all repositories as desired:
    • Click Add... to add a new include/exclude pattern. See the Adding an Include and Adding an Exclude sections below for further instructions.
    • Click the cog icon () next to a linker and click Edit from the dropdown menu to edit an include/exclude pattern. The editable 'Linker' dialog is identical to the 'Add a Link' dialog. See the Adding an Include and Adding an Exclude sections below for further instructions.
    • Click the cog icon () next to a linker and click Delete from the dropdown menu to delete the include/exclude pattern.
  5. Save your changes.

Screenshot: Configuring Include/Exclude Paths for all repositories

Adding an Include

The 'Includes' subsection of the 'Include/Exclude Paths' screen defines what subtrees of your repository Fisheye will index. Fisheye defaults to including 'everything'. If you specify some 'include' directories, then Fisheye will process only those directories (and all their subdirectories). For instance, you might want to do this to limit Fisheye to the subset of active projects in your repository. Each include specifies the path to a subtree to be processed. Paths are expressed relative to the repository root configured in the repository configuration.

Include paths do not support Antglobs, or wildcards of any type. They are also defined relative to where Fisheye connects to your repository. To match the 'tags' subtree, simply use /tags. Please note that Excludes can still make use of Antglobs.

To add a new include:

  1. Navigate to the "Include/Exclude Paths" for a specific repository or the repository defaults, as described above, and click Add... to add a new include. The 'Add an Include' dialog will be displayed.
  2. Complete the fields on the dialog as follows:
    • Path Prefix — Enter the tree of your repository that you want to include. See the example below.
    • Case Sensitive — Tick this checkbox if you want your include to be case-sensitive. By default, Includes are case-sensitive but they can be configured to be case-insensitive. If your repository is set to be case-insensitive (Perforce) then Includes will also be case-insensitive, regardless of how the individual Includes are configured.


Example:

  • Including directories:

    PROJECT1
    

    The code above includes /PROJECT1 and all its children (sub-directories and their contents). You could specify /PROJECT1/ and /PROJECT2/ to include both of these directories in Fisheye's indexing.

  • Including directories with spaces:

    PROJECT ONE

    Directories with spaces can be included with a literal space character.

Adding an Exclude

The 'Excludes' subsection of the 'Include/Exclude Paths' screen allows you to specifically exclude files and directories from those which have been included in indexing. Fisheye will not process these files and directories. Each exclude is an Antglob Pattern.

To add a new exclude:

  1. Navigate to the "Include/Exclude Paths" for a specific repository or the repository defaults, as described above, and click Add... to add a new exclude. The 'Add an Exclude' dialog will be displayed.
  2. Complete the fields on the dialog as follows:
    • Pattern — Enter the pattern for directories/files that you want to exclude. See the examples below.
    • Case Sensitive — Tick this checkbox if you want your exclude to be case-sensitive. By default, Excludes are case-sensitive but they can be configured to be case-insensitive. If your repository is set to be case-insensitive (Perforce) then Excludes will also be case-insensitive, regardless of how the individual Excludes are configured.


Examples:

  • Excluding directories:

    /PROJECT2/
    

    The code above excludes/PROJECT2 and all its children (sub-directories and their contents).

    /PROJECT2014*
    

    The code above excludes/PROJECT2014 and all its children (sub-directories and their contents), besides other directories containing /PROJECT2014 in their names, e.g. /PROJECT201401, /PROJECT20140205, and so on, having the * working as a wildcard character. It is also possible to use ?, e.g. /PROJECT2014? to exclude paths as /PROJECT20141, /PROJECT20142, with ? replacing one character, with the possibility to have another quantity of ? set, e.g. /PROJECT2014?? to exclude paths as /PROJECT201401, /PROJECT201402, and so on.

  • Excluding directories with spaces:

    /PROJECET?ONE/

    The code above excludes /PROJECT ONE and all its children. The ? wildcard will match any one character, including a space.

  • Excluding file types:

    **/*.OBJ
    

    The code above excludes any OBJ (object) files.

    Changes to Includes and Excludes do not take effect until the repository is restarted. If you do not re-index when changing the includes and excluded, files and directories which have been indexed prior to the update will remain visible in Fisheye.

Notes

Include/Exclude Processing

When processing includes and excludes, Fisheye merges the includes and excludes from the repository itself with those from the repository defaults. The repository's specific includes and excludes take priority over those of the repository defaults. Once merged, Fisheye processes include definitions first and then excludes. If there are any includes defined a path must match at least one of those includes to be considered. If there are no include patterns defined, all paths are considered to be included. Once includes have been processed, a path which is a candidate for processing is tested against any defined excludes. If the path matches any of the exclude patterns, the path is excluded and not included in Fisheye.

About Setting the Repository Root

When you are setting the Allow (Process), you should be aware that the options on this page only act on the parts of the repository that lie under the level of the repository root, which you configure as a directory location in your repository. In other words, Fisheye can only access directories "lower" than the repository root. For example, consider a repository with the following structure:

/CORE/2007/LEGACY/
/CORE/2008/PROJECT1/
/CORE/2008/PROJECT2/

In this case, you could set the repository root (or 'Path') to be /CORE/2008/. In that situation, you would be able to include or exclude the /PROJECT1/ and /PROJECT2/ directories, but the /CORE/2007/LEGACY/ directory would not be available. To have Fisheye index all of the directories in this repository, you would need to set the repository root path to be /CORE/. Then, you could use the includes and excludes to add and remove directories under /CORE/ from Fisheye's scan. For more information, see the Subversion configuration page and read the 'Path' options.

Last modified on Oct 25, 2018

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.