TFS'de Raf Nedir?


317

Diğer ekip üyelerinin kaynak kodunu görebilmesi için TFS'deki raflar yalnızca yumuşak bir check-in mi?

yani raf kodu derlenmeyecek değil mi?

Yanıtlar:


453

Rafın birçok kullanımı vardır. Ana olanlar:

  1. Bağlam Değiştirme : Başka bir yüksek öncelikli göreve geçebilmek için çalışmayı geçerli görevinize kaydetme. Diyelim ki patronunuz içeri girdiğinde ve "Ahhh! Bug Bug Bug!" Derken yeni bir özellik üzerinde çalışıyorsunuz. ve mevcut değişikliklerinizi bu özelliğe bırakmanız ve hatayı düzeltmeniz gerekir. Çalışmanızı özellik üzerinde rafa alabilir, hatayı düzeltebilir, daha sonra geri dönüp değişiklikleriniz üzerinde daha sonra çalışmak için unshelve yapabilirsiniz.
  2. Değişiklik Kümelerini Paylaşma : Bir kod değişikliğini teslim etmeden paylaşmak istiyorsanız, başkalarının erişerek rafa erişmesini kolaylaştırabilirsiniz. Bu, eksik bir görevi başka birine (zayıf ruh) geçirirken veya bir çeşit test kodunuz varsa, başka birinin çalıştırması gerektiğini asla kontrol edemezsiniz. Bu incelemeler için kullanma hakkında diğer yanıtlara h / t , çok iyi bir fikirdir.
  3. İlerlemenizi kaydetme : Karmaşık bir özellik üzerinde çalışırken, kendinizi ilerlemenizi kaydetmek istediğiniz 'iyi bir noktada' bulabilirsiniz. Bu, kodunuzu rafa koymak için ideal bir zamandır. Oluşturma hatalarını düzeltmek için bazı CSS / HTML'yi hacklediğinizi varsayalım. Genellikle ona vurursunuz, doğru görünene kadar düşünebileceğiniz tüm olası çamurları tekrarlarsınız. Ancak, bir kez doğru göründüğünde, işaretlemenizi temizlemek için tekrar denemek isteyebilirsiniz, böylece bir başkası kontrol etmeden önce ne yaptığınızı anlayabilir. Bu durumda, her şey doğru olduğunda kodu rafa alabilirsiniz , o zaman yanlışlıkla tekrar kırırsanız, her zaman geri dönüp değişiklik ayarlarınızı alabileceğinizi bilerek işaretlemenizi yeniden düzenleyebilir ve serbest bırakabilirsiniz.

Başka kullanımları var mı?


16
Bir değişiklik
kümesini rafa çekerken

2
Raflarla ilgili Visual Studio belgelerinde bazı ek bağlamlar ve nasıl yapılacağı anlatılmaktadır.
Holistic Developer

1
Ayrıca, bir Gated yapısı tarafından, nihai bir işlem gerçekleştirilinceye kadar değişiklikleri saklamak için kullanılır.
Tore Østergaard

Fark ettiğim bir şey, Raf değişiklikleri mutlaka kodu geri döndürmez, ne de teslim edilecek dosyaların durumunu değiştirmez. Bu nedenle, örneğin hata değişiklikleri üzerinde çalışırken, hata değişikliği koduyla birlikte çalışmayı nasıl önlersiniz? raf kodunuz?
Jacques

Değişiklik kümesini yerel olarak koruma seçeneğini belirlediğinizde dosyaların teslim alınmış kaldığını fark ettim.
Jacques

105

Raf, check-in yapmadan kutunuzdaki tüm değişiklikleri kaydetmenin bir yoludur. Değişiklikler sunucuda devam eder. Daha sonra, siz veya takım arkadaşlarınızdan herhangi biri onları makinelerinizden herhangi birine "kaldırabilirsiniz".

İnceleme amacıyla da mükemmeldir. Bir check-in için ekibimde değişikliklerimizi rafa kaldırıyoruz ve değişiklik kümesinin değişiklik açıklaması ve adını içeren bir e-posta gönderiyoruz. Ekipteki kişiler daha sonra değişiklik kümesini görüntüleyebilir ve geri bildirimde bulunabilir.

Bilginize: Bir raf setini incelemenin en iyi yolu aşağıdaki komuttur

tfpt inceleme / raf kümesi: shelvesetName; kullanıcıAdı

tfpt, Team Foundation Elektrikli El Aletleri'nin bir parçasıdır


6
değişikliklerin ve e-posta bilgilerinin manuel olarak rafa kaldırılması için bugün hiçbir neden olmayacağına dikkat edilmelidir. Modern süreç bir kod incelemesi talep etmektir.
ChiefTwoPencils

34

Doğru. Bir raf oluşturursanız, en son sürümü alan diğer kişiler kodunuzu görmez.

Kod değişikliklerinizi sunucuya koyar, bu da muhtemelen çalışma bilgisayarınızdan daha iyi yedeklenir.

Evden çalışma isteğini hissettiğinizde, değişikliklerinizi başka bir makinede almanızı sağlar.

Diğerleri raflarınızı görebilir (bunun isteğe bağlı olabileceğini düşünüyorum), böylece bir check-in öncesinde kodunuzu inceleyebilirler.


Doğru. Bir raf oluşturursanız, en son sürümü alan diğer kişiler kodunuzu görmez. 1) TFS kodunu ne zaman kontrol edeceğim, o zaman ekip üyem en son alacağı takdirde kodu kendi sisteminde görecek mi? 2) Yani kodu hangi hesapta rafa çektiğimiz anlamına gelir, aynı hesaptan rafa kaldırılmış kodu sadece göreceğiz? yanılıyorsam lütfen beni düzeltin
Krish

İsterseniz diğer insanların raflarını görebilirsiniz.
teedyay

3
"Bir get son yapan başka insanlarda olmayacak, daha doğru olması için karşıdan kodunuzu"
sergiol

18

Bu tartışmaların çoğunda kaçırılan bir nokta, değişikliklerinizi sakladığınız SAME makinesine nasıl geri döndüğünüzdür. Belki çoğu için açık, ama benim için değildi. Bekleyen Değişiklikleri Geri Al'ı yaptığınıza inanıyorum - doğru mu?

Süreci şu şekilde anlıyorum:

  1. Mevcut bekleyen değişikliklerinizi rafa almak için projeyi sağ tıklayın, Raf, bir raf adı ekleyin
  2. Bu, sunucudaki değişiklikleri kaydeder (veya rafa koyar) (kimse onları görmez)
  3. Ardından, kodunuzu son check-in noktasına geri döndürmek için Bekleyen Değişiklikleri Geri Al
  4. Daha sonra geri döndürülen kod taban çizgisi ile yapmanız gerekeni yapabilirsiniz
  5. Şunları yapabilirsiniz herhangi bir zamanda değişiklik unshelve (bazı birleştirme çatışmasında gerektirebilir)

Bu nedenle, Raf yapmanız gerekebilecek bir işe başlamak istiyorsanız, başlamadan önce check-in yaptığınızdan emin olun, çünkü check-in noktası yukarıdaki Bekleyen Değişiklikleri Geri Al adımını uygularken geri döneceğiniz yerdir.


8
Raf kümesini oluştururken "Bekleyen değişiklikleri yerel olarak koru" onay kutusunun işaretini kaldırırsanız, bekleyen değişiklikleri geri alma adımını atlayabilirsiniz.
Michael J.

14

Bunlara her zaman rastlarım, şubelerle ilgili çok ek bilgiler:

Birden çok dalla çalışıyorsanız, raf setleri onları oluşturduğunuz belirli bir dala bağlıdır. Bu nedenle, rafta bir değişiklik seti pasının çok uzun süre kalmasına izin verirseniz ve farklı bir dalda unshelve yapmak zorunda kalırsanız, bunu elektrikli el aletlerinin Temmuz ayında piyasaya sürülmesi ile yapmanız gerekir.

tfpt unshelve /migrate

Konu Dışı, Ama Doğru :-)
Tore Østergaard

2
Bu yorum o kadar eski ki yığın taşması cevabı kurulmadan önce eklendi .quete kuruldu :-)
joshua.ewer

2

Raflar, değişikliklerinizin mevcut değişiklikleri etkilemeden kaynak kontrolünde saklandığı gibidir. Kaynak kontrolünde bir dosyayı iade ederseniz, mevcut dosyayı değiştirir ancak raf, kaynak kontrolündeki değişikliklerinizi depolamak gibidir, ancak gerçek değişiklikleri değiştirmeden.


1

@JaredPar: Evet, İncelemeler için Raf Kümelerini kullanabilirsiniz, ancak raf kümelerinin kendiniz / diğerleri tarafından üzerine yazılabileceğini ve bu nedenle uzun vadeli kararlı olmadığını unutmayın. Bu nedenle, mevzuatla ilgili incelemeler için hiçbir zaman temel olarak bir Shelveset kullanmamalı, bunun yerine bir check-in (Changeset) kullanmamalısınız. Gayri resmi bir inceleme için Tamam ama resmi (eg FTA ilgili) inceleme için değil!


0

Gated derlemelerini kullanıyorsanız, derleme tetiklendiğinde, derleme için gönderilen çalışma alanınızın bir raf kümesini oluşturur. Yapı başarısız olursa, raf kümesi reddedilir. Derleme başarılı olursa, bir değişiklik kümesi oluşturulur ve TFS'ye taahhüt edilir. Her iki durumda da, bu check-in / derlemeyi yapan kişinin Çalışma Alanını uzlaştırması gerekir.

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.