logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Gource - a software version control visualization

Acknowledgements

        Catalyst IT (catalyst.net.nz)

        For supporting the development of Gource!

                                                                                                       Gource(1)

Author

        Written by Andrew Caudwell

        Project Homepage: http://gource.io

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.

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/resume  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
          (D)   Toggle directory name display mode
          (F)   Toggle file name display mode
          (U)   Toggle user name display mode
          (G)   Toggle display of users
          (T)   Toggle display of directory tree edges
          (R)   Toggle display of root directory edges
          (+-)  Adjust simulation speed
          (<>)  Adjust time scale
          (TAB) Cycle through visible users
          (F12) Screenshot
          (Alt+Enter) Fullscreen toggle
          (ESC) Quit

Name

       Gource - a software version control visualization

Options

-h,--help
               Help ('-H' for extended help).

       -WIDTHxHEIGHT,--viewportWIDTHxHEIGHT
               Set the viewport size. If -f is also supplied, will attempt to set the video mode to  this  also.
               Add ! to make the window non-resizable.

       -f      Fullscreen.

       --screenSCREEN
               Set the number of the screen to display on.

       --high-dpi
               Request a high DPI display when creating the window.

               On  some platforms such as MacOS, the window resolution is specified in points instead of pixels.
               The --high-dpi flag may be required to access some higher resolutions.

               E.g. requesting a high DPI 800x600 window may produce a window that is 1600x1200 pixels.

       --window-positionXxY
               Initial window position on your desktop which may be made up of multiple monitors.

               This will override the screen setting so don't specify both.

       --frameless
               Frameless window.

       --transparent
               Make the background transparent. Only really useful for screenshots.

       --start-date"YYYY-MM-DDhh:mm:ss+tz"
               Start with the first entry after the supplied date and optional time.

               If a time zone offset isn't specified the local time zone is used.

               Example accepted formats:

                   "2012-06-30"
                   "2012-06-30 12:00"
                   "2012-06-30 12:00:00 +12"

       --stop-date"YYYY-MM-DDhh:mm:ss+tz"
               Stop at the last entry prior to the supplied date and optional time.

               Uses the same format as --start-date.

       -p,--start-positionPOSITION
               Begin at some position in the log (between 0.0 and 1.0 or 'random').

       --stop-positionPOSITION
               Stop (exit) at some position in the log (does not work with STDIN).

       -t,--stop-at-timeSECONDS
               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.

       --loop-delay-secondsSECONDS
               Seconds to delay before looping.

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

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

       --realtime
               Realtime playback speed.

       --no-time-travel
               Use the time of the last commit if the time of a commit is in the past.

       -c,--time-scaleSCALE
               Change simulation time scale.

               E.g. 0.5 for half speed, 2 for double speed.

       -i,--file-idle-timeSECONDS
               Time in seconds files remain idle before they are removed or 0 for no limit.

       --file-idle-time-at-endSECONDS
               Time in seconds files remain idle at the end before they are removed.

       -e,--elasticityFLOAT
               Elasticity of nodes.

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

       --background-imageIMAGE
               Set a background image.

       --titleTITLE
               Set a title

       --font-fileFILE
               Specify the font. Should work with most font file formats supported by FreeType, such as TTF  and
               OTF, among others.

       --font-scaleSCALE
               Scale the size of all fonts.

       --font-sizeSIZE
               Font size used by the date and title.

       --file-font-sizeSIZE
               Font size of filenames.

       --dir-font-sizeSIZE
               Font size of directory names.

       --user-font-sizeSIZE
               Font size of user names.

       --font-colourFFFFFF
               Font colour used by the date and title in hex.

       --key   Show file extension key.

       --logoIMAGE
               Logo to display in the foreground.

       --logo-offsetXxY
               Offset position of the logo.

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

       --log-commandVCS
               Show the log command used by gource (git,svn,hg,bzr,cvs2cl).

       --log-formatVCS
               Specify  format  of the log being read (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-userUSER
               Have the camera automatically follow a particular user.

       --highlight-dirs
               Highlight the names of all directories.

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

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

       --highlight-colourFFFFFF
               Font colour for highlighted users in hex.

       --selection-colourFFFFFF
               Font colour for selected users and files.

       --filename-colourFFFFFF
               Font colour for filenames.

       --dir-colourFFFFFF
               Font colour for directories.

       --dir-name-depthDEPTH
               Draw names of directories down to a specific depth in the tree.

       --dir-name-positionFLOAT
               Position along edge of the directory name (between 0.1 and 1.0, default is 0.5).

       --filename-timeSECONDS
               Duration to keep filenames on screen (>= 2.0).

       --file-extensions
               Show filename extensions only.

       --file-extension-fallback
               Use filename as extension if the extension is missing or empty.

       --file-filterREGEX
               Filter out file paths matching the specified regular expression.

       --file-show-filterREGEX
               Show only file paths matching the specified regular expression.

       --user-filterREGEX
               Filter usernames matching the specified regular expression.

       --user-show-filterREGEX
               Show only usernames matching the specified regular expression.

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

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

       --fixed-user-size
               Forces the size of the user image to remain fixed throughout.

       --colour-images
               Colourize user images.

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

       --paddingFLOAT
               Camera view padding.

       --multi-sampling
               Enable multi-sampling.

       --no-vsync
               Disable vsync.

       --bloom-multiplierFLOAT
               Adjust the amount of bloom.

       --bloom-intensityFLOAT
               Adjust the intensity of the bloom.

       --max-filesNUMBER
               Set the maximum number of files or 0 for no limit. Excess files will be discarded.

       --max-file-lagSECONDS
               Max time files of a commit can take to appear. Use -1 for no limit.

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

       --user-frictionSECONDS
               Time users take to come to a halt.

       --user-scaleSCALE
               Change scale of user avatars.

       --camera-modeMODE
               Camera mode (overview,track).

       --disable-auto-rotate
               Disable automatic camera rotation.

       --disable-input
               Disable keyboard and mouse input.

       --hideDISPLAY_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 the tree
                   tree      - animated tree structure
                   users     - user avatars
                   usernames - names of users

               Separate multiple elements with commas (eg "mouse,progress")

       --hash-seedSEED
               Change the seed of hash function.

       --caption-fileFILE
               Caption file (see Caption Log Format).

       --caption-sizeSIZE
               Caption size.

       --caption-colourFFFFFF
               Caption colour in hex.

       --caption-durationSECONDS
               Caption duration.

       --caption-offsetX
               Caption horizontal offset (0 to centre captions).

       -o,--output-ppm-streamFILE
               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-framerateFPS
               Framerate of output (25,30,60). Used with --output-ppm-stream.

       --output-custom-logFILE
               Output a custom format log file ('-' for STDOUT).

       --load-configCONFIG_FILE
               Load a config file.

       --save-configCONFIG_FILE
               Save a config file with the current options.

       --pathPATHpath    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 omitted, gource will attempt to read a log from the current directory.

   Git,Bazaar,MercurialandSVNExamples
       View the log of the repository 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 will 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

   CVSSupport
       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

   CustomLogFormat
       If  you  want  to  use  Gource  with  something  other  than the supported systems, there is a pipe ('|')
       delimited custom log format:

          timestamp - An ISO 8601 or unix timestamp of when the update occurred.
          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.

   CaptionLogFormat
       Gource can display captions along the timeline by specifying a caption file (using --caption-file) in the
       pipe ('|') delimited format below:

          timestamp - An ISO 8601 or unix timestamp of when to display the caption.
          caption   - The caption

   RecordingVideos
       See the guide on the homepage for examples of recording videos with Gource:

          https://github.com/acaudwell/Gource/wiki/Videos

   MoreInformation
       Visit the Gource homepage for guides and examples of using Gource with various version control systems:

          http://gource.io

Requirements

gource requires a OpenGL capable video card to run.

Synopsis

gource [options] [path]

See Also