なぜGitの履歴を可視化するのか?
git logは単なる白黒の退屈なテキストの羅列だと思っていませんか?正直なところ、あの無機質なコマンドラインの結果を面白いと感じるのはエンジニアだけかもしれません。クライアントへの進捗報告や忘年会(Year-end Party)での発表などでは、静止画のグラフよりも、生き生きとしたアニメーション動画の方が圧倒的に説得力があります。
Gourceは、コミット履歴を活気あるエコシステムのように変換してくれるオープンソースツールです。ディレクトリは「枝」、ファイルは「葉」、そしてチームのメンバーはコードを構築・修正するために動き回る「実体」として表現されます。動画を見れば、追い込み時期のコードの爆発的な増加や、数千ファイルに及ぶ大規模なリファクタリングの様子が一目で分かります。
私は以前、18ヶ月に及ぶ5,000コミット以上の受託プロジェクトに参加したことがあります。クライアントから「なぜ初期段階の開発スピードが遅かったのか」と問われた際、技術的な説明をする代わりに、Gourceを使ってチームがコアエンジンをゼロから作り直した様子を見せました。何百もの古いファイルが削除され、整理された新しい構造に置き換わっていく様子を見て、クライアントはすぐにチームの努力を理解してくれました。
Gource의 クイックインストール
Gourceは主要なプラットフォームのほとんどをサポートしています。パッケージマネージャーを使えば、数秒でインストールが完了します。
macOSの場合
Homebrewを使うのが最も速い方法です:
brew install gource
Linux (Ubuntu/Debian)の場合
sudo apt-get install gource
Windowsの場合
GourceのGitHubから直接.exeファイルをダウンロードするか、Chocolateyを使ってプロフェッショナルにインストールできます:
choco install gource
基本コマンドで始めてみる
Gourceを実行するには、ターミナルを開き、Gitプロジェクトのルートディレクトリに移動して次のように入力します:
gource
実行すると、すぐにウィンドウが開き、初日からのコミット履歴が上映されます。ただし、デフォルト設定では解像度が低かったり、プロジェクトの規模によっては再生速度が速すぎたり遅すぎたりすることがあります。
動画をよりプロフェッショナルに見せるために、私がよく使用するパラメータのセットを紹介します:
gource -1280x720 --seconds-per-day 1 --auto-skip-seconds 1 --title "Fintechプロジェクト 2024"
-1280x720: 標準的なHD解像度を設定します。--seconds-per-day 1: 1日の作業を1秒の動画に凝縮します。--auto-skip-seconds 1: コミットがない日を自動的にスキップします。--title: プロジェクト名を画面の隅に表示し、ブランディングに役立てます。
動画をさらに「格好よく」カスタマイズする
未加工のGource動画は、プロジェクトに不要なファイルが多いと乱雑に見えることがあります。以下の3つのコツを適用して、重要な部分に焦点を当てた動画にしましょう。
1. ノイズとなるディレクトリを除外する
node_modulesやvendor内の数千ものファイルで動画を台無しにしないでください。正規表現を使ってこれらを除外しましょう:
gource --hide filenames,dirnames --ignore-dir "node_modules|vendor|.git"
2. メンバーのアバターをパーソナライズする
デフォルトでは、Gourceは汎用的な人型のアイコンを表示します。誰がコードを「構築」しているのかを明確にするために、Gravatarと連携するか、ローカルの画像を使用しましょう。注意:画像ファイル名はGitのユーザー名と一致させる必要があります。
gource --user-image-dir path/to/avatars/
3. 作成者の統合(Mailmap)
一人の開発者が会社のメールアドレスと個人のメールアドレスの両方でコミットすることがあります。これにより、Gourceは別人と誤認してしまいます。ルートディレクトリに.mailmapファイルを作成して、これらの同一人物を統合しましょう:
正式名称 <[email protected]> 旧名 <[email protected]>
Gourceを動画形式(MP4)で書き出す方法
Gourceには直接的な「ビデオ保存」ボタンはありません。データをffmpegにパイプして、MP4ファイルとしてエンコードする必要があります。これは、マーケティングチームに送るクリップを作成する際によく使うテクニックです。
まず、ffmpegをインストールしてください。その後、以下のパイプコマンドを実行します:
gource -1920x1080 -o - | ffmpeg -y -r 60 -f image2pipe -vcodec ppm -i - -vcodec libx264 -preset ultrafast -pix_fmt yuv420p -crf 18 -threads 0 project_history.mp4
このコマンドの解説:
-o -: 生の画像を標準出力(stdout)にストリームします。-r 60: フレームレートを60fpsに設定し、滑らかにします。-vcodec libx264: 現在最も一般的なH.264圧縮規格を使用します。-crf 18: 高画質を維持します(数値が小さいほど高画質になります)。
運用における実践的なTips
数年にわたる大規模なプロジェクトでは、動画が1時間を超えることもあります。アドバイスとしては、重要なマイルストーン(Milestones)だけに焦点を当てることです。--start-dateと--stop-dateパラメータで期間を制限できます。
gource --start-date "2023-01-01" --stop-date "2023-12-31"
また、Gourceは開発プロセスの異常を発見するのにも役立ちます。もし特定のコード領域に、長期間一人しか関わっていない場所があれば、それはナレッジシェアリング(知識共有)が不足している兆候です。その人が休暇を取れば、そのコード領域はチーム全体の危険な「死角」となります。
結論
Gourceは単なる「見栄えを良くする」ためのツールではありません。プロジェクトの歴史に魂を吹き込み、チームがこれまでの歩みをインスピレーション豊かに振り返る助けとなります。ぜひ現在のプロジェクトで試してみてください。自分たちの労働の成果が、一つの芸術作品のように浮かび上がる様子に、きっと驚くはずです。

