SORU
7 ŞUBAT 2010, Pazar


Team Foundation Server - Tarih ile Kaynak Taşıma

En iyi yaklaşım, tarih, başka bir Takım Projesi için Takım Projesi ile hareketli kaynak kodu olabilir merak ediyordum. Geri yükleme olacağız sistemi bu işlevleri kullanmak vermedi gibi iş kalemleri, raporlama, ya da SharePoint siteleri ile ilgili değilim. Bu nedenle isteyen geçmek için farklı bir Takım Projesi de etkileniyor olması, özgün uygulaması (eski bir yedek oldu yürütülen tarafından bir üçüncü taraf) kullanarak bir üçüncü taraf işlem şablonu bunu istemiyoruz kullanın ileri doğru gidiyor. Çalışma öğesi izleme kullanan ve geçiş tamamlandıktan sonra raporlama başlamak istiyoruz.

TFS Integration Platform bir olası senaryo gibi görünüyor. İşlem şablonunu değiştirmek için, belgelerine göre kullanılabilir. Ancak, eğer tf.exe hareket sözdizimi işe yarayacak merak ettim? Gibi bir şey

hareket $/ProjectA $/ProjectB tf.exe

Bu komut bir yeniden adlandırma işlemi gibi, "" içerik menüsü Kaynak Explorer gibi bir silme ve ekleme işlemi. Kontrol kalemi Hareket ile hareket halinde iken çalışır anladığım kadarıyla. Ayrıca, tf.exe hareket yolu aslında ortak kod altında klasörlerle uygun Takım Projesi, farz $/ProjectA. kök, kaynak denetimi klasörü için bir proje ve $/ProjectB. kök, kaynak denetimi klasörü başka? Anahtar mümkünse geçmişi muhafaza edebilmek için.

Herhangi bir tavsiye veya ipuçları büyük mutluluk duyacağız!

Başka bir proje için dallanma bu senaryoyu ele Olabilir - - Branching Guidance belgelerinde Microsoft anlatılır gibi düzenleyin. Bu tarih büyük olasılıkla bu şube ile korunmuş olacağından cevap olabilir diye düşünüyorum. Ancak, Team Foundation bunu test etmek için şu anda 2008 örneği Sunucuya erişim yok.

CEVAP
7 ŞUBAT 2010, Pazar


Taşıma ve Yeniden takma. Kesinlikle fark, komut satırı veya kullanıcı arayüzü üzerinden Team Foundation Server'ın herhangi bir sürümü yok.

İkisi de geçmişi korumak. En azından 2005/2008, Versionedİtem tabloda aynı fiziksel öğeyi tutmak ne kadar sıklıkla ya da nasıl büyük ölçüde adı ve/veya üst yol değiştirir. Aslında bir "" (silme) sizin manuel bir sürü iş olmadan. yeniden sahte almak için yolu yoktur

Bu sürüm modeli teorik olarak çok saf olmakla birlikte, bazı pratik sorunlar vardır. Farklı öğeler ve farklı zamanlarda aynı ada işgal çünkü, elinize sağlık benzersiz göndermeden herhangi bir giriş tanımlamak için tam adı sürümü gerekiyor. Normalde eğer söylersen bu kısıtlama, ama bir kez sistem öğeleri yeniden adlandırmış, fark etmiyorsun[birşey] $/sürüm:oldversion dosyaya yeni-isim tfkarışık ve ya bir hata ya da atmak istememiş olabilirsiniz bir öğe üzerinde çalışır. Geçerli birleşimlerini (eski-isim isimli dosyaya yeni-isim newversion veya oldversion) geçmek için dikkatli olmak istiyorum şekilde davranır komutları sağlamak zorunda.

2010 elinize sağlık biraz hikaye değişiklikleri: örtünün altında bir şube delete içeren değişmesine neden oluyor. Öyle olsa bile, ve Tarih gibi günlük komutlar"," çok iyi; eski müşteriler 95% uyumlu. sahte Avantajı olduğunu o zaman birden fazla yeniden adlandırır sistemi ve yol dayalı öğe arama başlatmak için belirsiz bir hal olarak bahsettiğin için yukarıdaki sunucu irade kabul adını belirtin ve çalıştırın. Bu genel sistem performansını artırır ortadan kaldırır ve bir çok tuzak bu yabancı kullanıcıların sık sık düştü, maliyet değil, varlık olarak oldukça esnek ve tarihi korumak konusunda 0 hassas (örn olduğunda adı çarpışmalar sırasında bir Birleştirme iki şube).

Eldeki soruna dönersek...

O kadar basit değil$/projectA $/projectB tf yeniden adlandırın. Kaynak kontrol ağacında üst düzey klasörler Takım Projesi Oluşturma Sihirbazı için ayrılmıştır; onlara karşı standart tf komutları çalıştırabilirsiniz. İhtiyacınız ne gibi bir senaryo

Get-TfsChildItem $/ProjectA |
    select -Skip 1 |  # skip the root dir
    foreach {
        tf rename $_.serveritem $_.serveritem.replace("$/ProjectA", "$/ProjectB")
    }

[tabii ki, eğer $/ProjectA altında çok sayıda çocuk değilse orada el] bakabilirsin

Bu sorunlar dediğim gibi çok eski bir tarihe bakman için çok önemli gibi görünüyor beri bir an ayrıntılı ederim. Yeniden seni aradım sonratf tarih $/ProjectA/dosyanın tipi hakkında bilgi vermektedir.csolacak iş DEĞİL. Varsayılan olarak, tf komutları = "son." sürüm varsayalım Bu alternatiflerin herhangi bir irade ister tam tarihi:

  • tf tarih $/ProjectA/dosyanın tipi hakkında bilgi vermektedir.cs;1234nerede değişiklik 1234 hareket önceydi
  • tf tarih $/ProjectB/dosyanın tipi hakkında bilgi vermektedir.cs;5678nerede değişiklik 5678 taşındıktan sonra oldu. Yoksa sadece sürüm ihmal olabilir.

Eksiksiz ve hata ayıklama amacıyla son bir alternatif

  • tf tarih $/ProjectA/dosyanın tipi hakkında bilgi vermektedir.cs -slotmode. Tek hareket öncesinde gerçekleşen değişiklikleri göreceksiniz, ancak aynı zamanda dolar/ProjectA/dosyanın tipi hakkında bilgi vermektedir yaşamış olabilir herhangi bir diğer öğe geçmişini görürsünüz.cs "yuva" önceki veya sonraki öğeye altına taşınmış B.

(2010), "" varsayılan davranıştır;- İtemMode arama yolu tabanlı yerine 2008 gibi tarih boyunca izlenmesini talep etme seçeneği vardır.) mod slot elinize sağlık

- Hayır, dallanma DÜZENLEMEK harika bir alternatif değil. Dallanma sistemi ve meta & ProjectB tam geçmişini iz bırakıyor iken, 2008 yılında pek kullanıcı dostu değil. Çok zaman öğrenme harcamak için Plantf birleştirirkomut (UI eşdeğer). 2010 dramatik çoklu dallar üzerindeki değişiklikleri görselleştirmek için yeteneğini geliştirir, ama hala bir isim ver alırsın temiz birleşik bir deneyim değil.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Angry Paintballer

    Angry Paintb

    8 Ocak 2012
  • Google Developers

    Google Devel

    23 AĞUSTOS 2007
  • Professor Messer

    Professor Me

    27 NİSAN 2007