目次
バージョン管理システム Fossil を使う
Fossil は SQLite の開発チームが設計した分散バージョン管理システム (DVCS) である。 単一の実行ファイルで動き、リポジトリ内にバグトラッキング、Wiki、フォーラム、ウェブ UI、チャット機能を内蔵する。
特長
- 単一バイナリ。依存ライブラリなし。インストールはファイルを置くだけ。
- リポジトリは1つの SQLite データベースファイル。バックアップは
cpで済む。 - 内蔵 Web インターフェースで履歴、diff、チケット、Wiki をブラウザから操作できる。
- オートシンク(コミット時に自動 push/pull)で Git より単純なワークフロー。
- 改ざん防止に SHA3-256 ハッシュを使用、マニフェストへの電子署名もサポート。
インストール
macOS (Homebrew):
brew install fossil
Debian/Ubuntu:
sudo apt install fossil
Windows は 公式サイト から fossil.exe をダウンロードして PATH に置く。
基本的な使い方
リポジトリ作成とオープン
# リポジトリファイルを作成 fossil init ~/fossils/myproject.fossil
# 作業ディレクトリを開く(初回は空) mkdir myproject && cd myproject fossil open ~/fossils/myproject.fossil
ファイルの追加とコミット
# ファイルを作成したら fossil add index.html fossil commit -m "最初のコミット"
fossil addremove を使うと、新規ファイルの追加と削除ファイルの除去を自動で行う。
Web UI の起動
fossil ui
ブラウザで http://localhost:8080 が開き、履歴・diff・チケット・Wiki が利用できる。
ブランチとマージ
# ブランチ作成 fossil branch new feature-x trunk
# ブランチ切り替え fossil update feature-x
# trunk へマージ fossil update trunk fossil merge feature-x fossil commit -m "feature-x をマージ"
Git からの移行
# Git リポジトリを fossil に変換 git fast-export --all | fossil import --git newrepo.fossil
詳細は Git Users' Guide を参照。
主な設定
# ユーザー情報 fossil user default nishimotz
# autosync の切り替え fossil setting autosync off # 手動 push/pull fossil setting autosync on # コミット時自動同期
参考文献
- Fossil Version Control – A Users Guide (Jim Schimpf)
- とりあえずFossil-SCMを使ってみたい人のためのざっくり解説 (かぁくん本紀)
- Fossil-SCM基本コマンド簡易日本語解説集 (かぁくん本紀)
- GitとGitHubの機能をひとつのバイナリに詰め込んだ「Fossil」レビュー (GIGAZINE)
※ 日本語の書籍は今のところ存在しない(2026年5月現在)。
余談
筆者はバージョン管理にまつわる縁が深い。 2001年に CVS の解説書を共著し、 その後 Subversion、Bazaar、Mercurial、Git を順に使ってきた。
CVS は中央集権型で、ブランチとマージが苦手だった。 Subversion は atomic commit とバイナリファイルの扱いを改善したが、 やはりサーバー必須でオフライン作業には弱い。 Mercurial は分散型への移行としてよくできていた。 リポジトリが手元にあり、ブランチも軽く、マージも自然だった。 結局 Git のエコシステムに押されて使われなくなったが、使い心地は悪くなかった。
Git は強力だが、index とワークツリーの二段構え、stash、rebase、複数 remote など、
道具としての筋が通っているとは言いがたいと感じるようになった。
GitHub の便利さの裏で、public と private の境界があまりに低く、
git push ひとつで意図しない公開が起こりうるのも気になり始めた。
Fossil は分散型でありながらオートシンクで通常は意識させず、
リポジトリは手元の1ファイル。
公開したい時だけ明示的に fossil push すればよく、
事故の余地が少ない。
文責: 西本卓也 (nishimotz) — 2026-05-15
