もた日記

くだらないことを真面目にやる

Gourceでバージョン管理システムの履歴を可視化する

Gource


Gource - a software version control visualization tool(公式ページ)

github.com

Gourceというツールを使うとバージョン管理システムのログをもとに履歴を可視化することができる。 GitだけではなくMercurial, Bazaar, SVNにも対応しているようだ。

f:id:wonder-wall:20170920200004p:plain


インストール


公式ページGitHubのReleasesにリンクがあるのでダウンロードしてインストールする。 macOSの場合はbrewでインストールできる。

$ brew install gource

ヘルプメッセージ

$ gource --help
Gource v0.47
Usage: gource [OPTIONS] [PATH]

Options:
  -h, --help                       Help

  -WIDTHxHEIGHT, --viewport        Set viewport size
  -f, --fullscreen                 Fullscreen
      --screen SCREEN              Screen number
      --multi-sampling             Enable multi-sampling
      --no-vsync                   Disable vsync

  --window-position XxY            Initial window position
  --frameless                      Frameless window

  --start-date 'YYYY-MM-DD hh:mm:ss +tz'  Start at a date and optional time
  --stop-date  'YYYY-MM-DD hh:mm:ss +tz'  Stop at a date and optional time

  -p, --start-position POSITION    Start at some position (0.0-1.0 or 'random')
      --stop-position  POSITION    Stop at some position
  -t, --stop-at-time SECONDS       Stop after a specified number of seconds
      --stop-at-end                Stop at end of the log
      --dont-stop                  Keep running after the end of the log
      --loop                       Loop at the end of the log

  -a, --auto-skip-seconds SECONDS  Auto skip to next entry if nothing happens
                                   for a number of seconds (default: 3)
      --disable-auto-skip          Disable auto skip
  -s, --seconds-per-day SECONDS    Speed in seconds per day (default: 10)
      --realtime                   Realtime playback speed
  -c, --time-scale SCALE           Change simulation time scale (default: 1.0)
  -e, --elasticity FLOAT           Elasticity of nodes (default: 0.0)

  --key                            Show file extension key

  --user-image-dir DIRECTORY       Dir containing images to use as avatars
  --default-user-image IMAGE       Default user image file
  --colour-images                  Colourize user images

  -i, --file-idle-time SECONDS     Time files remain idle (default: 0)

  --max-files NUMBER      Max number of files or 0 for no limit
  --max-file-lag SECONDS  Max time files of a commit can take to appear

  --log-command VCS       Show the VCS log command (git,svn,hg,bzr,cvs2cl)
  --log-format  VCS       Specify the log format (git,svn,hg,bzr,cvs2cl,custom)

  --load-config CONF_FILE  Load a config file
  --save-config CONF_FILE  Save a config file with the current options

  -o, --output-ppm-stream FILE    Output PPM stream to a file ('-' for STDOUT)
  -r, --output-framerate  FPS     Framerate of output (25,30,60)

PATH may be a supported version control directory, a log file, a gource config
file, or '-' to read STDIN. If omitted, gource will attempt to generate a log
from the current directory.

To see the full command line options use '-H'


使い方


バージョン管理しているディレクトリでgourceコマンドを実行すればよいので、Gource自体のリポジトリで試してみる。

$ git clone https://github.com/acaudwell/Gource
$ cd Gource
$ gource

ディレクトリが枝で、ファイルが葉として表示されるようだ。キャプチャは10秒程度だが履歴が長ければ数分単位で再生される。

f:id:wonder-wall:20170920195218g:plain

以下、オプションについて。
サイズを指定する(幅x高さ)。

$ gource -640x400

フルスクリーンモード。

$ gource -f

特定ユーザを追いかけるモード(デフォルトはリポジトリ全体を表示するoverviewモード)。再生中にvを押すとモードを切り替えられる。

$ gource --camera-mode track

開始位置、終了位置の指定(全体を1とした場合)。

$ gource --start-position 0.5 --stop-position 0.75

1日を何秒で表示するか(デフォルトは10)。

$ gource --seconds-per-day 1

判例の表示(または再生中にkを押す)。

$ gource --key

表示を派手にする。

gource --bloom-multiplier 2.0 --bloom-intensity 1.5

上記以外のオプションなどについてはこのページを参照。