ViewVC
Encyclopedia
ViewVC is an open source
tool for viewing the contents of CVS
and SVN repositories using a web browser
. It allows you to look at specific revisions of files as well as side by side diff
s of different revisions. It is written in Python
and the view parameters can be modified directly in a URL using a REST
style interface.
. The original ViewCVS was a python port of this application, with the intention to add enhancements to the existing functionality.
In 2001 the project was moved to SourceForge
, the world's largest software development website. It is currently part of the SourceForge infrastructure by virtue of that fact that it is the repository browser used by the site.
One of the enhancements made was the ability to browse Subversion repositories. The eventual maturity of this support meant that the name "ViewCVS" was no longer appropriate. This, combined with SourceForge's lack of support for Subversion at the time, led to the project being renamed "ViewVC" and moving to tigris.org
. This name change and migration occurred in late 2005.
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
tool for viewing the contents of CVS
Concurrent Versions System
The Concurrent Versions System , also known as the Concurrent Versioning System, is a client-server free software revision control system in the field of software development. Version control system software keeps track of all work and all changes in a set of files, and allows several developers ...
and SVN repositories using a web browser
Web browser
A web browser is a software application for retrieving, presenting, and traversing information resources on the World Wide Web. An information resource is identified by a Uniform Resource Identifier and may be a web page, image, video, or other piece of content...
. It allows you to look at specific revisions of files as well as side by side diff
Diff
In computing, diff is a file comparison utility that outputs the differences between two files. It is typically used to show the changes between one version of a file and a former version of the same file. Diff displays the changes made per line for text files. Modern implementations also...
s of different revisions. It is written in Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...
and the view parameters can be modified directly in a URL using a REST
Representational State Transfer
Representational state transfer is a style of software architecture for distributed hypermedia systems such as the World Wide Web. The term representational state transfer was introduced and defined in 2000 by Roy Fielding in his doctoral dissertation...
style interface.
History
ViewVC was inspired by the CVSweb application, an older web-based CVS repository viewer written in PerlPerl
Perl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular...
. The original ViewCVS was a python port of this application, with the intention to add enhancements to the existing functionality.
In 2001 the project was moved to SourceForge
SourceForge
SourceForge Enterprise Edition is a collaborative revision control and software development management system. It provides a front-end to a range of software development lifecycle services and integrates with a number of free software / open source software applications .While originally itself...
, the world's largest software development website. It is currently part of the SourceForge infrastructure by virtue of that fact that it is the repository browser used by the site.
One of the enhancements made was the ability to browse Subversion repositories. The eventual maturity of this support meant that the name "ViewCVS" was no longer appropriate. This, combined with SourceForge's lack of support for Subversion at the time, led to the project being renamed "ViewVC" and moving to tigris.org
Tigris.org
Tigris.org is an open source software development community. It hosts software development services such as web hosting, mailing lists, issue tracking, wiki, download, and revision control with Subversion or Concurrent Versions System . It is hosted by CollabNet, the initiators and stewards of...
. This name change and migration occurred in late 2005.
Developers
Some of the people involved with the development of ViewVC are:- Greg SteinGreg SteinGreg Stein , living in Fairfax, VA, USA, is a programmer, speaker, sometime standards architect, and open-source software advocate, appearing frequently at conferences and in interviews on the topic of open-source software development and use.He is a director of the Apache Software Foundation, and...
- Jay Painter
- Tanaka Akira
- Tim Cera
- Peter Funk
- Lucas Bruand
- C. Michael Pilato
- Russell Yanofsky
- James Henstridge
Components
ViewVC consists of two main components. The first part is the repository browser. The second part is the commit database.Complementary software
- cvsgraph - allows graphical display of the branches and tags associated with a file in the repository.
- GNUGNUGNU is a Unix-like computer operating system developed by the GNU project, ultimately aiming to be a "complete Unix-compatible software system"...
enscriptEnscriptGNU enscript is a computer program that converts text files to PostScript, RTF, or HTML formats. If no input files are given, enscript processes standard input...
- allows syntax highlightingSyntax highlightingSyntax highlighting is a feature of some text editors that display text—especially source code—in different colors and fonts according to the category of terms. This feature eases writing in a structured language such as a programming language or a markup language as both structures and...
of ViewVC output. - MySQLMySQLMySQL officially, but also commonly "My Sequel") is a relational database management system that runs as a server providing multi-user access to a number of databases. It is named after developer Michael Widenius' daughter, My...
- for the commit database. - Pygments - Needed for syntax highlighting in versioned file contents displays.
See also
- CvsWeb
- Chora
- Concurrent Versions SystemConcurrent Versions SystemThe Concurrent Versions System , also known as the Concurrent Versioning System, is a client-server free software revision control system in the field of software development. Version control system software keeps track of all work and all changes in a set of files, and allows several developers ...
- OpenGrokOpenGrokOpenGrok is a source code search and cross reference engine. It helps you search, cross-reference and navigate your source tree. It can understand various program file formats and version control histories like Monotone, SCCS, RCS, CVS, Subversion, Mercurial, Git and Bazaar...
- Subversion
External links
- ViewVC website
- ViewVC project page
- ViewVC view of the ViewVC repository
- CVSGrab - Reads a CVS repository via the ViewCVS web interface. (Useful for getting through a corporate firewall, where access to the pserver is not possible.)
- SVN::Web A Perl based software that provides functionality similar to ViewVC.