Home > Archives > 18 June 2020

18 June 2020

GitLab + LFS でハマった

普段の pptx は小さいので普通の Git で管理しちゃってたのだけど,音声とか入れ始めるとファイルが大きくなりすぎて Git だと辛い.なので Git LFS を使うことにした.サーバは自前の GitLab で.

とりあえず,GitLab 自体の設定は https://docs.gitlab.com/ee/administration/lfs/ とか見つつ /etc/gitlab/gitlab.rb に gitlab_rails['lfs_enabled'] = true をいれて終了.リポジトリ毎の設定で LFS が有効になってる必要があるけれど,どうやらデフォルトで有効になってるらしい.

そして,LFS のクライアントを手元にインストール.MSYS2 で pacman -S mingw-w64-x86_64-git-lfs したり,WSL で sudo apt install git-lfs したり.

これで準備完了.あとは試す.大きなファイルのあるリポジトリで git lfs install して git lfs track '*.pptx' して git add .gitattribute して hoge.pptx を追加して git commit して git push.

そしたらなんか「file already closed」とかいうエラーを食らってハマった.MSYS2 でも WSL でも同じエラーで push できない…… サーバ側の設定がなにかオカシイのだろうか?

で,調べてみたら https://github.com/git-lfs/git-lfs/issues/4085 に似たような症状が書かれていた.古い LFS が短気ってことっぽい? とりあえず,LFS のバージョンを上げれば大丈夫らしい.MSYS2 のは 2.2.1 だったし WSL のも 2.3.4 だったので古すぎた.

ということで,MSYS2 は諦めて WSL で https://packagecloud.io/github/git-lfs/install に則ってリポジトリを追加し,git-lfs を 2.11.0 に上げたら平和に push できた.めでたし.

閑話休題.

WSL 側の git でも credential.helper に Git Credential Manager for Windows を設定(MSYS2 の /usr/lib に展開してたのを再利用):git config --global credential.helper '/mnt/c/msys64/usr/lib/git-core/git-credential-manager.exe'

Home > Archives > 18 June 2020

Search
Feeds

Page Top