Git LFS を使ってみる その2


Git LFS が GitHub で使えることは前回確認したので、ほかのサービスではどうかを試してみました。ここではオンプレミスで使えることを前提として以下のもので試してみます。

  • GitBlit 1.7.1
  • GitLab Community Edition 8.5.1

これらの設置方法に関しての詳細は割愛します。

GitBlit

サーバー側で空リポジトリを作っておきます。
クライアント側で以下のようにリポジトリを作って、バイナリファイルを準備しておきます。
バイナリファイルとして適当な iso ファイルを入れてみました。

これをコミットして、作成したリモートリポジトリに Push してみます。

上記のような結果になりました。
正常に LFS のこともわかっている状態でリモートに上がったようです。

この状態を Web から確認してみると以下のようになってました。
gitblit-lfs-1
バイナリファイルがそのまま格納されず、ハッシュ情報を持った小さなテキストファイルになっていることが確認できます。

一方でこのリポジトリをクローンして取得してみます。

このような感じになりました。最後の行が示しているようにバイナリファイルも復元されているようです。

以上の点から GitHub と同じように特別な処置なしで LFS が扱えることがわかりました。
省略してしまいましたが、GitBlitでリポジトリの作成においても特別な設定は不要でした。

GitLab

同じようにローカルのリポジトリで iso ファイルを LFS 管轄にするところをまで整えておきます。また GitLab のほうでもリポジトリ(プロジェクト)を用意しておきます。

リモートを登録して Push してみます。

まさか失敗してしまいました。きちんとメッセージが表示されていますが、GitLab側での LFS が有効となっていないようです。

というわけで GitLab の設定をおこないます。
今回パッケージでインストールしたので /etc/gitlab/gitlab.rb を開いて、
以下のように編集します。とは言っても先頭の#を外して有効化しただけです。

設定ファイルを変更したので、以下のようにして反映します。

再び git push を試みてみます。

GitLab 側の設定に問題がなければこのように正常に Push できました。LFSの有効化についてはプロジェクトごとではなく、全体の設定となります。

ちなみにGitLab の設定が適当だとうまくいきません。サーバー名が正しくない場合以下のようにエラーとなります。

おまけ: ブランチに存在するLFS管轄ファイルについて

ブランチでLFS管轄になるファイルをコミット&プッシュした場合について確認しました。
登録&プッシュそのものに問題はないとして、取得する側ではどうなるかを見てみました。

work1 というブランチに別のファイルを登録しましたが、この時点ではまだそのファイルは取得されていないようです。
そこでブランチを切り替えてみました。

ようやくここでダウンロードが実行されるようです。
ちなみにこの後、master, work1 を切り替えてもバイナリデータは取得済みのため再ダウンロードは発生しません。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする