## 経緯
まだ[[Windows]]を使っていた頃に、[[Git]]の[[コミットグラフ]]表示ツールの[[Serie]]を使ってみたことがある。しかし、[[Windows]]の環境では色々とダメだったので諦めた
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" />
<span class="link-card-v2-site-name">Minerva</span>
</div>
<div class="link-card-v2-title">
📜2024-10-14 Gitのコミットグラフ表示ツールSerieを使ってみた
</div>
<div class="link-card-v2-content">Lazygitのissueで紹介されたGitコミットグラフ表示ツールSerieをWSL上のUbuntuとWindows Terminal環境でCargoインストールし実行したが、対応プロトコルの制約でグラフが正しく表示されなかった経緯と結果を記録した</div>
<img class="link-card-v2-image" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/activity.webp" />
<a data-href="📜2024-10-14 Gitのコミットグラフ表示ツールSerieを使ってみた" class="internal-link"></a>
</div>
%%[[📜2024-10-14 Gitのコミットグラフ表示ツールSerieを使ってみた]]%%
だが、[[macOS]]と[[Ghostty]]を使っている今ならいけそうな気がしてきた。[[keifu]]を試したのもあり、今一度[[gitクライアント]]周りを整理する意味でも試してみる。
## 要件
表示に特化したものが欲しい。[[Neovim]]からも起動できればなお良い。
- [[コミットグラフ]]のgraphが見やすいこと
- 極力1行1コミットで、かつブランチによって色分けされている
- 差[[コミットグラフ]]のgraphとメタデータが隣接していること
- 離れていると見にくいので
- 軽量であること
- 差分など詳細を確認できること
- (Optional) [[Neovim]]と連携できること
- [[Diffview.nvim]]と連携できればベスト
**編集などの操作は不要。** (デキる分にはもちろんいいけど)
## 環境
| 対象 | バージョン |
| ----------- | ------ |
| [[Serie]] | 0.5.7 |
| [[macOS]] | 15.7.2 |
| [[Ghostty]] | 1.2.3 |
| [[Git]] | 2.52.0 |
| [[Rust]] | 1.92.0 |
## インストール
```console
mise use -g cargo:serie
```
## コミットグラフ
すべてが1行なのは非常に見やすい。
![[2026-01-11-20-01-50.avif]]
ただ、**並行数の多いリポジトリでは入り切らなくなる** という問題がある。
![[2026-01-11-20-03-48.avif]]
### 関連Issue
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://github.githubassets.com/favicons/favicon.svg" />
<span class="link-card-v2-site-name">GitHub</span>
</div>
<div class="link-card-v2-title">
Commits cannot be shown with complex trees · Issue #46 · lusingander/serie
</div>
<div class="link-card-v2-content">
When opened repos that have complex and long history, it shows wide blank space and appears no commits. This ima ...
</div>
<img class="link-card-v2-image" src="https://opengraph.githubassets.com/7d3b30044f652af46e58c5df64392a1038b94c9534d3461f84c626e13f6465c3/lusingander/serie/issues/46" />
<a href="https://github.com/lusingander/serie/issues/46"></a>
</div>
[[Rust]]なのでforkして実装してしまう手もあるが、[[Neovim]]との連携を考えると別の方法を模索してみてもいいかも。
## カスタマイズ
### コミットの日付フォーマット変更
[[コミット履歴に日付だけでなく時間まで表示 (Serie)|コミット履歴に日付だけでなく時間まで表示]]する。
### git diffを見やすくする
[[git diffをDeltaで表示 (Serie)|git diffをDeltaで表示]]すると見やすくなる。[[設定ファイル (Serie)|設定ファイル]]に以下を追加。
```toml
[ui.user_command]
height = 40
[core.user_command]
commands_1 = { "name" = "git diff", commands = ["sh", "-c", "git diff --color=always {{first_parent_hash}} {{target_hash}} | delta --dark --paging=never --side-by-side --line-numbers --width {{area_width}}"] }
```
![[2026-01-12-07-16-37.avif]]
## 要件
要件の対応状況。
- ✅ **標準で対応**
- [[コミットグラフ]]のgraphが見やすいこと
- 極力1行1コミットで、かつブランチによって色分けされている
- 軽量であること
- 差分など詳細を確認できること
- ❌ **標準では非対応**
- 差[[コミットグラフ]]のgraphとメタデータが隣接していること
- 離れていると見にくいので
- (Optional) [[Neovim]]と連携できること
- [[Diffview.nvim]]と連携できればベスト
ただ、非対応なものはforkして対応できそうな気がする。
## fork版で対応
2つの対応を行った。
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" />
<span class="link-card-v2-site-name">Minerva</span>
</div>
<div class="link-card-v2-title">
📜2026-01-12 Serieで表示するコミットログの最大数を制限できるようにしてみる
</div>
<div class="link-card-v2-content">Serieで長期間存続するブランチでコミットグラフの横幅が肥大化した問題に対し、git log -n を利用して表示コミット数を制限する実装をCodex CLIとGPT-5.2-Codex highで試行し、HEADやstashの表示制約を確認したうえでIssueとして提案した経緯を記録した</div>
<img class="link-card-v2-image" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/activity.webp" />
<a data-href="📜2026-01-12 Serieで表示するコミットログの最大数を制限できるようにしてみる" class="internal-link"></a>
</div>
%%[[📜2026-01-12 Serieで表示するコミットログの最大数を制限できるようにしてみる]]%%
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" />
<span class="link-card-v2-site-name">Minerva</span>
</div>
<div class="link-card-v2-title">
📜2026-01-12 SerieからDiffview.nvimを開けるようにしてみる
</div>
<div class="link-card-v2-content">コミットグラフ閲覧ツールSerieでdiff詳細をNeovimのDiffview.nvimで確認したくなり、Codex CLIとGPT-5.2-Codex highを用いてnon-blockな外部プロセス起動機能を試験実装し、Issueとして共有した経緯と結果を記録した</div>
<img class="link-card-v2-image" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/activity.webp" />
<a data-href="📜2026-01-12 SerieからDiffview.nvimを開けるようにしてみる" class="internal-link"></a>
</div>
%%[[📜2026-01-12 SerieからDiffview.nvimを開けるようにしてみる]]%%
これで以下の要件も解決!
- ✅ **標準では非対応**
- 差[[コミットグラフ]]のgraphとメタデータが隣接していること
- 離れていると見にくいので
- (Optional) [[Neovim]]と連携できること
- [[Diffview.nvim]]と連携できればベスト
せっかくなのでissueも作成したところ、Feature Requestには好意的な反応をいただけた。もし本家で実装されることになったら、fork版は破棄する予定。