Friday, March 16, 2012

TFS'de çekip giden umarsız takım arkadaşı ya da "Başka Kullanıcı Değişiklik İptali"

Team Foundation Server, işin uzmanlarına göre VSS'den çok daha iyi bir Kaynak Kod Yöneticisi. (Yani sadece bu noktadan değerlendirince, çünkü TFS direkt olarak VSS ile kıyaslanamayacak kadar genişletilmiş bir araç.) Ancak kolay olan daha evlâ dedirtecek bazı durumlar da her zaman olmuyor değil:

Diyelim ki ekip olarak TFS kullanıyorsunuz. Ekipten biri ayrıldı ve siz aynı dosyalarda çalışmalar yapıp dosyanın daha düzgün sürümünü elde ettiniz. Ancak Source Control Explorer hep o dosyaların diğer kişide bekelemede olduğunu söyleyip duruyor. Hatta check-in lerinizden sonra da dosyanın kenarında güzel bir kilit ikonu yerine gıcık bi adam ikonu çıkıyor. Nasıl olacak da o değişiklikleri iptal ederiz?

Önce bu terimi türkçe olarak internette aramaya çalışırız; mesela "TFS Başka Kullanıcı Değişiklik İptal", tahmin edebileceğiniz gibi HİÇ kaynak bulunmaz. (Ta ki bu yazı yazılana kadar) Başka birkaç denemeden sonra, çat-pat ingilizcelerimizle ingilizce arama yaparsak, mesela: "TFS how to undo other users check-out" diye bir şansımızı deneyelim. Oley. Birsürü kaynak çıktı. Eminim biri işe yarar diye yeni onlarca sekme açmaya başlıyoruz. MSDN kaynaklı tüm yönlendirmelerde, garip bir Visual Studio Command Promt(VSCP) kullandırım hırsı olduğunu görünce, kendi kendimize "üf aman iyi bari olsun da komutla olsun" diye söylene söylene ve aynı zamanda üşene üşene 8 ya da 10 yere tıklayarak VSCP yi açıyoruz. (Bu konuda microsoft u çok tutarlı bulmuyorum. Bir yandan herşeyi arayüz programlarıyla basitleştirmekte olmayı felsefe edinen firma, diğer yandan nerdeyse her türlü düzenleme için VSCP açtırıyor nedense.) Sonra cins bir komut yazmaya başlıyoruz; öyle bir komut var ki, parametre olarak bir tek TCKimlik numarasıyla nüfus cüzdanı seri numarası girmediğimiz kalıyor. Uzun uzun yazdıktan sonra, işe yaramadığını (en azından benim durumumda) görüyoruz. 

Aramalara devam edince aslında çok daha basit bir yol olduğunu fark ediyoruz. Ancak bu arada 7 saate yakın bir zaman geçmiş oluyor. İşte sizin de bi 7 saatiniz gitmesin (ya da bir dahaki sefere en azından kendimin 7 saati daha gitmesin) diye yazıyorum:

Evvela TFS Sunucusu üzerinde  "Undo other users' changes"  ve  "Unlock other users' changes" haklarınız olmalı. Bu haklar nasıl yönetiliyor bu konuya girmek istemiyorum çünkü şu an 5.paragrafı yazdığımı ve hala konuya giremediğimi fark ettim.

TFS Power Tools (TFS 2010) ya da TFS Power Tools (TFS 2012)  kurulur. 

Daha sonra: 
  1. Source Control Explorer Açılır (Visual Studio içinde) 
  2. Tek dosyadaki değişiklik için dosya üzerinde, birden çok dosyada değişiklik için dosyaların bulunduğu dizin üzerinde sağ tıklanır
  3. Find in Source Control ve ordan Status seçilir
  4. Find in Source Control diyaloğunda, Status checkbox işaretli kalsın
  5. Aramayı daratlmak için Wildcart veya username alanında "Display files checked out to:" textbox'ına birşeyler yazılabilir
  6. Find tuşuna basılır ve böylece bir liste gelecektir
  7. Gelen listede undo edilecek öğeler seçilir
  8. Sağ tıklanıp Undo denir.
  9. "Undo all selected changes?" sorusuna da ne dememiz gerektiğini söylemek etik olmaz sanırım.
Bir de Team Foundation Sidekicks diye 3.parti bir tool dan söz ediyorlar ama ben denediğimde sürekli hata verip kapandı. Zaten böyle 3.parti şeyleri pek fazla sevmiyorum. (Tabi kişisel tercihimdir.)

Kolay gelsin.