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:
    • Monitor commits on either a single file, a single branch, or the entire repository
    • Star an activity stream or a project to monitor it from your dashboard
    • ...or "Watch" the activity instead to get email updates
    • ...or just subscribe to an RSS feed
  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!
    • Examples of usage of the CLI plugin are here

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.
    • If you have a remote repository or a different username, you can also map that username to your Fisheye account tie in your commits
  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
    • Very easy.  Code is filterable by Branch and Tag.
    • You can link to anything and everything which allows easy sharing of code
    • If tarballs are enabled, you can download a Tarball of a directory
  2. Searching source code
    • You can search EVERYTHING
    • Or you can search individual repositories, files, or only files whose names match a regex
    • Of the files you search, you can choose to search only the commits, only the diffs, or the content of the file
      • For even more control, you can write your own SQL script to search the code and order the results
  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

  • Test installation is only usable at SLAC. The sandbox version is good to play around with if you're not at SLAC.
  • Right now, it's not integrated with Crowd or Jira, but you can create a user account using your slac ID for the time being. Of course if you create an account your should not use the same password as your other SLAC accounts.
  • FishEye also supports GIT, so if anyone at SLAC has a GIT (or mercurial) repository they don't mind others looking at it would be interesting to try setting up access to it via FishEye too.
  • No labels