Git svn kullanarak uzak dalı teslim alma


188

Git svn kullanarak bir svn deposuna baktım. Şimdi şubelerden birine bakmam ve izlemem gerekiyor. Bunu yapmanın en iyi yolu hangisidir?

Yanıtlar:


355

Standart Subversion düzeni

Subversion bagajınızı, etiketlerinizi ve dallarınızı içeren bir git klonu oluşturun.

git svn klonu http://svn.example.com/proje -T gövde -b şube -t etiketleri

--stdlayoutSenin Subversion deposu tipik yapısını kullanıyorsa seçeneği güzel kısayoludur:

git svn klonu http://svn.example.com/proje --stdlayout

Git deponuzu yıkım deposunun yaptığı her şeyi yok sayın:

git svn show-ignore >> .git / info / exclude

Artık git tarafında tüm Subversion dallarını görebilmelisiniz:

git şube -r

Subversion'daki şubenin adını söyleyin waldo. Git tarafında, koşarsın

git checkout -b waldo-svn uzaktan kumandalar / waldo

-Svn soneki formdaki uyarıları önlemektir

uyarı: refname 'waldo' belirsiz.

Git dalını güncellemek için waldo-svn, koşmak

git checkout waldo-svn
git svn rebase

Yalnızca trunk kasasından başlayarak

Yalnızca gövde klonuna Subversion dalı eklemek için git deponuzu .git/configiçerecek şekilde değiştirin

[svn-remote "svn-mybranch"]
        url = http://svn.example.com/proje/branches/mybranch
        fetch =: refs / uzaktan kumandalar / mybranch

Koşma alışkanlığını geliştirmen gerekecek

git svn fetch --fetch-all

tüm git svnayrı düşünen şeyleri güncellemek için. Bu noktada, yukarıdaki gibi dallar oluşturabilir ve izleyebilirsiniz. Örneğin, mybranch'a karşılık gelen bir git dalı oluşturmak için çalıştırın

git checkout -b mybranch-svn uzaktan kumandalar / mybranch

İstediğiniz şubeler git svn dcommitiçin geçmişlerini doğrusal tutun!


Daha fazla bilgi

Ayrıca, ilgili bir sorunun yanıtını okumak da ilginizi çekebilir .


Git svn klonunu kullanarak gövdeyi kontrol ettiğim için bu benim için işe yaramıyor.
markovuksanovic

Gerçek şu ki git svn clone svn.example.com/project/trunk kullandım Ve şimdi şu anki
Repo'yu

20
Svn uzaktan kumandalarınız için bir önek sağlamanızı öneririm. ( --prefix=svn/yaparken ekleyin git-svn initveya git-svn clone) Yerel şubelerinize sonek ekleme ihtiyacını ortadan kaldıracaktır.
jasonkarns

Birkaç şubeniz varsa, diğer bir branche ile ilgilenmeden önce "git checkout master" yapmayı unutmayın
Eildosa

show-ignoreHatalar çıkarsa , deneyingit svn show-ignore -i trunk
Antti Haapala
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.