Gitolite ile oluşturulmuş bir Git deposunu nasıl yeniden adlandırırım?


85

Gitolite kullanarak bir Git deposu oluşturdum. Şimdi bu depoyu yeniden adlandırmak istiyorum.

Bunu nasıl yapabilirim?

Gitolite'nin benioku bölümünde, doğrudan sunucu üzerinde çalışmamam gerektiği yazıyor. Ama sanırım bu durumda sunucuda biraz iş yapmam gerekiyor, değil mi?


Güzel soru ve cevabıma yorum yaptığınız için teşekkürler. Bugün bu cevaba ihtiyacım vardı;)

Yanıtlar:


135

Gitolite temel yönetici kılavuzunda belirtildiği gibi :

bir depoyu yeniden adlandırmak

Bu benzer; bunu yapacak bir kod yok gitolite. Yaptığınız şey:

  • sunucuda oturum açın, cd $REPO_BASE(varsayılan:) cd ~/repositoriesve

    mv old-name.git new-name.git

  • gitolite-admin klonunuza geri dönün, conf/gitolite.conftüm oluşumlarını old-nameile değiştirin ve değiştirin new-name. Sonra her zamanki gibi ekleyin, kesin ve itin.

Bu 2 adımın sırası önemlidir; ters çevirmeyin :-)

Gitolite3 üzerinde üçüncü bir adım gereklidir:

  • gl-confdepodaki dosyayı düzenleyin ve depo adını yeni adla değiştirin

Ve tabii ki, her kullanıcı klon yapılandırmasını yeni depo adını gösterecek şekilde güncellemelidir.


7
Gitolite3'te ayrıca gl-confdepo adını düzenlemeniz ve değiştirmeniz gerekir.
Fernando Correia

4
Deponun yerel kopyanızın uzak url'sini yeni ada ayarlamayı unutmayın: git remote set-url git@your.server:new-name.gitsonra git fetchhata olmadığından emin olmak için a yapın.
cneuro

Bu cevaba ulaşmadan önce ilk iki adımı yanlış sırada yapmıştım. Bilginize o da çalıştı, sadece komuttan rm -r new-name.gitönce gerekiyordu mv.
Arnaud P

9

Özel olarak gitolite aşina değilim, ancak işe yarayabilecek bir yaklaşım, doğru adla tamamen yeni bir depo oluşturmak, kodunuzu o deponun içine itmek ve sonra eskisini silmek olabilir.


Bildiğim kadarıyla, bu geçmişi tutmalı. +1

1
Eski depoyu silmek, yeni bir depo oluşturmak ve eski deponun içeriğini yenisine itmek işe yarar. Teşekkürler!
Patrick

Bunu başarmak için gereken komutlar (NewRepo'nun Gitolite'de zaten oluşturulmuş olduğunu varsayar): // Eski depoda $ git remote <remote-moniker> NewRepo $ git push --all --force NewRepo // Yeni depoda $ git pull Gitolite yapılandırmasını kesmeye gerek yok ve tüm geçmiş korunuyor :)
Matthew Skelton

0

Greg Hewgill'i bir fikir olarak kullanarak, muhtemelen yapılandırma dosyasındaki depoyu yeniden adlandırabilirsiniz. Bunu önce sahte bir depoda denemek isteyebilirsiniz. Şüphelerim, eski adın silineceği, yenisinin oluşturulacağı ve kökenlerinizi yerel olarak güncellemeniz ve ardından itmeniz gerektiğidir.


Maalesef, yapılandırma dosyasındaki depoyu yeniden adlandırmak işe yaramıyor. gitlolite yeni depoyu ekler ancak eskisini silmez. Greg'in fikrini kullanmak işe yarıyor.
Patrick

@Patrick: Bir tanesini yeniden adlandırmam veya silmem gerekmedi.

-2

Temiz bir yaklaşım, yeni depoyu boş olarak oluşturmak ve ardından aşağıdakileri yapmaktır:

Eskinin ESKİ ve yeninin (boş) YENİ olduğunu varsayarsak:

# 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

Veya ESKİ için doğrudan uzak depoyu kullanabilirsiniz:

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

Bu, tüm geçmişi koruyacak ve gitolitin kendi iç kısımlarını yönetmesine izin verecektir. Ek olarak gitolite-admin'i güncellemeniz gerekecek, ancak siparişte bir sınırlama yok.

Bu aynı zamanda sorunsuz olarak uzaktan çalışır.

ESKİ deponun silinmesi, gitolitin talimatlarına göre (yerel olarak) yapılmalıdır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.