私は最近、ゲーム開発用の Git LFS をテストするために、Gitlab CE で小さな Linux サーバーをセットアップしました。Gitlab と LFS のワークフローの感触をつかむために、多数の大きなバイナリ アセットを使用して、一般的なゲーム エンジンでテスト プロジェクトを作成しました。.gitignore
簡単に書いた後.gitattributes
、レポをサーバーにプッシュして別の PC に複製し、大きなアセット ファイルを適切に処理することができました。ワークフローの観点からは、コードに Git を使用し、アセットに SVN を使用する以前のセットアップよりも確かに優れているようです。
しかし、私たちが気付いた問題の 1 つは、テスト プロジェクトをクリーンアップし、不要な LFS ファイルをサーバーから削除することでした。Gitlab は、すべてのプロジェクトのすべての LFS ファイルを単一のストレージ ディレクトリに保存しているようです (私たちの場合は、/mnt/storage/git-lfs-objects
. その上、LFS ストレージ ディレクトリ内のすべてのファイルには短い 16 進数の名前が付いており、ファイルが何であるか、またはそれらがどのプロジェクトの一部であるかを知る方法がありません。テスト プロジェクトを gitlab から削除した後でも、lfs オブジェクトがまだ存在していることに気付きました。
では、不要な LFS オブジェクト/ファイルを Gitlab サーバーのストレージ ディレクトリから削除する方法はありますか? lfs-objects がプロジェクトごとのサブディレクトリに保存されていれば、非常に簡単で直感的だったように思えます。lfs-objects が元のファイル名の少なくとも一部を保持していれば、さらに良いでしょう! 将来のゲーム開発プロジェクトのために git-lfs と gitlab を追求することに本当に興味がありますが、さまざまなプロジェクトのデータを 1 つの巨大なディレクトリに混在させるという考えと、大きな「データ リーク」によってサーバーがいっぱいになる可能性はあまり好きではありません。識別が困難なファイルで。
では、ここで見逃している git-lfs または Gitlab CE の側面はありますか? 不要な lfs オブジェクトをサーバーから削除する方法がないとは想像できませんが、うまくいきません!