2014-10-03 11 views
6

Ich habe ein paar seltsame Probleme bei der Migration meines alten Git-Repositorys, das in einem Redmine liegt, in mein neues Gerrit-Repository.Repository Migration zu Gerrit, git push --mirror gibt refs/meta/config zurück (Projektkonfiguration kann nicht gelöscht werden)

Grundsätzlich machte ich

git clone --mirror ssh:// .... old-repo.git 
cd old-repo.git/ 
git push --mirror ssh:// .... new-gerrit-repo 

ist eine gute Wahl, jetzt ich zum ersten Mal ein paar Warnungen:

remote: (W) a01300f: commit message lines >70 characters; manually wrap lines 
remote: (W) 8def171: commit subject >65 characters; use shorter first paragraph 

, die ich denke, ich ignorieren kann, weil das ursprüngliche Repository noch als Referenz vorhanden ist.

Mein Hauptproblem ist dieser Fehler:

! [remote rejected] refs/meta/config (cannot delete project configuration) 
error: failed to push some refs to ssh:// .... new-gerrit-repo 

Nach einiger Lektüre fand ich heraus, dass dieser refs/meta/config Zweig nur einige projektspezifische Regeln für Gerrit enthält. Es hat ein paar Konfigurationsdateien für die Parametrisierung von Gerrit. (Es ist im Grunde die Seite Projektoptionen unter Gerrit Registerkarte "Allgemein") Es gibt keine projektbezogenen Quelldateien.

Kann mir jemand helfen? Ist es sicher, diesen Fehler zu ignorieren und mit der Migration fortzufahren?

Zugriff drücken, lesen, senden Rechte für Administratoren auf Refs/Meta/Config angegeben. Nichts half.

Danke für jede Nachricht!

Antwort

3

Die refs/meta/config ref ist in der Tat nur für Gerrit-spezifische Einstellungen (einschließlich, aber nicht beschränkt auf Zugriffskontrolleinstellungen) für das Projekt. Abhängig von der Quelle und dem Ziel ist es möglicherweise sinnvoll, sie zu migrieren, aber Sie können es nicht über --mirror tun, da dies dem Löschen und erneuten Erstellen des Verweises entspricht und Gerrit ausdrücklich das Löschen von refs/meta/config verbietet.

Sie könnten alle anderen Referenzen spiegeln und den Status des refs/meta/config-Zweigs manuell kopieren, wenn es etwas gibt, das es wert ist, behalten zu werden.

+0

Das ursprüngliche Repository hat keine refs/meta/config und daher versucht die --mirror Option für 'git push' diese auch aus Gerrit zu löschen. Also, wie spiegele ich alle anderen Refs aber Refs/Meta/Config ignorieren? – Fl0R1D3R

+0

Sie können die Option '--mirror' nicht verwenden. Sie müssen die Refs über einzelne Muster wie refs/heads/*: refs/heads/* refs/tags/*: refs/tags/* 'und so weiter schieben. –

+0

Tatsächlich können * Sie '--mirror' verwenden, wenn Sie' git fetch ssh: // ... refs/meta/config: refs/meta/config 'lokal bereits vorher ausführen. – sschuberth