Text file size limiting
This page describes how text file size limits are applied.
Fisheye maintains several indexes which are used to provide fast searching of files in the repository. One of these indexes is used for searching file content. For Subversion repositories only, Fisheye places a number of restrictions on this index to keep it manageable and to maintain its usefulness in searching.
- Fisheye only indexes text files
- Only the HEAD revision of any file is maintained in the index. New revisions of a file will replace older revisions in the index.
- Fisheye only indexes files which are below a size limit
- For most repository types, Fisheye only indexes the main branch (i.e. trunk in Subversion, MAIN in CVS, etc)
The limits applied to the content index do not affect the indexing of files in the other indexes maintained by Fisheye, notably the metadata index which indexes the file against the commit metadata (comment, author, date, etc). All other Fisheye operations are thus unaffected by the application of the content indexing limit.
The default file size limit is 100kB and, for Fisheye 2.6 and later versions, this limit was made configurable in the admin user interface. Changing this limit only affects indexing operations. Files which have already been indexed are not affected - i.e. they are not removed from the content index. Only files which are indexed after the change are affected by the changed limit. A re-index is necessary to apply the new limit to all files in the repository.
When a file is not indexed, Fisheye will log a warning message in the log file, such as this example from Fisheye 3.10:
/path/to/file.txt exceeds indexing size limit (300K, limit is 100K). The contents of this file won't be searchable in FishEye
Or the following for older versions:
Not indexing contents of HEAD of /path/to/file.txt because its size (6M) is too large (limit is 100K)
Large file viewing
For Fisheye 2.7 and later versions, the file size limit for Subversion repositories is also applied to the UI display of text files. Any files which exceed the file size limit have the following additional restrictions:
- The file content is not viewable in the Fisheye and Crucible user interfaces.
- The number of lines in the file are not counted towards the Lines of Code (LoC) totals
- Added and Removed text is not indexed and, consequently, is not searchable.
Such files are now marked internally as "too large" within Fisheye, and rendered similarly to binary files. A link is available to download the file content and in Crucible file-level review comments can be made.
As above, changing the file size limit does not affect files which have already been indexed. Such files will continue to be treated according to the setting in effect when the file was originally indexed. A re-index is necessary to apply a new limit to files which have already been indexed. This can mean that a large file appears to abruptly acquire the "too large" designation when a new revision is added after upgrading Fisheye, or after the file size limit has been changed.
The application of this limit allows Fisheye to avoid certain Subversion operations which are resource intensive (typically I/O, memory or time and often all three). Such large text files are typically not practical to view in Fisheye and review within Crucible in any case.
Choosing a value for the text file limit
Fisheye applied the original 100kB limit as a reasonable compromise for what would typically be the largest text files in a repository. Increasing this value will allow you to index and see the content for larger text files at the cost of increased resource usage.