Git-svn'in klonlama işlemini kullanarak bir SVN deposunu klonlamaya başladım. Yaklaşık 6 saatlik ithalattan sonra (bu büyük bir depo), bilgisayarım gitti ve üzerimde uyudu. İlk çalışmayı yeniden yapmadan operasyona devam etmenin bir yolu var mı?
Git-svn'in klonlama işlemini kullanarak bir SVN deposunu klonlamaya başladım. Yaklaşık 6 saatlik ithalattan sonra (bu büyük bir depo), bilgisayarım gitti ve üzerimde uyudu. İlk çalışmayı yeniden yapmadan operasyona devam etmenin bir yolu var mı?
Yanıtlar:
git svn fetch
Bir devam ettirmek için komut git svn clone
birkaç kaynaklar tarafından teyit edilir:
(Bu arada, ilk klon adımı sırasında bağlantınız ölürse veya onu durdurmanız gerekirse, klonu devam ettirmek için geçmişi indirmeye devam etmek için yukarıdaki komutu çalıştırmanız yeterlidir).
Bir hafıza sızıntısı var gibi görünüyor
git-svn
.git-svn
İşlemin boyutu yavaşça büyüdü ve yaklaşık iki hafta sonra 1,2 GB yerleşik boyutuna ulaştı, bu noktada işletim sistemi çatallaşmaya izin vermedi.
Mesele şu ki, bu kılık değiştirmiş bir lütuftu.
Kesilen klonu basit bir "git svn fetch
" ile devam ettirebildim ve artık çok daha küçük olan yığınla çok daha hızlı çalıştı.
Bu o kadar işe yaradı ki, her akşam ve her sabah süreci yarıda kesme ve yeniden başlatma alışkanlığı edindim. Birkaç gün sonra yapıldı.
Maceralarınıza
git-svn
mevcut bir Subversion deposunu klonlayarak başlarsınız :
git svn clone url://path/to/repo -s
-s
Bayrak deponuzu "gövde, dallar, etiketleri" kuralını kullanır varsayar. Değilse, Git'in onlar hakkında bilgi sahibi olmasını istiyorsanız, hangi dizinlerin dalları ve etiketleri temsil ettiğini manuel olarak belirlemeniz gerekir.Bu, her bir revizyonu SVN'den alacağı ve yerel olarak işleyeceği için uzun zaman alacaktır. Herhangi bir nedenle durursa, ile devam edebilirsiniz
git svn fetch
.
git svn clone
İşlemi kesintiye uğratarak yanlışlıkla ağ bağlantımı kestim. Devam etmekte git svn clone
olan klonu devam ettirmek için tekrar çalıştırmak göründü. Bunu başka yapan var mı?
(Umarım) doğru cevabı sağlayan bir blog yazısı buldum .
Görünüşe göre, koşuyor git svn fetch
etkin bir şekilde klon işlemini tamamlıyor. İşte umut!
git svn rebase
getirdikten sonra işlemi tamamlamak ve gövdeyi yansıtan ana şubeye sahip olmak için kullanmanız gerekecek
VonC, CaptainAwesomePants ve Archi'nin söylediği git svn fetch
gibi hile yapıyor. git svn clone url... --authors-file=path/to/file
Yazarlardan biri yazarlar dosyasında olmadığı için bir yapıyordum ve klon başarısız oldu. Yazarı dosyaya ekledim ve koştum git svn fetch
ve kaldığı yerden devam etti ve daha sonra git günlüğüne baktım, görünüşe göre yeni eklenen yazarı commit yazarının adını değiştirmek için kullandı, bu yüzden her şey tatlıydı.
En azından 2.1.0'a gittiğinizde, sadece yeniden yayınlayarak devam edebilirsiniz git svn clone
Ancak bu, .git / config dosyasındaki bazı girişleri çoğaltacak ve bunları kaldıracak ve her şey yoluna girecek
From at least git 2.1.0...
Bu özelliğin git 1.9.1'de mevcut olup olmadığına dair bir fikriniz var mı?
git svn fetch
Benim için bir sağlama uyumsuzluğu nedeniyle - ve görünüşte hiçbir BAŞ olmadığı için sıfırlamak mümkün değildi: / - ama bu cezayı çalışır sadece kaldırmak zorunda svn-remote.fetch
den.git/config
git svn clone
de (uygun olduğu şekilde) sağlanması gerektiğini düşünüyorumgit svn fetch
. Örneğin, ben batmıştı-r HEAD
içingit svn clone
sadece BAŞ SVN revizyon alır. Devamgit svn fetch
etmek için tüm revizyonları içe aktarmaya başlayan koştum .