Fisheye exposes source code repository gems
Need to find out what's rolling around in your source code repository? I am assuming that you wouldn't be reading this if you don't know what a source code repository is or maybe you are just interested. But it is still only source code, lines and lines of it. You have to know what code has been submitted and where it has been stored to find it.
I've used a number of applications that allow you to browse a source code repository usually in conjunction with a webserver e.g. Trac. Then I came across Fisheye by Cenqua. Talk about breath of fresh air! Here's a product that meets a real need and is not just a vehicle for VC funding.
See Ref0
To quote Cenqua:
"Fisheye delivers a unified web-based view of your source repository that provides easy navigation, powerful search, historical reporting, configurable file annotation and diff views, change-set analysis, email notifications, RSS and email feeds, and integration with your issue tracker."
Download Fisheye
Download a copy of Fisheye 1.2.1 from the Cenqua site. You will need to register to get an evaluation 30 day licence. This does not limit any functionality in Fisheye. If you have an open source project, you can apply for an open source licence.
See Ref1 to download Fisheye.
I installed Fisheye 1.2.1 on a Windows server, using JDK 1.5 and Subversion 1.2.0 with JavaHL 1.3.1 bindings.
See Ref4 for Fisheye quick start guide.
Install and Configure Fisheye
Step 0: Assumptions
Assuming you have a valid JDK installed ( I use JDK 1.5), Subversion client software (I use the Windows CLI client 1.2.0) and the Subversion client software is available on the path e.g. set SVN_HOME=c:\apps\svm, set PATH=%SVN_HOME%\bin;%PATH%.
Step 1: Install
Unzip the Fisheye package to a preferred directory location e.g. c:/apps/fisheye.
Step 2: Configure for Subversion Native Client
Download the Subversion JavaHL bindings for your version of Subversion. As I am using Subversion 1.2.0, I grabbed the JavaHL bindings 1.3.1.
See Ref2
Unzip the JavaHL bindings to a location that can be accessed by the Fisheye application e.g. c:/lib/svnjavahl. Also create the environment variable FISHEYE_LIBRARY_PATH e.g. set FISHEYE_LIBRARY_PATH=c:/lib/svnjavahl.
See Ref3
Step 3: Start Application
Go to the Fisheye bin directory e.g. c:/apps/fisheye/bin and execute the "run.bat" file.
Step 4: Go for it!
Open your browser at http://localhost:8080 and the Fisheye application splash screen should display.

Select the "Admin interface" link and you will be asked to set the admin password

The admin user interface can be used to configure Fisheye with your source code repositories.

You can also edit the config.xml file directly but you will need to restart the Fisheye application.
Fisheye config.xml without source repositories
<?xml version="1.0" encoding="UTF-8"?>
<config control-bind="127.0.0.1:8079" version="1.0" admin-hash="...">
<!-- see example-config.xml and config.xsd for more documentation -->
<svn-config jar="c:\lib\svnjavahl\svnjavahl.jar" jnilib="c:\lib\svnjavahl\libsvnjavahl-1.dll"/>
<web-server>
<http bind=":8080"/>
</web-server>
<api enabled="false"/>
<security allow-anon="true"/>
<repository-defaults>
<linker/>
<allow/>
<tarball enabled="false" maxFileCount="0"/>
<security allow-anon="true"/>
<text-indexer enabled="true"/>
<watches enabled="true"/>
</repository-defaults>
</config>
Fisheye config.xml with source repositories
<?xml version="1.0" encoding="UTF-8"?>
<config control-bind="127.0.0.1:8079" version="1.0" admin-hash="...">
<!-- see example-config.xml and config.xsd for more documentation -->
<svn-config jar="c:\lib\svnjavahl\svnjavahl.jar" jnilib="c:\lib\svnjavahl\libsvnjavahl-1.dll"/> <web-server>
<http bind=":8080"/>
</web-server>
<api enabled="false"/>
<security allow-anon="true"/>
<repository-defaults>
<linker/>
<allow/>
<tarball enabled="false" maxFileCount="0"/>
<security allow-anon="true"/>
<text-indexer enabled="true"/>
<watches enabled="true"/>
</repository-defaults>
<repository name="Local" description="" enabled="true">
<svn path="" url="file:///c:/scm/svn/work">
<symbolic>
<trunk logical="${1}" name="trunk" regex="([^/]+)/trunk(/|$)"/>
<branch name="${1}-${2}" regex="([^/]+)/branches/([^/]+)" logical="${1}"/>
<tag logical="${1}" regex="([^/]+)/tags/([^/]+)" name="${1}-${2}"/>
</symbolic>
</svn>
<security/>
</repository>
<repository name="LocalV" description="" enabled="true">
<svn path="" url="file:///c:/scm/svn/personal">
<symbolic>
<trunk logical="${1}" name="trunk" regex="([^/]+)/trunk(/|$)"/>
<branch name="${1}-${2}" regex="([^/]+)/branches/([^/]+)" logical="${1}"/>
<tag logical="${1}" regex="([^/]+)/tags/([^/]+)" name="${1}-${2}"/>
</symbolic>
</svn>
<security/>
</repository>
</config>
Use Fisheye
Step 1: Repository list
Once you have completed the configuration of your source code repositories, select the "Home" on the menu bar or "Fisheye" from the breadcrumb to display a list of your configured repositories.

Step 2: Go Fishing
To get you started, select the "browse" of a repository and a page displaying line history information, recent changelog information, project information, files and a search filter appears.

Now we're talking !
There is much more that Fisheye can do such as generate RSS feeds, download tarballs of selected code, send change notification, etc. See the following references for further detailed functional information, forums and support.
See Ref5a , Ref5b and Ref5c for full Fisheye details and documentation.
References
Ref0:Trac
Ref1:Fisheye
Ref2:Subversion JavaJL Bindings
Ref3:Subversion Native Client setup
Ref4:Fisheye quick start guide
Ref5a:Fisheye FAQ
Ref5b:Fisheye Forum
Ref5c:Fisheye documentation
Technorati Tags:Fisheye SourceCode Repository