2013-08-13 13 views
10

importare mio repository git nuda in Gitlab come descritto come here, perché non è stato riconosciuto come un repository git, ma crea un grande repo 94K 'vuoto' (l'originale è 2,8GB grande):Come importare un repository git esistente in Gitlab?

$ 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! 

Come soluzione alternativa, sostituisco la cartella del progetto vuota (che è stata creata dalla versione di importazione) con il mio repository. In seguito ho albero di clonare il repo da remoto e ottenere il seguente errore:

$ 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. 

Ma l'utente git dovrebbe avere tutti i diritti che sono necessari. - Forse ho qualcosa trascurato?

Il mio sistema: RHEL6.3, Git 1.8.3.4, Gitlab5.3.

Gitlab ha bisogno di un repository normale (non nudo)? O quale potrebbe essere il mio problema?

risposta

8

Does Gitlab need a normal repository (non-bare)?

No, tutti i repos gestiti da gitlab sono repository nudi.

Si dovrebbe vedere:

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

Assicurarsi che i diritti della cartella test.git (e file di pronti contro termine nudi all'interno di esso) sono gli stessi rispetto ai pronti contro termine nude esistenti nell'ambito /home/git/repositories/.

Se l'importazione non funziona, quindi "sostituire la cartella di progetto vuota (che è stata creata da prova di importazione) con il mio repository" dovrebbe.

Ma: è necessario assicurarsi che qualsiasi hook presente nel repository vuoto creato da GitLab (in) venga copiato sul repository completo nullo sostituendo quello vuoto (stesso percorso).
controllare anche quello che era in ~git/repositories/arepo.git/info e ~git/repositories/arepo.git/config

Per eseguire il debug, provate prima a clonare il repo nuda vuoto creato da GitLab durante l'importazione non è riuscita.
Quindi sostituirlo con il proprio, ricontrollare i ganci e riprovare.


Come mentioned dal OP e documentato in GitLab "Trouble Shooting Guide", il corretto ssh URL è:

[email protected]t.myserver.com:repositories/mygroup/proj1.git 

con :repositories menzionati.


Per importare repos nude (come detto da Sytse Sijbrandijbelow e in raketasks/import.md)

  • copiare i pronti contro termine nude sotto git repos_path (vedi config/gitlab.ymlgitlab_shell -> repos_path)
  • eseguire il comando di seguito

    bundle exec rake gitlab:import:repos RAILS_ENV=production 
    
+0

Ho aggiunto il mio errore di importazione alla mia domanda, perché penso che il problema principale sia l'importazione del mio repository. Le autorizzazioni che ho controllato più volte e quelle sono (drwxrws ---.). – user2451418

+0

@ user2451418 quindi la tua soluzione alternativa dovrebbe funzionare ... Ho modificato la mia risposta con alcune idee in più da considerare. – VonC

+0

Penso che non ci siano ganci creati: *** i ganci post-ricezione nei repos sono collegamenti: ... Gitlab/test ... il repository è vuoto ***. E lo stesso con i satelliti. Anche il problema non scompare quando provo a clonare il repository vuoto da remoto tramite ssh. Ma sul server la clonazione funziona bene. – user2451418

2

Ce l'ho! Era una directory mancante nel mio percorso ssh. Questo problema è stato già tracciato here.

Siamo spiacenti, ma i messaggi di errore non erano così ovvi. Spero che questo possa aiutare altri Gitlab principianti come me :)

+0

Eccellente. Ho riferimento anche a questo punto nella mia risposta. – VonC

+0

link specifico - https://github.com/gitlabhq/gitlab-public-wiki/wiki/Trouble-Shooting-Guide#gitlab-shell – Anake

10

Per la documentazione di questa funzione si veda https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/raketasks/import.md

+0

Buon link. +1. l'ho incluso nella mia risposta selezionata per maggiore visibilità. – VonC

+0

Si consiglia inoltre di prendere in considerazione: https://github.com/gitlabhq/gitlabhq/pull/8140: solo inserire i repository da importare in uno spazio dei nomi (sottodirectory utente o gruppo). –

+0

Ho seguito le istruzioni nella pagina collegata e non ho visto il mio nuovo progetto. A seguito di indagini è stato perché il progetto era interno e non visibile a un utente senza privilegi di amministratore. La correzione della visibilità ha risolto il problema. –

3

Per me la posizione di copiare il repository è -/var/opt/gitlab/git-dati/repository

Ho copiato il mio repository precedente esistente nella directory precedente e ho eseguito> gitlab-rake gitlab: import: repos ha funzionato !!!

Problemi correlati