レビュー

GitとGitHubの機能をひとつのバイナリに詰め込んだ「Fossil」レビュー


ソフトウェアのバージョン管理といえば、GitとGitHubを用いるのが主流。しかし、バージョン管理システムにはCVSSubversionMercurialGitLabBitbucketなど、「GitとGitHub」以外の選択肢も存在します。そんな「GitとGitHub」とは別の選択肢のひとつが、データベースのSQLiteと同じくD. Richard Hipp氏によって開発された「Fossil」です。

Fossil: Home
https://www.fossil-scm.org/home/doc/trunk/www/index.wiki

FossilはLinuxやmacOS、Windowsに対応しており、ソースコードから自分でバイナリをビルドすることも可能。今回はUbuntu 20.04上でFossilを利用してみます。

まずは下記コマンドを実行して、Fossilのバイナリを実行可能なディレクトリに配置します。Fossilはバイナリ単体で動作するソフトウェアなので、他の依存パッケージなどのインストールは不要です。

wget -O - https://www.fossil-scm.org/home/uv/fossil-linux-x64-2.13.tar.gz | tar xzvf -
sudo mv fossil /usr/local/bin


続いて以下のコマンドで新しいプロジェクトを作成。

fossil init myrepo.fossil


プロジェクトを作成すると、プロジェクトIDやサーバーID、管理者のID、パスワード、カレントディレクトリ下に「myrepo.fossil」という名前のファイルが生成されます。


以下のコマンドを実行するとプロジェクトツリーが生成され、ファイルを管理することができるようになります。

fossil open -f myrepo.fossil


実行結果はこんな感じ。


さっそくプロジェクトにファイルを追加すべく、以下のようなプロジェクトを説明する「README.md」ファイルを作成。


以下のコマンドを実行すると、プロジェクトにファイルを追加することができます。

fossil add .


プロジェクトに変更をコミットするには、以下のコマンドを実行。このように、FossilはGitと同じようなコマンド体系でコードのバージョン管理を行えるソフトウェアです。

fossil commit -m "Initial Commit"


gitと同じように、リモートのリポジトリをクローンすることも可能です。

fossil clone https://www.sqlite.org/src sqlite.fossil


また、Fossilはウェブインターフェースを備えているので、以下のコマンドを実行すればウェブインターフェースからプロジェクトを確認することが可能。Fossilのウェブインターフェースは、Gitにおける「GitHub」や「GitLab」のような役割を果たします。

fossil ui myrepo.fossil


「http://localhost:8080/」にアクセスすると、Fossilのウェブ画面が表示されました。プロジェクトの設定を行う必要があるので、赤枠の「config/setup」をクリックします。


プロジェクト名やプロジェクトの説明、tarファイルの命名規則などを設定して「Apply Changes」をクリック。これでプロジェクトの設定は完了です。


「Timeline」では、プロジェクトのコミット履歴を確認できます。


「Files」では、プロジェクト内のファイルを確認可能。


また、「Forum」では、プロジェクトに関する質問などを投稿することができます。新規にスレッドを作成するには「New Thread」をクリック。


質問のタイトル、内容を記入できたら「Preview」をクリック。


上部にプレビューが表示されました。


プレビューを確認し、問題なければ「Submit」をクリックします。


こんな感じで、フォーラムに新しいスレッドを作成することができました。


「Tickets」の「New ticket」からは、バグや不具報告のためのチケットを発行することができます。


チケット名や問題の種類、問題の発生しているバージョン、問題の緊急度、問題の内容を記入したら「Preview」をクリック。


プレビューを確認できたら「Submit」をクリックします。


これでチケットを発行することができました。


「Tickets」の「All Tickets」をクリックすると……


チケット状態別にチケット一覧を確認することができます。ソフトウェア開発時にはこの画面を見ながら、不具合に対処していくことになります。


「Wiki」ではプロジェクトのWikiを残しておくことができます。「New」をクリックして新しいWikiを作成。


Wikiの名称を入力して「Create」をクリックします。


Wikiのエディタが表示されるので、内容を入力したら「Save&Close」をクリック。


これでWikiを作成することができました。



Fossilはローカルリポジトリの内容をリモートリポジトリに自動で反映する「autosync」モードを搭載しており、以下のコマンドを実行することでautosyncを有効にすることができます。

fossil setting autosync on


なお、FossilによるGitとFossilの比較表は以下となっています。

 GitFossil
機能ファイルバージョン管理のみバージョン管理やチケット、Wiki、フォーラム、ウェブ画面などあり
アーキテクチャ多くの小さなプログラムの集合スタンドアローンなひとつのバイナリ
データ保存キー・バリュー型のデータストアSQLite
動作システムPOSIXシステムでネイティブ動作POSIXとWindows両方でネイティブ動作
開発方式バザール方式の開発伽藍(がらん)方式の開発
設計Linuxカーネル開発のための設計SQLite開発のための設計
コントリビューター多数少数精鋭
方針それぞれのブランチに集中更新ツリー全体に集中
チェックアウト1リポジトリにひとつ1リポジトリに複数
記録するものすべきことを記録やったことを記録
文化コミットファーストテストファースト
ハッシュSHA-1/SHA-2対応同一リポジトリで SHA-1/SHA-3に対応

この記事のタイトルとURLをコピーする

・関連記事
GitHubっぽくデータベースのバージョン管理やホスティングができる「DoltHub」 - GIGAZINE

無料&スクリプトひとつでウェブサイトに「視点の追跡機能」を実装できる「WebGazer.js」レビュー - GIGAZINE

JavaScriptでGPUを簡単に扱えるライブラリ「GPU.js」レビュー、並列処理で多次元の演算が爆速に - GIGAZINE

ブラウザ上で動画生成や変換ができるWebAssembly版FFmpeg「ffmpeg.wasm」レビュー - GIGAZINE

GitHubが2020年のユーザー数やリポジトリ数、人気の高いプログラミング言語やトピックなど使用状況を詳細にまとめたレポート「The State of the Octoverse 2020」を公開 - GIGAZINE

in レビュー,   ソフトウェア, Posted by log1n_yi

You can read the machine translated English article here.