はじめに
色々調べて、Git LFSによるファイルロックができたので、忘備録として作ってみた
要望
- gitlab-ci.ymlをいじられたくない
- 有料版Gitlabは使いたくない。CEのままがいい
ググる
「Gitlab file lock」とかでググると以下の二つにあたる
- CODEOWNERS
- FILE LOCKING
CODEO WNERS
Code Owners | GitLab
version historyを開くと
Introduced in GitLab Starter 11.3.
Support for group namespaces added in GitLab Starter 12.1.
Code Owners for Merge Request approvals was introduced in GitLab Premium 11.9.
CEに導入されてないので、パス
FILE LOCKING
GitLab Docs
File Locking | GitLab
Introduced in GitLab Premium 8.9.
CEに導入されてないので、パス
[Git LFS (Large File Storage)](#Git LFS)
GitLab Docs
Git LFS | GitLab
サイズが大きいバイナリファイルをGitで管理しやすくする拡張機能の一つで、以下の記事にわかりやすく説明されてた
Git LFS で大きいサイズのバイナリファイルも Git で管理する
もう一つの特徴として、ファイルロック機能があったので試してみることに
[Git LFS 導入](#Git LFS 導入)
※Gitlabサーバーとは別のサーバーで作業してます
適当にディレクトリ作って、lockしたいファイルがあるgitをcloneする
mkdir git_lfs_test
cd git_lfs_test
git clone http://11.111.11.111/hoge/hogehoge.git
GitLab version8.2以降ならパッケージにgit-lfsがあるので、yum
yum install git-lfs
インストールされているかコマンドうってみる
git lfs install
Git LFS initialized.
ファイルロック
git lfs lock .gitlab-ci.yml
Username for 'http://11.111.11.111': GitlabのUsernameを入力
Password for 'http://root@11.111.11.111':パスワード入力
.gitlab-ci.yml GitlabのName ID:User ID
# ファイルロック一覧を確認
git lfs locks
Username for 'http://11.111.11.111': GitlabのUsername
Password for 'http://root@11.111.11.111':
.gitlab-ci.yml GitlabのName ID:User ID
Gitlabでlock時に入力したUsername以外でログインして、指定したファイルを編集し、commitすると
できた