Jak zmienić nazwę repozytorium Git utworzonego za pomocą gitolite?

85

Utworzyłem repozytorium Git za pomocą gitolite. Teraz chciałbym zmienić nazwę tego repozytorium.

Jak mogę to zrobić?

W pliku readme gitolite jest napisane, że nie powinienem pracować bezpośrednio na serwerze. Ale chyba w tym przypadku muszę trochę popracować na serwerze, prawda?

Patrick
źródło
Dobre pytanie i dziękuję za komentarz do mojej odpowiedzi. Dziś potrzebowałem tej odpowiedzi;)

Odpowiedzi:

135

Jak podano w podręczniku administratora gitolite basic :

zmiana nazwy repozytorium

To jest podobne; nie ma kodu, w którym można to zrobić gitolite. To co robisz to:

  • zaloguj się do serwera cd $REPO_BASE(domyślnie:) cd ~/repositoriesi

    mv old-name.git new-name.git

  • z powrotem na swoim gitolite-admin klonu, edytować conf/gitolite.confi zastąpić wszystkie wystąpienia old-namez new-name. Następnie dodaj, zatwierdź i wciśnij jak zwykle.

Kolejność tych 2 kroków jest ważna; nie odwracaj ich :-)

Trzeci krok jest konieczny na gitolite3:

  • edytuj plik gl-confw repozytorium i zmień nazwę repozytorium na nową

I oczywiście każdy użytkownik powinien zaktualizować swoją konfigurację klonu, aby wskazywała na nową nazwę repozytorium.

takeshin
źródło
7
Na gitolite3 musisz także edytować gl-confi zmieniać nazwę repozytorium.
Fernando Correia
4
nie zapomnij ustawić zdalnego adresu URL swojej lokalnej kopii repozytorium na nową nazwę:, git remote set-url [email protected]:new-name.gita następnie wykonaj, git fetchaby upewnić się, że nie ma błędów.
cneuro
Zrobiłem pierwsze dwa kroki w złej kolejności, zanim uzyskałem tę odpowiedź. FYI to też zadziałało, po prostu musiałem rm -r new-name.gitprzed mvkomendą.
Arnaud P
9

Nie jestem zaznajomiony konkretnie z gitolite, ale jednym z podejść, które może zadziałać, jest utworzenie zupełnie nowego repozytorium o poprawnej nazwie, przesłanie kodu do tego, a następnie usunięcie starego.

Greg Hewgill
źródło
Z tego co wiem, powinno to zachować historię. +1
1
Usunięcie starego repozytorium, utworzenie nowego repozytorium i przeniesienie zawartości starego repozytorium do nowego działa. Dzięki!
Patrick,
Oto polecenia, aby to osiągnąć (zakładając, że NewRepo jest już utworzone w Gitolite): // W starym repozytorium $ git remote dodaj <remote-moniker> NewRepo $ git push --all --force NewRepo // W nowym repozytorium $ git pull Nie ma potrzeby hakowania konfiguracji gitolite, a cała historia została zachowana :)
Matthew Skelton
0

Używając Grega Hewgilla jako pomysłu, możesz zmienić nazwę repozytorium w pliku konfiguracyjnym. Możesz najpierw spróbować tego na fikcyjnym repozytorium. Podejrzewam, że stara nazwa zostanie usunięta, nowa zostanie utworzona i musisz zaktualizować swoje źródła lokalnie, a następnie push.


źródło
Niestety zmiana nazwy repozytorium w pliku konfiguracyjnym nie działa. gitlolite dodaje nowe repozytorium, ale nie usuwa starego. Jednak użycie pomysłu Grega działa.
Patrick,
@Patrick: Dobrze wiedzieć, nie musiałem zmieniać nazwy ani usuwać żadnego.
-2

Czystym podejściem jest utworzenie nowego repozytorium jako pustego, a następnie wykonaj następujące czynności:

Zakładając, że stare jest STARE, a nowe (puste) jest NOWE:

# 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

Lub możesz użyć bezpośrednio zdalnego repozytorium dla OLD:

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

To zachowa całą historię i pozwoli Gitolite zająć się jej wewnętrznymi elementami. Dodatkowo będziesz musiał zaktualizować gitolite-admin, ale nie ma ograniczeń w kolejności.

Działa to również zdalnie bez problemów.

Usunięcie STAREgo repozytorium powinno jednak odbywać się zgodnie z instrukcjami gitolite (lokalnie).

V13
źródło