らんだむな記憶

blogというものを体験してみようか!的なー

GitLabを使ってみたい(2)

GitLabを使ってみたい - らんだむな記憶
> lfsはなんかこける。設定が抜けている気がする。
について見ていたところ、

$ GIT_TRACE=1 git push 

すると、一部のURLにnginx['listen_port']で設定したものと異なるポートに対してPUTメソッドを使っているような行があることに気付いた...。nginx['listen_port']の設定行をコメントアウトしてgitlab-ctl reconfigureすることでポートを80番に戻して再度試すとgit pushが成功した。
ってことは、push時のURLがおかしいってことだ。なんでポート番号が抜けるんだろう...。

Git LFS - GitLab Documentationを参考にダメ元で

$ git config --add lfs.url "http://gitlab.example.com/group/project.git/info/lfs"

の類をやったがダメだった。なおこれは、ローカルリポジトリ.git/config内にエントリが追加される形で反映される。
まぁ、あんま嬉しい状態ではないのだが、lfsのファイルがどうなっているかの調査はできる。デフォルト設定のままなので/var/opt/gitlab/gitlab-rails/shared/lfs-objects/にファイルができるはずだ。lfsの設定後にpush前にはこのディレクトリ下は空であったが、push後には増えている!ほほぅ。これがリポジトリにはポインタだけができて、ファイルの実体は別の場所に置かれるというやつの背景だな。

root@xxx:/var/opt/gitlab/gitlab-rails/shared/lfs-objects# ls
32  ab  tmp

どれどれ、サイズを見てみるか。

root@xxx:/var/opt/gitlab/gitlab-rails/shared/lfs-objects# du -h
2.7M    ./ab/7b
2.7M    ./ab
2.8M    ./32/5d
2.8M    ./32
4.0K    ./tmp/upload
4.0K    ./tmp/cache
12K     ./tmp
5.5M    .

ふむ、大体lfsでpushしたファイルのサイズだな。なるほどねぇ。
んで、GitLabのリポジトリブラウザ上からは普通にファイルがリポジトリ内にあるように見えるんだなぁ。うまくできているもんだ。

/var/opt/gitlab/git-dataの下にリポジトリができているはずなので調べてみるとできていた。その下でdu -hリポジトリの管理データのサイズを確認すると、lfs trackしていないファイルくらいのサイズだった。ふーん。なるほどねぇ。