Introduction

公式のGitLabのリポジトリをExportしてローカルのGitLabにImportする際、下記のエラーが発生しました。

Import version mismatch: Required 0.2.3 but was 0.2.4

What does it mean?

要するに

(Export先のGitLabは)0.2.3を要求しているけど、(Import仕様としているデータは)0.2.4だよ

ってことです。

大抵、公式のGitLabは最新版なので、ローカルのGitLabが古く、Importシステムのバージョン不一致になってしまった模様。

How to resolve?

安全にやるなら、ローカルのGitLabをバージョンアップするのが筋でしょうが、そうはいかないからこの記事があるわけです。

対策を探したところ、公式のIssueに

If the import is small or does not have many features there are more probabilities that it will succeed, and you could try the following at your own risk:

1
2
3
4
5
mkdir project_export
tar xfv old_export_file.tar.gz -C project_export
cd project_export
echo '0.1.6' > VERSION
tar czf experimental_new_project_export.tar.gz *

と紹介されていました。

バージョンの不一致をだますために、内部のバージョン表記を書き換えるようです。
上のシェルを少し使いやすくしました。

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/bash

target=$1
target=${target%.tar.gz}

directory=${target}_project_export

mkdir ${directory}
tar xfv ${target}.tar.gz -C ${directory}
cd ${directory}
echo $2 > VERSION
tar czf ${target}.tar.gz *
cd ..
1
./sample.sh 2019-09-24_01-11-731_testman_tests_export.tar 0.2.3

指定したエクスポートファイルのバージョンを第2引数で指定したバージョンで上書きします。

当然ながら問題が起きる可能性がありますが、まずはお試しあれ。
ソースだけなら普通にcloneアンドpushで良いですが、Issueがあるとそうもいかず。