Subversion kullanarak iki dal revizyonunu birleştirin


95

Rev 10 ile HEAD rev arasında http: // url-of-a- a'da gerçekleşen tüm değişiklikleri birleştirmek ve bunları http: // url-of-branch-b'ye uygulamak istiyorum .

Gibi bir şey...

svn merge -r 10:HEAD http://url-of-branch-a 

Mümkün mü? Eğer öyleyse, sözdizimi nedir?

SVN istemcisini unix komut satırından çalıştırıyorum. SVN istemci sürümü 1.4'tür

DÜZENLEME: Evet, benim özel çözümüm ...

  1. dizini değişiklikleri almak isteyen çalışma kopyamın konumuna değiştir (şube-b)
  2. svn merge -r 10: HEAD http: // dal-of-a

Bu, 'dal-a'dan' dal-b'ye değişiklikleri birleştirir


4
Ayrıca şubenin ne zaman alındığını da bilmeniz gerekir. Daldığınız revizyon numarasını almak için şubenizde bunu (svn log --stop-on-copy.) Yapabilirsiniz.
jmc

@jmc SVN 1.5'in piyasaya sürüldüğü 2008 yılından bu yana artık buna ihtiyacınız yok, AFAIR
bahrep

Yanıtlar:


55

Ödeme URL'si A. URL B'yi çalışan A kopyanızla birleştirmek için SVN birleştirmesini kullanın. Commit A.

Veya tam tersi tabii ki :)


127

Süreç aşağıdaki gibidir:

  1. B şubesinin çalışan bir kopyasını oluşturun ( svn checkout http://branch-b)
  2. A dalındaki değişiklikleri B'nin çalışan kopyasıyla ( svn merge -r 10:HEAD http://branch-a .) birleştir
  3. Taahhüt (çatışmaları çözdükten sonra) kopyasını B şubesine b ( svn commit)

Svn birleştirme semantiği için man sayfasına (yardım dosyası) bakın. Svn merge'in sonuçları her zaman çalışan bir kopyaya döktüğünü gösterir.

Tüm ayrıntılar için SVNBook'a göz atın .


Ayrıca tutulmada SVN eklentisini kullanarak nasıl yapılacağına dair bir fikir verebilir misiniz?
Snehal Masne

Bu benim için çalışıyor: svn merge --force --allow-mixed-revisions -r 10: HEAD branch-a
Minh Nguyen

2
neden revizyon 10'u HEAD'e belirliyoruz? Anlık görüntü olarak neden tek bir revizyon yerine iki revizyon uç noktası kullanılsın? "10 to HEAD" hangi dalı ifade eder?
ahnbizcad

2

Çoğunlukla mergesvn deposunda yapmaya çalışarak kafamızı karıştırırız , doğrudan svn repo ile birleşemeyiz, aşağıdaki gibi yerel makinenin çalışma kopyasına birleştirebiliriz:

  • Bu çalışma kopyası destination URLbirleştirilmiş olmalıdır (yani ödeme hedefi).

  • çalışma kopyasını birleştirme ile source URLbirleştirin.

  • commit hedefe.

En İyi Uygulama : Birleştirin, Birleştirin.

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.