はじめに
システム保守移管で元々使っていたGitLabから別のGitLabへプロジェクトをそっくりそのまま移動したくなった。
GitLabバージョン8.9から実装された、プロジェクトのexport/import機能を使ってやろうとするといくつかハマりポイントがあったのでまとめる。
※ 記事記載時の最新の
その1「GitLabバージョンの差異」
GitLabにはバージョンとは別にexport/importバージョンがあり、export/importバージョンが違うGitLabの移管はできない。
(後方互換性があるかは不明)
もし移管先のexport/importバージョンが古い場合はGitLabのバージョンアップが必要
GitLabバージョンとexport/importバージョンの対応
その2「binaryファイルのマージリクエストがあると、importできない」
importしたいプロジェクトのマージリクエストにbinaryファイルのマージリクエストがあると、下記エラーとなる。
Error importing repository into hogehoge - invalid base64
対処法は、exportで作成されたtar.gzのアーカイブを解凍して、中にあるproject.jsonを変更する必要がある。
"merge_requests": [
"merge_request_diff": [
"merge_request_diff_files": [
...,
{
"binary":"true"
},
...
]
]
]
"binary":"true"となっているmerge_request_diff_filesをごっそり削除。
その3「文字化けしてるファイルがあるとimportできない」
windows備え付けの解凍/圧縮ツールで、exportされたアーカイブをそのまま解凍すると、日本語名のファイルのファイル名が文字化けすることがある。
そのままimportしようとするとファイル名が長すぎるためimportできないエラーとなる。7-zipを使うか、windowsアップデートにて文字化けを回避する必要がある。