Gource(1)

NAME
Gource - a software version control visualization

SYNOPSIS
gource <options> <path>

DESCRIPTION
gource is an OpenGL-based 3D visualisation tool for source control repositories. The repository is displayed as a tree where the root of the repository is the centre, directories are branches and files are leaves. Contributors to the source code appear and disappear as they contribute to specific files and directories.

REQUIREMENTS
gource requires a OpenGL capable video card to run.

OPTIONS

-f  Fullscreen

-WIDTHxHEIGHT
    Set the window size. If -f is also supplied, will attempt to set the video mode to this also.

-p, --start-position POSITION
    Begin at some position in the log (between 0.0 and 1.0).

--stop-position  POSITION
    Stop at some position.

--stop-on-idle
    Stop on break in activity. May be combined with --stop-position.

-a, --auto-skip-seconds SECONDS
    Automatically skip to next entry if nothing happens for a specified number of seconds.

-s, --seconds-per-day SECONDS
    Speed of simulation in seconds per day.

--realtime
    Realtime playback speed.

-i, --file-idle-time SECONDS
    Time in seconds files remain idle before they are removed.

-e, --elasticity FLOAT
    Elasticity of nodes.

-b, --background FFFFFF
    Background colour in hex.

--loop
    Loop back to the start of the log when the end is reached.

--date-format FORMAT
    Specify display date string (strftime format).

--log-format FORMAT
    Specify format of the log being read (git,cvs,custom). Required when reading STDIN.

--git-branch
    Get the git log of a branch other than the current one.

--git-log-command
    Print the git-log command used by gource.

--cvs-exp-command
    Print the cvs-exp.pl log command used by gource.

--follow-user USER
    Have the camera automatically follow a particular user.

--highlight-user USER
    Highlight the names of a particular user.

--highlight-all-users
    Highlight the names of all users.

--file-filter REGEX
    Filter out any files matching a specified regular expression.

--user-image-dir DIRECTORY
    Directory containing .jpg or .png images of users (eg 'Full Name.png') to use as avatars.

--default-user-image IMAGE
    Path of .jpg to use as the default user image.

--colour-images
    Colourize user images.

--crop AXIS
    Crop view on an axis (vertical,horizontal).

--multi-sampling
    Enable multi-sampling.

--disable-progress
    Disable progress bar.

--max-files
    Set the maximum number of files. Excess files will be discarded.

--max-file-lag SECONDS
    Max time files of a commit can take to appear.

--max-user-speed UNITS
    Max speed users can travel per second.

--user-friction SECONDS
    Time users come to a complete hault.

--user-scale SCALE
    Change scale of users.

--hide-users
    Hide users.

--hide-usernames
    Hide usernames.

--hide-filenames
    Hide filenames.

--hide-dirnames
    Hide directory names.

--hide-date
    Hide the date.

--output-ppm-stream FILE
    Write frames as PPM to a file ('-' for STDOUT).

--output-framerate FPS
    Framerate of output (used with --output-ppm-stream).

path
    Either a Git directory, a pre-generated log file (see --git-log-command, --cvs-exp-command or the custom log format) or '-' to read STDIN. If path is ommited gource will attempt to read a git log from the current directory.

GIT EXAMPLES
View the log of the Git respository in the current path:
gource View the log of a Git project in the specified directory:
gource my-project-dir Save a copy of the log using in a special git-log format and play it back. Use --git-log-command to get the git-log options you should use:
cd my-git-project
`gource --git-log-command` > my-git-project.log
gource my-git-project.log NOTE: --git-log-command assumes you have a recent version of git that supports all the options. You may need to modify the command line to work with an older version (changing %aN to %an for instance).

CVS SUPPORT
You can view CVS projects with gource using the tool cvs-exp (http://www.cs.rice.edu/~ssiyer/code/cvs-exp/) with the command line specified by the --cvs-exp-command option:
cd my-cvs-project
`gource --cvs-exp-command` > my-cvs-project.log
gource my-cvs-project.log

OTHER VERSION CONTROL SYSTEMS
Visit the Gource homepage for guides and examples of using Gource with other version control systems:
SVN - http://code.google.com/p/gource/wiki/SVN
Mercurial - http://code.google.com/p/gource/wiki/Mercurial

CUSTOM LOG FORMAT
If you want to use Gource with something other than the supported systems, there is a pipe delimited custom log format:
timestamp - A unix timestamp of when the update occured.
username - The name of the user who made the update.
type - Single character for the update type - (A)dded, (M)odified or (D)eleted.
file - Path of the file updated.
colour - A colour for the file in hex (FFFFFF) format. Optional.

RECORDING VIDEOS
You can create a video of Gource using the --output-ppm-stream option. This creates an uncompressed sequence of screenshots in PPM format which can then be processed by another program (such as ffmpeg) to produce a video file. The below command line will create a video at 60fps in h264 format (assumes you have ffmpeg with h264 support):
gource --output-ppm-stream - | ffmpeg -y -b 3000K -r 60 -f image2pipe -vcodec ppm -i - gource.h264

INTERFACE
The time shown in the top left of the screen is set initially from the first log entry read and is incremented according to the simulation speed (--seconds-per-day). Pressing SPACE at any time will pause/unpause the simulation. While paused you may use the mouse to inspect the detail of individual files and users. TAB cycles through selecting the current visible users. The camera mode, either tracking activity, or showing the entire code tree, can be toggled using the V key. Interactive keyboard commands:

(V) Toggle camera mode
(C) Displays Gource logo
(N) Jump forward in time to next log entry.
(+) Increase simulation speed.
(-) Decrease simulation speed.
(TAB) Cycle through visible users
(ESC) Quit

AUTHOR
 Written by Andrew Caudwell
 Project Homepage: http://gource.googlecode.com/

COPYRIGHT
 Copyright (C) 2009 Andrew Caudwell (acaudwell@gmail.com)
 This program is free software; you can redistribute it and/or
 modify it under the terms of the GNU General Public License
 as published by the Free Software Foundation; either version
 3 of the License, or (at your option) any later version.
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.

ACKNOWLEDGEMENTS
 Catalyst IT (catalyst.net.nz)
 For supporting the development of Gource!