{"id":13441643,"url":"https://github.com/acaudwell/Gource","last_synced_at":"2025-03-20T12:32:07.169Z","repository":{"id":660854,"uuid":"303762","full_name":"acaudwell/Gource","owner":"acaudwell","description":"software version control visualization","archived":false,"fork":false,"pushed_at":"2025-03-11T01:55:32.000Z","size":4120,"stargazers_count":12059,"open_issues_count":112,"forks_count":731,"subscribers_count":233,"default_branch":"master","last_synced_at":"2025-03-18T04:22:46.511Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://gource.io","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/acaudwell.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog","contributing":null,"funding":".github/FUNDING.yml","license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"ko_fi":"acaudwell"}},"created_at":"2009-09-11T04:24:26.000Z","updated_at":"2025-03-17T12:27:05.000Z","dependencies_parsed_at":"2024-06-17T03:33:35.737Z","dependency_job_id":"0018c118-a8eb-401e-95d2-d275157bceb7","html_url":"https://github.com/acaudwell/Gource","commit_stats":{"total_commits":871,"total_committers":51,"mean_commits":17.07843137254902,"dds":"0.12055109070034442","last_synced_commit":"6cca45dd1143a3917005d05f712372ac8dbe50d0"},"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acaudwell%2FGource","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acaudwell%2FGource/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acaudwell%2FGource/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acaudwell%2FGource/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/acaudwell","download_url":"https://codeload.github.com/acaudwell/Gource/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244611327,"owners_count":20481178,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T03:01:36.441Z","updated_at":"2025-03-20T12:32:07.162Z","avatar_url":"https://github.com/acaudwell.png","language":"C++","readme":"Gource\n======\n\nhttps://gource.io\n\nDescription\n===========\n\nGource is a visualization tool for source control repositories.\n\nThe repository is displayed as a tree where the root of the repository is the\ncentre, directories are branches and files are leaves. Contributors to the\nsource code appear and disappear as they contribute to specific files and\ndirectories.\n\nRequirements\n============\n\nGource's display is rendered using OpenGL and requires a 3D accelerated video\ncard to run.\n\nUsing Gource\n============\n\n```\ngource [options] [path]\n\noptions:\n\n    -h, --help\n            Help ('-H' for extended help).\n\n    -WIDTHxHEIGHT, --viewport WIDTHxHEIGHT\n            Set the viewport size. If -f is also supplied, will attempt to set\n            the video mode to this also. Add ! to make the window non-resizable.\n\n    --screen SCREEN\n            Set the number of the screen to display on.\n\n    --high-dpi\n            Request a high DPI display when creating the window.\n\n            On some platforms such as MacOS, the window resolution is specified in points instead of pixels.\n            The --high-dpi flag may be required to access some higher resolutions.\n\n            E.g. requesting a high DPI 800x600 window may produce a window that is 1600x1200 pixels.\n\n    --window-position XxY\n            Initial window position on your desktop which may be made up of\n            multiple monitors.\n\n            This will override the screen setting so don't specify both.\n\n    --frameless\n            Frameless window.\n\n    -f, --fullscreen\n            Fullscreen.\n\n    -w, --windowed\n            Windowed.\n\n    --transparent\n            Make the background transparent. Only really useful for screenshots.\n\n    --start-date \"YYYY-MM-DD hh:mm:ss +tz\"\n            Start with the first entry after the supplied date and optional time.\n\n            If a time zone offset isn't specified the local time zone is used.\n\n            Example accepted formats:\n\n                \"2012-06-30\"\n                \"2012-06-30 12:00\"\n                \"2012-06-30 12:00:00 +12\"\n\n    --stop-date \"YYYY-MM-DD hh:mm:ss +tz\"\n            Stop after the last entry prior to the supplied date and optional time.\n\n            Uses the same format as --start-date.\n\n    -p, --start-position POSITION\n            Begin at some position in the log (between 0.0 and 1.0 or 'random').\n\n        --stop-position  POSITION\n            Stop (exit) at some position in the log (does not work with STDIN).\n\n    -t, --stop-at-time SECONDS\n            Stop (exit) after a specified number of seconds.\n\n        --stop-at-end\n            Stop (exit) at the end of the log / stream.\n\n        --loop\n            Loop back to the start of the log when the end is reached.\n\n        --loop-delay-seconds\n            Seconds to delay before looping.\n\n    -a, --auto-skip-seconds SECONDS\n            Skip to next entry if nothing happens for a number of seconds.\n\n    -s, --seconds-per-day SECONDS\n            Speed of simulation in seconds per day.\n\n        --realtime\n            Realtime playback speed.\n\n        --no-time-travel\n            Use the time of the last commit if the time of a commit is in the past.\n\n        --author-time\n            Use the timestamp of the author instead of the timestamp of the committer.\n\n    -c, --time-scale SCALE\n            Change simulation time scale. This affects the movement speed of user avatars.\n\n            E.g. 0.5 for half speed, 2 for double speed.\n\n    -i, --file-idle-time SECONDS\n            Time in seconds files remain idle before they are removed or 0\n            for no limit.\n\n        --file-idle-time-at-end SECONDS\n            Time in seconds files remain idle at the end before they are\n            removed.\n\n    -e, --elasticity FLOAT\n            Elasticity of nodes.\n\n    -b, --background-colour FFFFFF\n            Background colour in hex.\n\n    --background-image IMAGE\n            Set a background image.\n\n    --logo IMAGE\n            Logo to display in the foreground.\n\n    --logo-offset XxY\n            Offset position of the logo.\n\n    --title TITLE\n            Set a title.\n\n    --font-file FILE\n            Specify the font. Should work with most font file formats supported by FreeType, such as TTF and OTF, among others.\n\n    --font-scale SCALE\n            Scale the size of all fonts.\n\n    --font-size SIZE\n            Font size used by the date and title.\n\n    --file-font-size SIZE\n            Font size of filenames.\n\n    --dir-font-size SIZE\n            Font size of directory names\n\n    --user-font-size SIZE\n            Font size of user names.\n\n    --font-colour FFFFFF\n            Font colour used by the date and title in hex.\n\n    --key\n            Show file extension key.\n\n    --date-format FORMAT\n            Specify display date string (strftime format).\n\n    --log-command VCS\n            Show the VCS log command used by gource (git,svn,hg,bzr,cvs2cl).\n\n    --log-format VCS\n            Specify the log format (git,svn,hg,bzr,cvs2cl,custom).\n\n            Required when reading from STDIN.\n\n    --git-branch\n            Get the git log of a branch other than the current one.\n\n    --follow-user USER\n            Have the camera automatically follow a particular user.\n\n    --highlight-dirs\n            Highlight the names of all directories.\n\n    --highlight-user USER\n            Highlight the names of a particular user.\n\n    --highlight-users\n            Highlight the names of all users.\n\n    --highlight-colour FFFFFF\n            Font colour for highlighted users in hex.\n\n    --selection-colour FFFFFF\n            Font colour for selected users and files.\n\n    --filename-colour FFFFFF\n            Font colour for filenames.\n\n    --dir-colour FFFFFF\n            Font colour for directories.\n\n    --dir-name-depth DEPTH\n            Draw names of directories down to a specific depth in the tree.\n\n    --dir-name-position FLOAT\n            Position along edge of the directory name\n            (between 0.1 and 1.0, default is 0.5).\n\n    --filename-time SECONDS\n            Duration to keep filenames on screen (\u003e= 2.0).\n\n    --file-extensions\n            Show filename extensions only.\n\n    --file-extension-fallback\n            Use filename as extension if the extension is missing or empty.\n\n    --file-filter REGEX\n            Filter out file paths matching the specified regular expression.\n\n    --file-show-filter REGEX\n            Show only file paths matching the specified regular expression.\n\n    --user-filter REGEX\n            Filter usernames matching the specified regular expression.\n\n    --user-show-filter REGEX\n            Show only usernames matching the specified regular expression.\n\n    --user-image-dir DIRECTORY\n            Directory containing .jpg or .png images of users\n            (eg \"Full Name.png\") to use as avatars.\n\n    --default-user-image IMAGE\n            Path of .jpg or .png to use as the default user image.\n\n    --fixed-user-size\n            Forces the size of the user image to remain fixed throughout.\n\n    --colour-images\n            Colourize user images.\n\n    --crop AXIS\n            Crop view on an axis (vertical,horizontal).\n\n    --padding FLOAT\n            Camera view padding.\n\n    --multi-sampling\n            Enable multi-sampling.\n\n    --no-vsync\n            Disable vsync.\n\n    --bloom-multiplier FLOAT\n            Adjust the amount of bloom.\n\n    --bloom-intensity FLOAT\n            Adjust the intensity of the bloom.\n\n    --max-files NUMBER\n            Set the maximum number of files or 0 for no limit.\n\n            Excess files will be discarded.\n\n    --max-file-lag SECONDS\n            Max time files of a commit can take to appear.\n\n            Use -1 for no limit.\n\n    --max-user-speed UNITS\n            Max speed users can travel per second.\n\n    --user-friction SECONDS\n            Time users take to come to a halt.\n\n    --user-scale SCALE\n            Change scale of user avatars.\n\n    --camera-mode MODE\n            Camera mode (overview,track).\n\n    --disable-auto-rotate\n            Disable automatic camera rotation.\n\n    --disable-input\n            Disable keyboard and mouse input.\n\n    --hide DISPLAY_ELEMENT\n            Hide one or more display elements from the list below:\n\n            bloom     - bloom effect\n            date      - current date\n            dirnames  - names of directories\n            files     - file icons\n            filenames - names of files\n            mouse     - mouse cursor\n            progress  - progress bar widget\n            root      - root directory of tree\n            tree      - animated tree structure\n            users     - user avatars\n            usernames - names of users\n\n            Separate multiple elements with commas (eg \"mouse,progress\")\n\n    --hash-seed SEED\n            Change the seed of hash function.\n\n    --caption-file FILE\n            Caption file (see Caption Log Format).\n\n    --caption-size SIZE\n            Caption size.\n\n    --caption-colour FFFFFF\n            Caption colour in hex.\n\n    --caption-duration SECONDS\n            Caption duration.\n\n    --caption-offset X\n            Caption horizontal offset (0 to centre captions).\n\n    -o, --output-ppm-stream FILE\n            Output a PPM image stream to a file ('-' for STDOUT).\n\n            This will automatically hide the progress bar initially and\n            enable 'stop-at-end' unless other behaviour is specified.\n\n    -r, --output-framerate FPS\n            Framerate of output (25,30,60). Used with --output-ppm-stream.\n\n    --output-custom-log FILE\n            Output a custom format log file ('-' for STDOUT).\n\n    --load-config CONFIG_FILE\n            Load a gource conf file.\n\n    --save-config CONFIG_FILE\n            Save a gource conf file with the current options.\n\n    --path PATH\n\n    path    Either a supported version control directory, a pre-generated log\n            file (see log commands or the custom log format), a Gource conf\n            file or '-' to read STDIN.\n\n            If path is omitted, gource will attempt to read a log from the\n            current directory.\n```\n\nGit, Bazaar, Mercurial and SVN Examples:\n\nView the log of the repository in the current path:\n\n```\n    gource\n```\n\nView the log of a project in the specified directory:\n\n```\n    gource my-project-dir\n```\n\nFor large projects, generating a log of the project history may take a long\ntime. For centralized VCS like SVN, generating the log may also put load on\nthe central VCS server.\n\nIn these cases, you may like to save a copy of the log for later use.\n\nYou can generate a log in the VCS specific log format using\nthe --log-command VCS option:\n\n```\n    cd my-svn-project\n    `gource --log-command svn` \u003e my-svn-project.log\n    gource my-svn-project.log\n```\n\nYou can also have Gource write a copy of the log file in its own format:\n\n```\n    gource --output-custom-log my-project-custom.log\n```\n\nCVS Support:\n\nUse 'cvs2cl' to generate the log and then pass it to Gource:\n\n```\n    cvs2cl --chrono --stdout --xml -g-q \u003e my-cvs-project.log\n    gource my-cvs-project.log\n```\n\nCustom Log Format:\n\nIf you want to use Gource with something other than the supported systems,\nthere is a pipe ('|') delimited custom log format:\n\n    timestamp - An ISO 8601 or unix timestamp of when the update occurred.\n    username  - The name of the user who made the update.\n    type      - initial for the update type - (A)dded, (M)odified or (D)eleted.\n    file      - Path of the file updated.\n    colour    - A colour for the file in hex (FFFFFF) format. Optional.\n\nCaption Log Format:\n\nGource can display captions along the timeline by specifying a caption file\n(using --caption-file) in the pipe ('|') delimited format below:\n\n    timestamp - An ISO 8601 or A unix timestamp of when to display the caption.\n    caption   - The caption\n\nRecording Videos:\n\nSee the guide on the homepage for examples of recording videos with Gource:\n\nhttps://github.com/acaudwell/Gource/wiki/Videos\n\nMore Information:\n\nVisit the Gource homepage for guides and examples of using Gource with various\nversion control systems:\n\nhttps://gource.io\n\nInterface:\n\nThe time shown in the top left of the screen is set initially from the first\nlog entry read and is incremented according to the simulation speed\n(--seconds-per-day).\n\nPressing SPACE at any time will pause/resume the simulation. While paused you\nmay use the mouse to inspect the detail of individual files and users.\n\nTAB cycles through selecting the current visible users.\n\nThe camera mode, either tracking activity or showing the entire code tree, can\nbe toggled using the Middle mouse button.\n\nYou can drag the left mouse button to manually control the camera. The right\nmouse button rotates the view.\n\nInteractive keyboard commands:\n\n    (V)   Toggle camera mode\n    (C)   Displays Gource logo\n    (K)   Toggle file extension key\n    (M)   Toggle mouse visibility\n    (N)   Jump forward in time to next log entry\n    (S)   Randomize colours\n    (D)   Toggle directory name display mode\n    (F)   Toggle file name display mode\n    (U)   Toggle user name display mode\n    (G)   Toggle display of users\n    (T)   Toggle display of directory tree edges\n    (R)   Toggle display of root directory edges\n    (\u003c\u003e)  Adjust time scale / user avatar movement speed\n    (+-)  Adjust simulation speed\n    (Keypad +-) Adjust camera zoom\n    (TAB) Cycle through visible users\n    (F12) Screenshot\n    (Alt+Enter) Fullscreen toggle\n    (ESC) Quit\n\nCopyright\n=========\n\nGource - software version control visualization\nCopyright (C) 2009 Andrew Caudwell \u003cacaudwell@gmail.com\u003e\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program. If not, see \u003chttp://www.gnu.org/licenses/\u003e.\n","funding_links":["https://ko-fi.com/acaudwell"],"categories":["C++","Tool","HarmonyOS","others"],"sub_categories":["Windows Manager"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facaudwell%2FGource","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Facaudwell%2FGource","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facaudwell%2FGource/lists"}