Gource software version control visualization Copyright (C) 2009 Andrew Caudwell http://gource.googlecode.com/ Contents ======== 1. Description 2. Requirements 3. Using Gource 4. Copyright 1. Description ============== 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. 2. Requirements =============== Gource's display is rendered using OpenGL and requires a 3D accelerated video card to run. 3. Using Gource =============== gource <options> <path> options: -h, --help Help ('-H' for extended help). -WIDTHxHEIGHT, --viewport WIDTHxHEIGHT Set the viewport size. If -f is also supplied, will attempt to set the video mode to this also. -f, --fullscreen Fullscreen. -w, --windowed Windowed. --transparent Make the background transparent. Only really useful for screenshots. -p, --start-position POSITION Begin at some position in the log (between 0.0 and 1.0 or 'random'). --stop-position POSITION Stop (exit) at some position in the log (does not work with STDIN). -t, --stop-at-time SECONDS Stop (exit) after a specified number of seconds. --stop-at-end Stop (exit) at the end of the log / stream. --loop Loop back to the start of the log when the end is reached. -a, --auto-skip-seconds SECONDS Skip to next entry if nothing happens for a number of seconds. -s, --seconds-per-day SECONDS Speed of simulation in seconds per day. --realtime Realtime playback speed. -c, --time-scale SCALE Change simulation time scale. -i, --file-idle-time SECONDS Time in seconds files remain idle before they are removed or 0 for no limit. -e, --elasticity FLOAT Elasticity of nodes. -b, --background-colour FFFFFF Background colour in hex. --background-image IMAGE Set a background image. --logo IMAGE Logo to display in the foreground. --logo-offset XxY Offset position of the logo. --title TITLE Set a title. --font-size SIZE Font size. --font-colour FFFFFF Font colour in hex. --key Show file extension key. --date-format FORMAT Specify display date string (strftime format). --log-command VCS Show the VCS log command used by gource (git,svn,hg,bzr,cvs2cl). --log-format VCS Specify the log format (git,svn,hg,bzr,cvs2cl,custom). Required when reading from STDIN. --git-branch Get the git log of a branch other than the current one. --follow-user USER Have the camera automatically follow a particular user. --highlight-user USER Highlight the names of a particular user. --highlight-users Highlight the names of all users. --highlight-dirs Highlight the names of all directories. --highlight-colour FFFFFF Highlighted text colour in hex. --file-filter REGEX Filter out any files matching a specified regular expression. --file-extensions Show filename extensions only. --user-filter REGEX Filter out any users 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 or .png to use as the default user image. --colour-images Colourize user images. --crop AXIS Crop view on an axis (vertical,horizontal). --padding FLOAT Camera view padding. --multi-sampling Enable multi-sampling. --no-vsync Disable vsync. --bloom-multiplier FLOAT Adjust the amount of bloom. --bloom-intensity FLOAT Adjust the intensity of the bloom. --max-files Set the maximum number of files or 0 for no limit. Excess files will be discarded. --max-file-lag SECONDS Max time files of a commit can take to appear. Use -1 for no limit. --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. --camera-mode MODE Camera mode (overview,track). --disable-auto-rotate Disable automatic camera rotation. --hide DISPLAY_ELEMENT Hide one or more display elements from the list below: bloom - bloom effect date - current date dirnames - names of directories files - file icons filenames - names of files mouse - mouse cursor progress - progress bar widget root - root directory of tree tree - animated tree structure users - user avatars usernames - names of users Separate multiple elements with commas (eg 'mouse,progress') --hash-seed SEED Change the seed of hash function. -o, --output-ppm-stream FILE Output a PPM image stream to a file ('-' for STDOUT). This will automatically hide the progress bar initially and enable 'stop-at-end' unless other behaviour is specified. -r, --output-framerate FPS Framerate of output (25,30,60). Used with --output-ppm-stream. --output-custom-log FILE Output a custom format log file ('-' for STDOUT). --load-config CONFIG_FILE Load a gource conf file. --save-config CONFIG_FILE Save a gource conf file with the current options. --path PATH path Either a supported version control directory, a pre-generated log file (see log commands or the custom log format), a Gource conf file or '-' to read STDIN. If path is ommited, gource will attempt to read a log from the current directory. Git, Bazaar, Mercurial and SVN Examples: View the log of the respository in the current path: gource View the log of a project in the specified directory: gource my-project-dir For large projects, generating a log of the project history may take a long time. For centralized VCS like SVN, generating the log may also put load on the central VCS server. In these cases, you may like to save a copy of the log for later use. You can generate a log in the VCS specific log format using the --log-command VCS option: cd my-svn-project `gource --log-command svn` > my-svn-project.log gource my-svn-project.log You can also have Gource write a copy of the log file in its own format: gource --output-custom-log my-project-custom.log CVS Support: Use 'cvs2cl' to generate the log and then pass it to Gource: cvs2cl --chrono --stdout --xml -g-q > my-cvs-project.log gource my-cvs-project.log 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 - initial 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: See the guide on the homepage for examples of recording videos with Gource: http://code.google.com/p/gource/wiki/Videos More Information: Visit the Gource homepage for guides and examples of using Gource with various version control systems: http://code.google.com/p/gource/ 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 Middle mouse button. You can drag the left mouse button to manually control the camera. The right mouse button rotates the view. Interactive keyboard commands: (V) Toggle camera mode (C) Displays Gource logo (K) Toggle file extension key. (M) Toggle mouse visibility (N) Jump forward in time to next log entry. (S) Randomize colours. (+-) Adjust simulation speed. (<>) Adjust time scale. (TAB) Cycle through visible users (ESC) Quit 4. Copyright ============ Gource - software version control visualization 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/>.