私は2つのサーバーを持っています。古いサーバーはプレーンなgit
を実行し、/opt/
の下に3つのリポジトリがあります。これらのプロジェクトは新しいサーバーに移動され、GUIのためにgitlab
を実行し、友人を招待してプログラミングを学び、プロジェクトをより簡単に表示および管理できるようにします。
ただし、移動するときは、古いコードベースのリビジョンを保持したいと思います。どういうわけか、scp -r old-server.net:/opt/project.git /gitlab/
を実行するだけで十分だと思いましたが、これは失敗します。gitlab
に移動し、新しいリポジトリを作成して、ウィキを作成するフォルダー構造と、同じフォルダー構造を持つ/gitlab/project.git
というコードフォルダーを作成しました。古いサーバー(明らかにコードなし)とプロジェクトはgitlab
で正常にロードされますが、rm -rf project.git
とscp ...
を実行すると、500 We're sorry, but something went wrong.
が取得されます。
私の推測では、サーバーフォルダーのリビジョンとおそらくURLが間違っていますが、ファイルを手動で調べたり、gitlabのドキュメントを調べたりしても何も見つかりません。
誰かが似たようなことをしましたか?
前もって感謝します!
多くの場合、最も単純な基本的なソリューションが機能します... permissions、常に権限を確認してください。
chown -R git.git /gitlab/project.git/
新しいgitlabリモートを既存のリポジトリに追加してプッシュします。
git remote add gitlab url-to-gitlab-repo
gitプッシュgitlabマスター
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ファイルのすべてを一括削除しました。 (そうしないと、プッシュ時にエラーが発生します)。