About

pepper is a flexible command-line tool for retrieving statistics and generating reports from source code repositories. It ships with several graphical and textual reports, and is easily extendable using the Lua scripting language. pepper includes support for multiple version control systems, including Git and Subversion. Using native language bindings, multi-threading and a local revision cache, it provides fast access to repository data.

Please see the Gallery page for a quick look on output images generated by some of pepper's built-in graphical reports.

pepper is free and open-source software, released under the GNU General Public License. Feature suggestions, bug reports as well as report and code contributions are welcome!

Feature overview:

  • Many built-in reports, including lines of code, author contribution and other activity charts.
  • Custom report scripts can be written in Lua. A Gnuplot interface is provided for easy graphical output.
  • Support for multiple repository types. Currently, backends for Git, Subversion. and Mercurial are available.
  • Fast repository access by using native libraries if possible (i.e., the SVN backend uses the Subversion C API, and the Python C API is used by the Mercurial backend).
  • Fast local diffstat and meta-data cache using zlib compression.

News

Project news

I've just pushed the first version of a repository statistics server to GitHub. peprserv is actually a Lua report script for pepper, utilizing the Xavante HTTP web server. The main intention for this project is providing a backend for serving repository statistics to other web applications, like repository interfaces or bug trackers.

A live demo using the official Git repository is running at http://jgehring.net:9000, and the source code is available on GitHub.

Posted March 20, 2012, 16:16 CET

I'm happy to announce that version 0.3.1 of pepper is now available. This release brings the usual fixes as well as new features. Experimental support for using LevelDB as a backend for the revision cache has been added. The built-in Gnuplot interface received a function for pie charts, which is already used by the new authors_pie report and the new --pie flag for the filetypes report. Furthermore, there's a new report called volume which closely resembles the commit volume report from Ohloh.

The list of bugs that have been fixed in this release includes an issue that broke plotting on Mac OS X and some headless environments. Repository detection for working copies handled with Subversion 1.7 has been fixed, too.

A more detailed listing of the changes can be found in the change log, source tarballs are available at the Download section.

The Gallery has been updated with new examples, now using a pretty Gnuplot style based on this GuidoLabs article.

Posted March 16, 2012, 01:46 CET

Version 0.3 of pepper is now available. This release features an improved report API, a new report for running other reports from a graphical user interface and numerous bugfixes and smaller improvements.

The report API has received a big update. In particular, the ability to access and run other reports from within the current report has been improved. Among other things, this enables the creation of meta-reports that aggregate existing reports. These features are also heavily used by the new GUI report.

NOTE: This update breaks compatibility with existing scripts. However, the changes required to make old reports working have been kept small and are described in detail in the respective porting guide.

A more detailed listing of the changes can be found in the change log. As usual, source tarballs can be found at the Download section.

Posted December 21, 2011, 02:17 CET

I'm happy to announce that version 0.2.4 of pepper is now available. This is a bugfix release only, fixing a file name issue reported by Merve Yüzbaşıoğlu, that could cause errors when running the program against sub-directories of Subversion repositories. Additionally, some minor fixes have been made to the age report.

A more detailed listing of the changes can be found in the change log. As usual, source tarballs can be found at the Download section.

Posted August 06, 2011, 22:41 CEST

I'm happy to announce that version 0.2.3 of pepper is now available. This release adds the punchcard report, inspired by GitHub's punchcard and Git Timecard. Additionally, a major glitch preventing the Subversion backend to work on empty caches has been fixed (#3314428, thanks to Daniel Lynes for reporting!).

A more detailed listing of the changes can be found in the change log. As usual, source tarballs can be found at the Download section.

Posted June 22, 2011, 22:50 CEST

Latest commits