とりあえずFossil-SCMを使ってみたい人のためのざっくり解説
公開日時: 2022-09-19 02:00:40更新日時: 2023-11-26 18:17:10Fossil、いいですよね。なんてったって、使い方がわかりやすいんです。
筆者はバージョン管理システムの仕組みについて、とりあえずわかりやすいSubversionの勉強をしてから分散型のGitにチャレンジしようとして、そのややこしさに挫折しました……
そんな筆者がふと思い出したのが、以前Wikipediaで見かけた、「SQLiteの開発に使用されているバージョン管理システム」。それがFossilでした。
試しに使ってみると、分散型で、処理系もSQLiteだからかなり高速。なのに、自動同期が標準でONになっているので、使い方はクライアントサーバモデル同様で理解しやすい。
しかも、めちゃくちゃ簡単にサーバが立てられるため、余ってるマシンを自宅鯖として有効活用できて、その上サーバはGUIで管理できる。言うまでもなく有能。
……なんですが、こんなに有能なのに日本語の解説記事が少なすぎる……
仕方がないので、基本的な使い方について、ざっくりとではありますが備忘録も兼ねて筆者がまとめてしまうことにしました。
Fossilについて(この記事)
Fossil-SCMのインストールとVSCode連携設定 >>
Gitで挫折した人のためのFossil入門 >>
Fossil-SCM基本コマンド簡易日本語解説集 >>
FossilのGUIで行う設定まとめ >>
FedoraでFossil鯖を立てる >>
Fossilリポジトリの除外ファイル設定 >>
FossilからGitHubへのミラーリング >>
Fossilでありがちなトラブルとその対処法 >>
Fossilについて
Fossilは、SQLiteの開発チームがSQLiteのソースコード管理のために設計したSCM(ソースコード管理システム)です。同名の腕時計メーカーと紛らわしいのか、一般的には「Fossil-SCM」と呼ばれることが多いように感じられます。
SQLiteの開発チームが設計したというだけあって、もちろんデータは全てSQLiteで管理されており、SQLiteの性能を活かした高速な動作を特徴としています。
また、ユーザー数こそGitに劣るものの、バグの修正や機能強化はかなり活発に行われており、SQLiteの開発チームは多くの企業から資金面でのサポートを受けていることからも将来性のあるソフトウェアの1つです。
Gitとの違いとしては、この他に以下のような部分が挙げられ、その多機能さから、「GitとGitHubを1つのバイナリに詰め込んだもの」とも表現されます。
ユーザー目線の使いやすさを重視してUnix哲学に真っ向勝負を挑んだ大胆な設計も、SQLiteを生み出した優秀なエンジニアの方々あってのことでしょうか。
- 単一の実行ファイルだけで動作するため、Vectorに転がっている個人制作のフリーウェアと同じくらいインストールが楽。
- webサーバ機能が内蔵されており、設定やユーザー管理は全てGUIで行う。
- GUIでは、GitHubのようなバグ報告機能や掲示板機能に加えソフトウェアの説明書を書くためのWikiが利用できる。
- リポジトリ本体に加え、報告されたバグや掲示板の内容まで1つのSQLiteファイルに保存されるため、バックアップが極めて簡単。
- コマンドを使用することでリポジトリをGitにエクスポートできる。
- 必要な機能は全て内蔵するという設計方針なためか、外部アプリケーションとの連携についてはGitのほうが拡張性が高い。(ただし、FossilもVSCodeからの操作には対応している。)
- ファイルを管理するためのソフトウェアとして設計されているため、空のフォルダはリポジトリに登録できない。(プログラマー目線では不便だと感じる部分もある一方、エンドユーザー目線では空のフォルダが減ってファイル構成がわかりやすくなるメリットもある)
謝辞
これらの記事を執筆するにあたっては、言うまでもなくFossilの公式サイトを参考にさせていただきました。Fossilの開発者の方々には、この場を借りてお礼申し上げますm(_ _)m
この記事のタグ:
Fossil
Fossil