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 Tigris.org.
In 2016, development of ViewVC was moved from Tigris.org 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