web-dev-qa-db-ja.com

リポジトリをプレーンなgitからGitLabサーバーに移動します

私は2つのサーバーを持っています。古いサーバーはプレーンなgitを実行し、/opt/の下に3つのリポジトリがあります。これらのプロジェクトは新しいサーバーに移動され、GUIのためにgitlabを実行し、友人を招待してプログラミングを学び、プロジェクトをより簡単に表示および管理できるようにします。

ただし、移動するときは、古いコードベースのリビジョンを保持したいと思います。どういうわけか、scp -r old-server.net:/opt/project.git /gitlab/を実行するだけで十分だと思いましたが、これは失敗します。

gitlabに移動し、新しいリポジトリを作成して、ウィキを作成するフォルダー構造と、同じフォルダー構造を持つ/gitlab/project.gitというコードフォルダーを作成しました。古いサーバー(明らかにコードなし)とプロジェクトはgitlabで正常にロードされますが、rm -rf project.gitscp ...を実行すると、500 We're sorry, but something went wrong.が取得されます。

私の推測では、サーバーフォルダーのリビジョンとおそらくURLが間違っていますが、ファイルを手動で調べたり、gitlabのドキュメントを調べたりしても何も見つかりません。

誰かが似たようなことをしましたか?

前もって感謝します!

2
Torxed

多くの場合、最も単純な基本的なソリューションが機能します... permissions、常に権限を確認してください。

chown -R git.git /gitlab/project.git/
2
Torxed

新しいgitlabリモートを既存のリポジトリに追加してプッシュします。

git remote add gitlab url-to-gitlab-repo

gitプッシュgitlabマスター

3
Marc Stürmer

GitLabインスタンスに含めたいリポジトリがいくつかあると思います。

GitLabは、これを行うための一括メソッドを提供します。問題なく約250のリポジトリを追加しました。 gitファイルをGitLabサーバーの新しい場所にコピーします。「import」という名前のディレクトリを使用します。プロジェクト内にサブロケーションが必要な場合は、「XXX」(またはXXX/YYY)を追加できます。

# Use Sudo as needed, but it's important to do this
# using the same username than the final GitLab repo.
rsync -av /your/repo/location/* ./import/XXX
# give GitLab  full access
chown git:git ./ -R
# Later GitLab will modify the source and turn into a bundle
chmod 02777 -R ./*.git
# now the real work. Note that the source is import and not import/XXX
gitlab-rake gitlab:import:repos['./import/']

GitLab GUIを更新すると、インポートされたプロジェクトが表示されます。私の場合、GitLabで廃止された古いフックがいくつかあるので、新しく作成されたgitファイルのすべてを一括削除しました。 (そうしないと、プッシュ時にエラーが発生します)。

1
fcm