Wie benenne ich ein mit gitolite erstelltes Git-Repository um?

85

Ich habe ein Git-Repository mit Gitolite erstellt. Jetzt möchte ich dieses Repository umbenennen.

Wie kann ich das machen?

In der Kapitol von gitolite heißt es, dass ich nicht direkt auf dem Server arbeiten sollte. Aber ich denke, ich muss in diesem Fall etwas am Server arbeiten, oder?

Patrick
quelle
Gute Frage und danke für den Kommentar zu meiner Antwort. Heute brauchte ich diese Antwort;)

Antworten:

135

Wie im gitolite basic-admin-Handbuch angegeben :

Repo umbenennen

Das ist ähnlich; Es gibt keinen Code, um dies zu tun gitolite. Was Sie tun, ist:

  • Melden Sie sich am Server an cd $REPO_BASE(Standard :) cd ~/repositoriesund

    mv old-name.git new-name.git

  • Zurück auf Ihrem Gitolite-Admin-Klon, bearbeiten conf/gitolite.confund ersetzen Sie alle Vorkommen von old-namedurch new-name. Fügen Sie dann wie gewohnt hinzu, schreiben Sie fest und drücken Sie.

Die Reihenfolge dieser beiden Schritte ist wichtig. kehre sie nicht um :-)

Bei gitolite3 ist ein dritter Schritt erforderlich:

  • Bearbeiten Sie die Datei gl-confim Repo und ändern Sie den Repository-Namen in den neuen Namen

Und natürlich sollte jeder Benutzer seine Klonkonfiguration aktualisieren, um auf den neuen Reponamen zu verweisen.

Takeshin
quelle
7
Auf gitolite3 müssen Sie auch gl-confden Repository-Namen bearbeiten und ändern.
Fernando Correia
4
Vergessen Sie nicht, die Remote-URL Ihrer lokalen Kopie des Repos auf den neuen Namen zu setzen : git remote set-url [email protected]:new-name.git, und führen Sie dann eine aus git fetch, um sicherzustellen, dass keine Fehler vorliegen.
Cneuro
Ich hatte die ersten beiden Schritte in der falschen Reihenfolge ausgeführt, bevor ich zu dieser Antwort kam. Zu Ihrer Information, es hat auch funktioniert, musste nur rm -r new-name.gitvor dem mvBefehl.
Arnaud P
9

Ich bin nicht speziell mit Gitolite vertraut, aber ein Ansatz, der funktionieren könnte, besteht darin, ein völlig neues Repository mit dem richtigen Namen zu erstellen, Ihren Code in dieses zu verschieben und dann das alte zu löschen.

Greg Hewgill
quelle
Soweit ich weiß, sollte das die Geschichte behalten. +1
1
Das Löschen des alten Repositorys, das Erstellen eines neuen Repositorys und das Verschieben des Inhalts des alten Repositorys in das neue Repository funktioniert. Vielen Dank!
Patrick
Hier sind die Befehle, um dies zu erreichen (vorausgesetzt, NewRepo ist bereits in Gitolite erstellt): // Fügen Sie im alten Repo $ git remote <remote-moniker> NewRepo $ git push --all --force NewRepo hinzu // Im neuen Repo $ git pull Keine Notwendigkeit, die gitolite-Konfiguration zu hacken, und die gesamte Geschichte bleibt erhalten :)
Matthew Skelton
0

Mit Greg Hewgill als Idee können Sie möglicherweise das Repository in der Konfigurationsdatei umbenennen. Möglicherweise möchten Sie dies zuerst in einem Dummy-Repository versuchen. Mein Verdacht ist, dass der alte Name gelöscht wird, der neue erstellt wird und Sie Ihre Herkunft lokal aktualisieren und dann pushen müssen.


quelle
Leider funktioniert das Umbenennen des Repositorys in der Konfigurationsdatei nicht. gitlolite fügt das neue Repository hinzu, löscht jedoch nicht das alte. Die Verwendung von Gregs Idee funktioniert jedoch.
Patrick
@Patrick: Gut zu wissen, ich musste keinen umbenennen oder löschen.
-2

Ein sauberer Ansatz besteht darin, das neue Repository als leeres Repository zu erstellen und dann Folgendes zu tun:

Angenommen, alt ist ALT und neu (leer) ist NEU:

# mkdir /tmp/1
# cd /tmp/1
# git clone OLD_REPO old
# git clone NEW_REPO new
# cd new
# git pull ../old
# git push origin master

Oder Sie können das Remote-Repo für OLD direkt verwenden:

# mkdir /tmp/1
# cd /tmp/1
# git clone NEW_REPO new
# cd new
# git pull OLD_REPO
# git push origin master

Dies wird die gesamte Geschichte bewahren und es Gitolit ermöglichen, mit seinen Einbauten umzugehen. Zusätzlich müssen Sie gitolite-admin aktualisieren, aber es gibt keine Einschränkung in der Reihenfolge.

Dies funktioniert auch ohne Probleme aus der Ferne.

Das Löschen des ALTEN Repositorys sollte jedoch gemäß den Anweisungen von Capitolite (lokal) erfolgen.

V13
quelle