2010-09-13 20 views
6

Temizlemeye çalıştığım çok dağınık bir TFS yapısına sahibim (selefim sayesinde). Artık bir ana/çocuk ilişkisine sahip olmayan bir daldan diğerine seçmeli olarak getirme ihtiyacım olan bir durum var ve bu değişikliklerin paylaşılan gövde üzerinden geçmesini istemiyorum. Bunu nasıl yapabilirim?TFS'de, bir değişiklik kümesini alakasız bir dalda nasıl alabilirim?

Ben bir temelsiz birleştirme denedim - In TFS, how do I do a baseless merge on specific changesets? - hangi birleştirme hiçbir değişiklik olmadığını söyledi.

Elde etmek istediğim, bir değişiklik kümesi dışında bu TFS : Can a shelveset be restored to another location? gibi bir şeydir.

GIT'te bunun basit bir kiraz alımı olacağını düşünüyorum.

My yapısı şöyle görünür:

Y-C1-C2-C3 
/
X------------- 
    \ 
    Z 

Ve soru Ben X geçmeden Z'ye içine Y'den C2 alırım nasıl?

+0

olması gerektiğidir. Temelsiz birleştirme girişimde hangi seçenekleri kullandınız?/Force seçeneğini kullandınız mı? –

+0

Evet Yerde okuduğum ama aynı sonucu veren güç ve başka bir şey denedim - hiçbir değişiklik olmadı. Sonunda mermiyi ısırdım ve hepsini elle birleştirdim ... 14 saat sürdü ama en azından sonuçta% 100 eminim. – idieeasy

cevap

3

Benzer bir durumumuz var, bizim durumumuzda, birden fazla daldan bir "çizik" yapı dalına temelsiz birleştirme yapıyoruz. Bunu yapabilmemizin tek yolu, TFS API'sinden yararlanarak kendi hizmetimizi yazmaktır.

İyi haber şu ki, bunu birkaç yüz satırdan daha az bir kodla gerçekleştirebilmelisiniz.

temel adımlar şunlardır:

  • Bağlan
  • TFS
  • için VersionControlServer bir örneğini (en diyoruz VCS let)
  • aracılığıyla VCS.GetChangeset()
  • Yineleyin Do Çalışma alanı oluşturma alın
  • öğelerini içeren bir listeyi almak için Changes gerçekleştirin Biryapın Kaynak şubenizden hedef şubenize kadar olan her bir öğe için.
  • Hedef daldaki öğeleri kontrol edin.
  • Sil çalışma alanı
+0

Görünüşe göre el ile yapmanın bir kenara gitmesinin tek yolu budur (ki bu benim takımımı tutmak yerine yaptım). Basit/ortak bir sorun olmalı? – idieeasy

+0

En iyi uygulamalar, kiraz almak zorunda kalmamanız gerektiğini söylüyor. Bunu çok yapıyorsanız, dallanma stratejinizde bir sorun var. Bunun yerine dallanma özelliğini düşünmek isteyebilirsiniz. Bizim durumumuzda deneme için yapıyoruz. – Robaticus

+0

Kesinlikle haklısınız, dallanma stratejisi ile ilgili bir problem vardı ve bu soru, dalları birleştirmek için uğraştığım için bu sorun ortaya çıktı; – idieeasy

1

Onun daha basit Görsel stüdyo kullanarak bunu yapmak için.

Visual Studio'da, ilgisiz dalları birleştirmek için Kaynak Denetimi Birleştirme sihirbazını kullanın.

Seçici değişiklikleri birleştirme seçeneği vardır. Tek kısıtlama, değişikliklerin ardışık

+0

Ardışık olmayan değişikleri birleştirmek istiyorsanız, işin bitene kadar Kaynak Denetim Birleştirme Sihirbazını tekrar açmanız yeterlidir. Her birleştirme arasında veya sonunda bir taahhütte bulunmayı seçebilirsiniz. –

İlgili konular