Şubeyi gövde ile birleştir


119

TortoiseSVN kullanarak, bir dalda yaptığım değişiklikleri almam ve ardından bunları gövde ile birleştirmem gerekiyor.

Bu projedeki tek geliştirici benim, bu yüzden bagajın değişmediğini biliyorum. SVN'yi sonunda ekibimin kullanabilmesi için öğreniyorum.

Temel olarak, bagajımın aynı dal gibi görünmesini istiyorum.

Pre-svn dünyasında, sadece dal klasörümdeki dosyaları kopyalar, ana klasördeki dosyaları siler ve sonra dalı gövdeye kopyalardım.

TortoiseSVN, ben denedim Reintegrate a branch, Merge a range of revisionsve Merge two different trees. Aslında hiçbir şey bagajı değiştirmiyor gibi görünüyor. Ayrıca bagajın üstünde dallanmayı da denedim. Bu bana bagajın zaten var olduğunu söyleyen bir hata veriyor.

Yanıtlar:


157

Senin durumunda:

  1. Çalışan kopyayı bagaja geçirin (SVN Anahtarı)
  2. Şubeyi çalışma kopyasıyla birleştirin (SVN Birleştirme)
  3. Her şeyin hala derlendiğinden ve çalıştığından emin olun
  4. Çalışma kopyasını tamamlayın (gövde)
  5. Şubeyi öldürmeyi düşünün

Bir ekip ortamında , önce şubenizdeki ana hattaki en son değişiklikleri birleştirmenizi, her şeyin derlendiğinden ve çalıştığından emin olmanızı, ardından yukarıdaki adımları gerçekleştirmenizi öneririm (değişiklikleri zaten test ettiğiniz için bu önemsiz olacaktır).


Güncelleme

5. adımda şubeyi öldürmekten bahsediyorum. Bunun nedeni, bir unsurun bir dalının gövdeye girdiğinde, gövdenin bir parçası olarak düşünülmesi gerektiğidir. Bu durumda, kimse üzerinde çalışmasın diye şube öldürülmelidir. Bu özellik için büyük değişiklikler gerekiyorsa, bunun için yeni bir şube oluşturmalısınız.

Öldürmediğim tek dal, belirli bir sürüm artık desteklenmiyorsa, bakım ve serbest bırakma dallarıdır.

Ne olursa olsun, her revizyona her zaman erişebilirsiniz, bu nedenle bir dalı öldürmek yalnızca diğer geliştiricilerin çalışmayan bir dalda geliştirme yapmasını önlemek için kullanılır.


5. adımın altına eklediğiniz yorum muhtemelen 1. adım olabilir mi? TortoiseSVN Birleştirme iletişim kutusundan "Bir dalı yeniden entegre et" seçeneğini kullanmak istediğinizde, ilk olarak ana hattaki (veya temel daldaki) tüm değişiklikleri birleştirmek bir gerekliliktir.
jbvo

1
İlk adım (çalışma kopyasını ana hat olarak değiştirin) yalnızca ayrı bir dal ve ana hat çalışma kopyası yoksa gerekli midir?
Jeff B

1
Sanırım burada eksik olan önemli bir ayrıntı parçası, her adımda hangi klasöre tıkladığınızdır, böylece her adımın bağlamını bilirsiniz.
MacGyver

10

Sanırım TortoiseSVN 1.8.5, Merge | İki farklı ağacı birleştirmek işe yaramalı. Bir dalı / etiketi ana gövdeye geri birleştirdiğinizde, işin püf noktası, Gönderen URL'nin ana hat ve Kime'nin etiket / dal olmasıdır. Garip ama gerçek.

Kaynak: Birleştirme

Çalışan kopyanızda olmayan ancak etiket / dalda bulunan dizinler için çakışma hataları alabilirsiniz. Sadece çatışmayı kabul edin ve birleştirmeyi yeniden yapın.


Tortoisesvn sitesindeki talimatları izledikten sonra, birleştirmeden sonra gövdeyi hiçbir şey değiştirmeden gerçekleştirdiğinizden emin olun. Gerçekleştirilmesini istemediğim birkaç şeyin işaretini kaldırmayı denedim, bu da bazı yinelemeli olmayan tamamlama uyarısına neden oluyordu. Ayrıca, talimatların söylediği gibi şubeyi silmeyi düşünün.
goku_da_master

6

Önce çalışma kopyanızı bagaja getirin. Ardından, şubeden gövdeye kadar bir dizi revizyonu yapın. Bu iletişim kutusu tamamlandıktan sonra, farklılıklar çalışan ana hat kopyanızda bekleyen değişiklikler olacaktır. Onları, değişiklikleri çalışma kopyanız üzerinde manuel olarak yapmış gibi işlemeniz gerekir.

Benim kullanımımda, derleme sırasında gövdeyi çalışır durumda tutmak ve dalları döndürmek daha tipiktir. Öyleyse, yapmam gereken tek birleştirme, gövdeden bir hata düzeltmesi almak ve onu en son yapı dalına koymak ve o dalı yeniden yayınlamak. Benim için bunu yapmanın en kolay yolu, çünkü senin birleşme bulduğun gibi, en iyi ihtimalle beceriksiz. En son şubeyi ve santrali makinemde kontrol etmek ve dosyaları tam anlamıyla gövdeden şubeye kopyalamak ve her ikisini de kontrol etmek.


2
Dosyaları "kopyalarken" çok dikkatli olunmalıdır. Gizli svn dizinlerini bozmamak için TortoiseSVN'nin dışa aktarımı gibi bir şey kullanın.
Milimetric

3

TortoiseSVN 1.9.3, Yapı 27038 kullanıyorum.

Şubeyi ana hat ile birleştirmek için aşağıdaki adımları izleyin.

1) Gövde çalışma kopyasına sağ tıklayın ve aşağıdaki seçeneği seçin.

görüntü açıklamasını buraya girin

2) Bagaja Dal Birleştirme durumunda, aşağıda gösterildiği gibi ikinci seçeneği seçin ve ileriye tıklayın

görüntü açıklamasını buraya girin

3) Kimden: alanına, bagajın tam klasör URL'sini girin. Bu kulağa yanlış gelebilir, ancak dal değişikliklerini eklemek istediğiniz başlangıç ​​noktasının ana hat olduğunu unutmayın. Alıcı: alanına, özellik dalının tam klasör URL'sini girin.

görüntü açıklamasını buraya girin

4) İleri'ye tıklayın ve test birleştirmeyi yapın

görüntü açıklamasını buraya girin

5) Test birleştirme başarılı olursa, Birleştir düğmesine tıklayın.

6) Birleştirme başarılı olduktan sonra değişiklikleri gövdeye uygulayın.

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.