2010-11-18 23 views
4

Bir SVN deposuyla eşitlenmesi gereken bir Git deposunda bazı kod var. Tarifim şöyle:Git'ten SVN'ye: Değişiklikler birleştirilemedi

  1. Bir SVN deposu oluşturun (yerel, sınama için uzak bir tane olacaktır).
  2. İlk yerleşimi oluştur, ilk işleme dayalı yeni bir Git deposu 1 düzeltme
  3. git svn clone -T '/trunk' <REPO>.
  4. git remote add dev <ORIGINAL>, bunu git pull dev <ORIGINAL_BRANCH> takip eder. Şimdi ana SVN taahhüdünü temel alan depoda ana şubem var.
  5. git svn rebase bunu dcommit izleyecektir. içinde birleştirilemedi "Otomatik birleştirme" ve "ÇATIŞMA (içerik)" mesajları Rebase nihayet bir dost ile durdurur" bir çift tarafından takip

    Using index info to reconstruct a base tree... 
    Falling back to patching base and 3-way merge... 
    Auto-merging X 
    Applying: Y 
    Applying: Z 
    Using index info to reconstruct a base tree... 
    <stdin>:269: trailing whitespace. 
    
    <stdin>:315: trailing whitespace. 
    
    <stdin>:400: trailing whitespace. 
        * Method 2.6. Returns zero or two elements 
    <stdin>:3762: trailing whitespace. 
    
    warning: 4 lines add whitespace errors. 
    Falling back to patching base and 3-way merge... 
    

    :

Adım 5) Ancak başarısız olur değişiklikler". Bu çakışmaların otomatik olarak çözülmesini sağlamak için yapabileceğim bir şey var mı? Çatışırken nasıl çatışmaların olabileceğini bile anlamadım!

cevap

3

Çakışmalar çakışmalardır ve git bunları sizin için gerçekten çözemez. Sadece bir insan, karşılıklı olarak iki değişiklikten hangisinin doğru olduğuna emin olabilir.

Bir rebase sırasında neden anlaşmazlıklara girebilirsiniz? Bu gerçekten farklı tarihle sonuçlanan bir birleştirme işlemiyle aynı türden bir operasyon. bir şey de yapılan X işlemek bir değişiklik ile çakışan B taahhüt varsa için X içine D birleşti sanki

- A - B - C - D 
    \ 
    X 

çıkan içerik bulunmaktadır aynı olmalıdır: Burada D taahhüt üzerine X taahhüt rebase varsayalım çatışmalar birleştirilecek. Birleştirme veya yeniden oluşturma işleminin önemi yok.

+0

Ancak, yalnızca üç dizini (SVN standart düzeni) ekleyen tek bir işleme yeniden karar verdiğimde nasıl anlaşılabilir? – yawn

+1

@yawn: Peki, çatışmalar neler? Bazı içeriği geri almalısınız. – Cascabel

+0

Çatışmaların önceki birleşmelerden kaynaklandığını düşünüyorum - bu isyan boyunca bir şey bir taahhütle çözülmüş olan birleşmelerle çatışabilir mi? – yawn

İlgili konular