What is Fisheye?

Fisheye is a web based tool for viewing, browsing, searching and monitoring changes in source code.  It works across multiple repository systems, including GIT, Subversion, CVS, Mercurial, and Perforce.  We are looking into it as a replacement for ViewVC and Sventon, and as a source code viewer for a GIT repository if we implement one at SLAC.

Useful Features

  1. Users can easily browse and search source code
  2. The ability to have People/accounts allows for customizable views and features not available in other similar tools
  3. Permissions can be set on individual repositories, integrating with Atlassian's Crowd for group level permissions.
  4. Analytics on code, such as commits, and Lines of Code committed
  5. The ability to monitor code in several ways:
  6. Crowd and Jira integration
  7. Code review is optional using Crucible.  We aren't sure if we want this/will use this.
  8. Plugins, such as a command line interface to fisheye!

People

  1. Again, Crowd integration adds Single-Sign on capability, so you don't need another account for this
  2. Fisheye will automatically map your commits according to your SLAC username and tell you about them all.
  3. Having a user provides these benefits over systems like Sventon and ViewVC:
    1. Customizable Activity Streams on your Dashboard
      1. Your projects that are Favorited/Subscribed to will show up with an activity stream on your Dashboard
      2. Projects that you watch will send out emails when something in them has been changed, either instantly or a daily email depending on your preferences
      3. You can also follow/Subscribe to people to see what they have been working on
    2. Code Review notifications if we decide to continue on with Crucible
    3. Permissions over viewable projects

Source Code

  1. Browsing Code
  2. Searching source code
  3. Again, you can watch code and receive emails immediately when someone changes something, or just once a day for busy repositories/files
  4. Jira integration lets you see changes in the code and how they relate to bugs
  5. Commit Graphs allow you to see how the code in other branches or tags relates to code in the trunk and lineage for files
  6. Charts and visualization gives you an idea of how much a project has changed over a given amount of time

Try it out