Soru git svn clone boş dizinde sonuçları


Proje yapısı ile bir svn deposu var:

/root/projectA/trunk
/root/projectA/branches
/root/projectA/tags

/root/projectB/trunk
/root/projectB/branches
/root/projectB/tags 

ProjectA'yı kopyalamak istiyorum. Koştuğumda:

git svn clone -r <revision number>:HEAD <url>/root/projectA

Hata alıyorum ve yeni projectA dizini altında bir git deposu oluşturuldu. Ancak dizin boş. Ben mi özledim mi?


25
2017-08-15 08:58


Menşei


Ayrıca bakınız stackoverflow.com/questions/3318278/... - rogerdpack


Cevaplar:


Benim problemim kullanıyordu -s veya --stdlayout çünkü benim svn repo standart bir düzeni (gövde, dallar, etiketler) yoktu.


27
2017-09-11 17:44



Burada aynı. Her biri bagajı, etiketleri ve dalları olan bir sürü projeyle tek bir repo aldım - ama bu standart düzen değil. - HDave
Ben de teşekkürler! - timmins


Alttaki komut şu işi yaptı:

  git svn clone -r HEAD <url>/root/projectA 

17
2017-08-16 15:03





Dahil herkes için authors-file seçenek, git svn clone irade tamamen dur Sağlanan yazar dosyasında arama değeri olmayan bir yazarla karşılaşırsa. Dikkat etmiyorsanız, git'in bu "uyarısı", repo'nun klonlamayı bitirmiş gibi görünebilir ve işlemin tamamlanmadığını belirtmez. Repo'nun rehberi de boş olacak.

Eksik yazarı eklerseniz, daha sonra yeniden çalıştırın. kesin komut, git durduğu yerden devam edecek.


4
2018-03-22 19:17



Hangi yazarın eksik olduğunu nasıl öğrenebilirsiniz? - LovesTha
@LovesTha, eksik yazar ekranda çıkacaktır. - Robin


Aynı problemi yaşadım ve --no-meta veri argümanı kullanılarak çözüldü. Senin durumunda, bu miktar

git svn clone -r <revision number>:HEAD <url>/root/projectA --no-metadata

2
2017-08-04 14:27



Lütfen bağlantıdan meta veri kullanmanın avantajlarını ve eksilerini görün. git-scm.com/docs/git-svn Bu seçeneği kullanmadan önce - boddhisattva


Benzer bir sorun vardı, dizinde 'git reset --hard HEAD' komutunu yürütmek dosyaları oluşturuyor gibi görünüyordu.

.git / nesneler oldukça büyüktü, bu yüzden dosyalar svn'den git'e aktarıldı sanırım, sadece kontrol edilmedi, ya da bir şey.


1
2018-04-07 12:23





Benim durumumda, klon işlemi düzgün şekilde tamamlanamadı. git svn clone ödeme yoluyla kısmen başarısız olur. Sorunu çözdüğümde, klonlama işleminden sonra otomatik olarak ödeme yaptı - boş klasör yok.

[Güncelleştirme] Benim durumumda çalışılan şey:

çalışılıyor git svn clone --preserve-empty-dirs <repo> benim için başarısız oldu. Ağları temizledikten sonra buldum https://www.semitwist.com/articles/article/view/the-better-svn-git-guide, kısmen diyor ki:

Bu bölüm biraz sıkıntıdır. V1.7.7'den itibaren Git'in bir --preserve-empty-dirs var. Sorun şu ki, lanet şey bozuldu. Bunu olduğu gibi kullanmaya çalışırsanız, tüm işlem muhtemelen sadece kısmen başarısız olur. Sabit olmalı.

Öncelikle, git-svn dosyanızı bulun:

$ find / 2> / dev / null | grep git-svn

$ bulmak 2> / dev / null / -type f | grep -l "Şeritleme başarısız"

Benim için, / usr / libexec / git-core / git-svn idi.

Not: Artık git-svn'de yok (en azından git 2.7.0'da değil). Onu buldum /usr/lib/perl5/vendor_perl/5.22/Git/SVN/Fetcher.pm.

En sevdiğiniz düzenleyicide hedef dosyayı açın:

sudo <your-favorite-editor> path/to/file

Şimdi, bu git-svn dosyasında, ara die "Failed to strip path. ([Git sürümüne bağlı olarak], [45] 4583 satırına yakın bir yerde olabilir. die için print ve kaydet. Git-svn artık düzeltildi.

git svn clone --preserve-empty-dirs <repo> şimdi beklendiği gibi davranmalıdır.


1
2018-03-04 02:30



Sorun neydi? - DDiVita
Üzgünüm, @DDivita. Cevabımda bulduğum çözümü neden koymadığımdan emin değilim. Güncellenmiş. - U007D


Bunun çalışıp çalışmadığını kontrol edemedim, ama şunu deneyin:

git svn clone --stdlayout <url>/root/projectA/

0
2017-08-15 09:12



Fark yok. hala boş bir dizinle bitiyor! - tom eustace


HTTP veya HTTPS aktarımlarını kullanırsanız (yani, depo URL'leriniz HTTP [s] ile başlar), geçerli bir kimlik sağlamanız gerekir. SVN Kullanıcı adı.

git svn clone -s https://svn.example.com/root/projectA --username <SVN username>

-s -stdlayout için bir takma addır

Ancak, sadece bir kez - kullanıcı adı seçeneğini belirtmek zorunda kaldım ve sonraki çağrılar onsuz çalıştı. Sanırım kullanıcı adını önbelleğe alır.


0
2017-11-05 10:35