LemonTree Gitリポジトリの肥大化対策

ここでは、Git利用におけるリポジトリの肥大化を抑制する方法として、Git Large File Storage(以下、Git LFS)の利用についてご紹介します。

背景

Enterprise Architectのプロジェクトファイルをバージョン管理システム(ここでは Git)で管理する場合、リポジトリが肥大化しやすい傾向にあります。これは、プロジェクトファイルをバイナリファイルとして管理し、コミット毎にバイナリファイルがリポジトリに蓄積されるためです。

一方で、パフォーマンスの観点では、Gitサーバ側、たとえばGit LFSに対応しているGitホスティングサービスとしてよく使われているGitHubでは、リポジトリは1GB未満を推奨しているようです。

しかし、モデルのサイズが大きかったり、コミット回数が多かったりすると、リポジトリはすぐに1GBに到達してしまいます。

このような課題の解決として、Gitの拡張機能であるGit LFSを利用する方法があります。Git LFSは、対象ファイルをリポジトリ外のストレージに保存し、その保存先への参照ポインタのみをリポジトリに保持することでリポジトリの肥大化を抑制します。

環境構築例

はじめに

  • この環境構築例は、GitHubを利用した一例であり、お客様の環境で構築できることや構築環境そのものを保証するものではございません。環境構築・運用などすべてにつきまして、お客様自身の責任でご対応いただけますようお願いいたします。
  • この環境構築例は、Gitに関する内容で標準サポートの対象外となります。そのため、大変申し訳ございませんがご質問はお受けできません。
  • この環境構築例は、2022年10月25日時点のものです。その後の機能更新・変更などにより、構築手順が以下と異なる場合がございます。
  • GitHubのGit LFS利用に関する費用につきましては、以下のGitHubのページをご覧ください。


前提

  • GitHubにリポジトリが作成されていること
  • 利用ソフトウェアのバージョン
    • Git 2.38.1
    • TortoiseGit 2.13.0.1


手順

  1. クライアントマシンにGitをインストールします。※未インストールの場合のみ
    (赤枠のコンポーネントが選択されていること)


  2. TortoiseGitをインストールします。※未インストールの場合のみ
  3. TortoiseGitでGitHubからクローンします。




    このあとにGitHubへのサインインを要求される場合は、サインインします。

    クローンが完了すると以下のような表示になります。(表示の変更に時間がかかる場合があります)


  4. Windowsメニューより Git Bash を起動します。
  5. カレントディレクトリをクローンしたローカルリポジトリに移動します。
  6. Git LFSをインストールします。git lfs install と入力します。


  7. LFSの対象とする拡張子を指定します。
    たとえば、eap, eapx, qea, qeax を対象としたい場合は、
    git lfs track *.eap *.eapx *.qea *.qeax と入力します。


  8. 前述の git lfs track で作成された.gitattributesファイルをTortoiseGitで追加して、コミット&プッシュします。



  9. 以上でGit LFSの設定は完了です。ここからは、実際にqeaファイルで動作確認をします。


  10. ローカルリポジトリに任意のqeaファイルを配置し、TortoiseGitで追加して、コミット&プッシュします。
  11. GitHubでリポジトリのサイズやLFSの利用を確認します。

    1. リポジトリサイズの確認

      Git Bash を起動して、以下のように入力します。
      • パブリックリポジトリの場合
        curl https://api.github.com/repos/<ユーザ名>/<リポジトリ名>
      • プライベートリポジトリの場合
        curl -u <ユーザ名>:<Personal Access Token> https://api.github.com/repos/<ユーザ名>/<リポジトリ名>

      • ※Personal Access Token について
        • 取得方法:GitHubのページで右上にあるプロファイルの画像より、Settings > Developer settings > Personal access tokens > Tokens (classic) > Generate new token > Generate new token (classic) と進みます。表示されたページでは、「Select scopes」欄で「repo」を有効にして、トークンを生成してください。
        • 使用方法:$tokenなどの環境変数に入れて使用することが推奨されています。

      表示結果の中で赤枠がリポジトリのサイズです。



      上記以外の方法として、Google Chromeの拡張機能「GitHub Repository Size」を利用して、GitHubのページでリポジトリサイズを確認できるようにする方法もあります。

    2. LFSの利用確認

      GitHubでqeaファイル(ここでは Sample1.qea)を確認し、赤枠のように表示されていれば、LFSを利用できています。


    3. LFSのサイズ確認

      GitHubのページで右上にあるプロファイルの画像より、Settings > Billing and plans と進みます。
      表示されたページの下段に以下のようなGit LFSに関する表示があり、サイズを確認できます。


以上で環境構築は完了です。

クライアントマシンの利用手順

上記の環境構築が完了したあと、他のクライアントマシンも利用する場合には、利用するクライアントマシンで上記の環境構築の手順1〜3(クローン)まで行なうと設定が完了します。(手順4以降を実施する必要はありません。)