[s2If current_user_can(access_s2member_level1)]

libgit2はマルチプラットフォームで使えるGitライブラリ。

[/s2If]

libgit2はC製のオープンソース・ソフトウェア。ここ1、2年で急速に人気を高めたバージョン管理システムがGitだ。特にRuby開発者の間で好んで使われているが、最近では企業内でも利用されるようになっている。今後も実績を積み重ねていくことだろう。

Screen-shot 520.png

公式サイト

そんなGitはシステム開発の現場以外でも使われるようになっている。例えばコンテンツのバージョン管理に使われるなど、ソフトウェアのバックエンドとして活用するのにもぴったりなのだ。そんなシステムとGitを連携させたい時に使えるのがlibgit2だ。

libgit2は単体で利用するソフトウェアではない。C言語で開発されたGitライブラリで、高速さとマルチプラットフォームでの動作、多彩な言語へのバインディングが特徴となっている。Windows/Mac OSX/Linuxで動作し、かつ例えばWindowsであればMS VCでコンパイル可能だ。

Screen-shot 521.png

Rubyの場合の使い方

バインディングはRuby/Python/.NET/Erlangが現時点で存在する。これらの言語から簡単にGitリポジトリが操作可能だ。オブジェクトの読み書き、コミット/タグ/ツリーの取得、リビジョンなどGitリポジトリ連携に必要な操作は一通り可能になっている。Gitと組み合わせたシステム開発の際には利用を検討しよう。

MOONGIFTはこう見る

Gitを使うことでシステムでネイティブにバージョン管理を行う場合に比べた時の工数は大幅に軽減される。全てのデータを保存した場合データ量は保存回数分増えるが、Gitを使えばデータベース側は常に最新データだけ管理すればよくなる。

またテキストに限らずバイナリを保存したり、ユーザがアップロードしたデータの管理をしてみても面白いだろう。他の言語向けにもバインディングが欲しくなるライブラリだ。

libgit2: a linkable library for Git

libgit2/libgit2 - GitHub