2012-02-10 9 views
19

Aşağıdaki temel Ağaç çatışmasına rastladım: Yerel ekleme, gelen birleştirme.Ağaç çatışmasını çözmek için 'onların-çakışma' nasıl kabul edilir: Yerel eklenti, gelen eklenti birleştirme eki

ben onu çözmeye svn resolve --accept working file kullanabilirsiniz biliyorum ama SVN beni gelen versiyonunu kabul etmek accept their-conflict kullanmak engeller.

Yerel dosyamın yerini gelen dosya ile nasıl değiştirebilirim? svn resolved file'u herhangi bir şekilde kullanmak mümkün mü?

+0

Bir seçenek, yerel dosyanızı yoldan ayırmak, bir 'svn update' yapmak, dosyanızı geri koymak ve bir' svn commit' yapmak. Muhtemelen bunu yapmak için "doğru" bir yol değil, ama muhtemelen SVN komutları ile oynamaktan çok daha basit. – aroth

+0

@aroth, bu dosyalar zaten hem gövde hem de branşta var (arka plan: Şubeyi haftada bir gövdeye bağlıyorum), aslında, dalda bir tanesini kullanmak için dalda bir tane kullanmak istiyorum. Bu dosyaları gövdede silmek, sonra da işlemek, sonra da onları şubeden birleştirmek, değil mi? –

+0

Sorununuzu çözdünüz mü? –

cevap

11

yapılacak doğru şey bir önceki --dry vadede bu sorunu tespit etmek ve birleştirme yapmadan önce svn delete ile yerel çelişkili dir silmek olduğunu.

İlk senaryo: Halihazırda yapılmış birleştirme ile çalışma kopyası. Çözüm: Çalışma kopyasını silin, temiz bir kopyayı kontrol edin ve doğru olanı yapın.

İkinci senaryo: Zaten svn resolve --accept=working'dan sonra yanlış dizinler alındı.

Çakışan dizini svn delete ve mergeinfo görmezden gelen çakışan dizinin üst dizinden birleştirme işlemini yeniden yapmanız gerekir. Önceki çakışan dizinin dışındaki her nesneyi geri al (artık çakışma yok). Değişiklikleri kontrol edip onaylayın.

Ex. Çalışma kopyası un WC klasörü. A/conflictDir dizininde Kişisel çatışma:

cd A 
svn delete conflictDir 
svn merge --ignore-ancestry -rbeginRev:endRev <URLrepo/A> 
svn -R revert `ls | grep -v conflictDir` 
<... check ...> 
svn ci -m "conflictDir fixed" 
5

benim yerel dosya ile çatışma olan bir dosyayı güncelleştirmek svn benzer bir sorun vardı. Uzak kopyanın yerel kopyasını değiştirmesini istiyorum. Yaptığım şey svn delete file_name, ve sonra svn revert file_name. Uzak kopyaya geri döner. İlk svn silmesinin gerekli olup olmadığından emin değilim.

+0

Bana göre, 'rm' ile dosyanın silinmesi, çatışmanın kalmasına neden oldu, ancak 'svn delete' ile silindikten sonra ağaç çatışması düzeltildi. – tomjen

İlgili konular