ViewVC: Repository Browsing

The History of ViewVC

The ViewVC software was inspired by early versions of cvsweb (originally written by Bill Fenner, further developed by Henner Zeller, and now maintained as CVSweb by the FreeBSD community). Greg Stein wanted to make some changes and updates, but cvsweb was implemented in Perl. He wrote:

"While I can manage some Perl, cvsweb was rather unmaintainable for me. So I undertook the task to convert the software to Python. As a result, I've actually been able to go way beyond the simple changes that I had envisioned."

So ViewVC started out as just a port of the cvsweb script, originally called ViewCVS. Along the way, it has had numerous cleanups and other modifications, a process simplified by the elegance of the Python language.

In 2001, the ViewCVS project was moved to SourceForge, a popular software collaboration environment. There the project continued to mature, releasing several stable-yet-pre-1.0 versions. In 2002, C. Michael Pilato began implementing support for Subversion in ViewCVS, taking advantage of a version control abstraction layer begun by Lucas Bruand. Along the way, Russell Yanofsky delivered large improvements to that abstraction, and to ViewCVS as whole. ViewCVS was well on its way to releasing a 1.0 version.

Of course, now that ViewCVS could browse Subversion repositories as easily as CVS ones, the ViewCVS name seemed inappropriate. Also, the active ViewCVS developers at the time were growing frustrated with SourceForge as a project hosting environment — Subversion wasn't yet available as an option for version control, the CVS service was always down at just the wrong moment, the bug trackers were painful to use, and so on. So in late 2005, the decision was made to rename the project to ViewVC, to convert the project's CVS data to Subversion, and to move the project and its version controlled and open issue data to

In 2016, development of ViewVC was moved from to GitHub.

The ViewCVS Group

The ViewCVS Group is an informal group of people working on and developing the ViewVC package. Participation activity levels have varied wildly over the years, and we are grateful for every bit of code and knowledge ever donated toward this project, but here are some folks with notable contributions:

Greg Stein
original python port of Henner Zeller's cvsweb; secure popen implementation; configuration file implementation; rcsparse module; EZT template engine
Jay Painter
CVSdb query engine
Tanaka Akira
enscript colorization; tarball generation
Tim Cera
CvsGraph support; log_table template; regular expression search; pagination capability
Peter Funk
standalone server; original blimp logo; numerous improvements to ViewVC's interfaces and documentation
Lucas Bruand
C++ RCS parser (tparse); vclib module for supporting new version control systems
C. Michael Pilato
Subversion support; root_as_url alternative URL scheme; templatization work; website design; documentation
Russell Yanofsky
Windows support; sapi module for supporting multiple web server interfaces; sweeping abstraction and UI improvements
James Henstridge
integrated query interface; support for querying Subversion repositories; caching support; CSS formatting; EZT "define" directive
Futatsuki Yasuhito
Python 3 support