The Technology Cooler Technology articles and news by Dawn Ahukanna and Anni Poulsen

26Oct/060

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.

Startup

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

Login

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

Admin

You can also edit the config.xml file directly but you will need to restart the Fisheye application.

Fisheye config.xml without source repositories

Code:
<?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

Code:
<?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.

Config

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.

Browse

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:

Comments (0) Trackbacks (0)

No comments yet.


Leave a comment


No trackbacks yet.

Pages

Categories

Blogroll

Archive

Meta