web-dev-qa-db-ja.com

既存の裸のgitリポジトリをGitlabにインポートする方法は?

here の説明に従って、Gitlabに裸のgitリポジトリをインポートします。これは、gitリポジトリとして認識されなかったためですが、94Kの大きな「空の」リポジトリが作成されます(元のサイズは2,8GBです):

$ bundle exec rake gitlab:import:repos Rails_ENV=production
fatal: Not a git repository (or any of the parent directories): .git
Processing test.git
INFO: Sidekiq client using redis://localhost:6379 with options:namespace=>"resque:gitlab"}
 * Created test (test.git)
Done!

回避策として、空のプロジェクトフォルダー(インポートトライアルによって作成された)を裸のリポジトリで置き換えます。その後、ツリーを作成してリモートからリポジトリを複製し、次のエラーを取得します。

$ git clone [email protected]:...test.git
Cloning into 'test'
fatal: '...test.git' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

ただし、gitユーザーは必要なすべての権限を持っている必要があります。 -何か見落としていることがありますか?

私のシステム:RHEL6.3、Git 1.8.3.4、Gitlab5.3。

Gitlabには通常のリポジトリ(ベアでない)が必要ですか?または、私の問題は何でしょうか?

12
user2451418

Gitlabには通常のリポジトリ(ベアでない)が必要ですか?

いいえ、gitlabが管理するすべてのリポジトリはベアリポジトリです。

見るべき:

/home/git/repositories/user1/repo1.git
/home/git/repositories/user1/repo2.git
/home/git/repositories/greoup1/repo3.git
...

test.gitフォルダー(およびその中の裸のリポジトリファイル)の権限が、/home/git/repositories/の下の既存の裸のリポジトリと同じであることを確認してください。

インポートが機能しない場合は、「空のプロジェクトフォルダー(インポートトライアルによって作成されたもの)を私の裸のリポジトリで置き換えてください」を実行する必要があります。

ただし、GitLabによって作成された空のベアリポジトリ(~git/repositories/arepo.git/hooks内)にあったフックが完全なベアリポジトリにコピーされて、空のリポジトリ(同じパス)を置き換えることを確認する必要があります。
~git/repositories/arepo.git/info~git/repositories/arepo.git/configの内容も確認してください

デバッグするには、まず、インポートが失敗したときにGitLabによって作成された空のベアリポジトリのクローンを作成します。
次に、独自のものと交換し、フックを再確認して、再試行してください。


言及[〜#〜] op [〜#〜] によって、GitLab " Trouble Shooting Guide "に文書化されているため、正しいssh URLです:

[email protected]:repositories/mygroup/proj1.git

:repositoriesが言及されています。


ベアリポジトリをインポートするには( Sytse Sijbrandijbelow および raketasks/import.md で言及)

  • git repos_pathの下に裸のリポジトリをコピーします(config/gitlab.ymlgitlab_Shell -> repos_pathを参照)
  • 以下のコマンドを実行します

    bundle exec rake gitlab:import:repos Rails_ENV=production
    
10
VonC

この機能のドキュメントについては、 https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/raketasks/import.md を参照してください

13

私にとってリポジトリをコピーする場所は-/ var/opt/gitlab/git-data/repositories

私は既存の裸のリポジトリを上記のディレクトリにコピーして> gitlab-rake gitlab:import:reposを実行しました!!!

4
JRomio

私はそれを持っている!それは私のsshパスに欠落しているディレクトリでした。この問題はすでに追跡されています here

申し訳ありませんが、エラーメッセージはそれほど明確ではありませんでした。これが私のような他のGitlab初心者に役立つことを願っています:)

3
user2451418