Yanıtlar:
Visual Studio Elektrikli El Aletleri bunu bildirmeniz gerekir.
C:\src\2\Merlin\Main>tfpt unshelve /?
tfpt unshelve - Unshelve into workspace with pending changes
Allows a shelveset to be unshelved into a workspace with pending changes.
Merges content between local and shelved changes. Allows migration of shelved
changes from one branch into another by rewriting server paths.
Usage: tfpt unshelve [shelvesetname[;username]] [/nobackup]
[/migrate /source:serverpath /target:serverpath]
shelvesetname The name of the shelveset to unshelve
/nobackup Skip the creation of a backup shelveset
/migrate Rewrite the server paths of the shelved items
(for example to unshelve into another branch)
/source:serverpath Source location for path rewrite (supply with /migrate)
/target:serverpath Target location for path rewrite (supply with /migrate)
/nobackup Skip the creation of a backup shelveset
Örneğin, Branch1'de oluşturulan "Raf Kümesi Adı" adlı bir raf kümesini Branch2'ye birleştirmek için şunu kullanın:
>tfpt unshelve "Shelve Set Name";domain\userName /migrate /source:"$/Project/Branch1/" /target:"$/Project/Branch2/"
Her dosyayı manuel olarak birleştirmek zorunda kalmadan tfpt'ye alternatif çözüm
Tfs güç aracıyla ilgili sorun, 'temelsiz birleştirme' yapıyor olmanızdır , bu nedenle her dosyayı onaylamanız gerekir . 800 dosyadan oluşan bir raf setim vardı ve "otomatik birleştirme" düğmesine asla güvenmedim ve sırayla her dosyaya gitmek istemedim - bu yüzden başka bir yol bulmalıydım!
C:\temp\shelveset-name
(Not: Dışa aktarırken ilerleme çubuğu yoktur; bu nedenle, dışa aktarılması uzun süren büyük bir raf kümeniz varsa, yalnızca Windows Gezgini'nde (Dosya> Özellikler> Boyut) dosyaların hala aşağı gelip gelmediğini kontrol etmeniz gerekir. donmuş olduğunu düşünüyorum).
Artık bunları Windows Gezgini ile yeni şubeye kopyalamanız yeterlidir.
Bu benim için çalıştı:
c:\temp\shelveset-name
yeni şubeye karşılık gelecek şekilde yeniden adlandırılması gerekecektir. İpucu: Doğru yere kopyaladığınızdan emin olun !!!Önemli: Önce TFS'yi çevrimdışına almazsanız, küçük bir kırmızı onay işareti olmadan görünen tüm yeni dosyalar (raftan çıkarma değişiklikler grubunuzdan) ile karşılaşacağınızı ve bunları hariç tutup tekrar dahil etmeniz gerektiğini öğrendim. eklemelerini sağlamak için. Herhangi birinin bu soruna alternatif bir çözümü varsa bilmek isterim - tazeleme işe yaramıyor gibi görünüyor.
Raf bilgisi, gittiği belirli yolu içerir. Maalesef, rafa kaldırıldığı konum dışında herhangi bir konuma rafa kaldırmanın otomatik bir yolunu bilmiyorum. Bunu yapmak istediğim zamanlarda, yeni şubedeki eşdeğer dosyaları kontrol etmem, eski şubeden ayırmam ve ardından dosyaları manuel olarak kopyalamam gerekiyordu.
DÜZENLEME: Sanırım bunu zor yoldan yapıyordum. Curt'ün çözümünü denemem gerekecek. :)
Bunu yapmak için çok zaman harcadım ve üstesinden gelinmem gereken birkaç sorun vardı. Mümkün ama burada birkaç sorun ve bu sorunları çözmek için uyulması gereken birkaç kural var.
Hata:
çalışma alanını belirleyemiyor
Bu özel sorun, komutun kaynak dal kök klasöründen çalıştırılmasıyla çözüldü . Bu, SO'daki "hedef" dalı kullanmayı söyledikleri bazı yanıtlara aykırıdır - hayır, "kaynak" kullanın:
cd [your !!source!! branch root]
tfpt unshelve /migrate /source:"$/MyCollection/Development/Maint1.1" /target:"$/MyCollection/Development/Maint1.2" "myShelveset;UserName"
Bundan sonra ikinci sayı ortaya çıktı. TFS sunucusuna bağlanamadı gibi görünüyor. Anladığım kadarıyla birden fazla VS yükledim ve farklı TFS sunucularına bağlandım. VS12 kullanıyordum ve çalışma alanı ve sunucu bağlantım vardı. Ancak TFPT2013'ün çalışması için aynı bağlantının VS13'te çoğaltılması gerektiğini fark etmemiştim. Aynı sunucuya ve çalışma alanına bağlanır.
Ayrıca TFPT2015 kullanarak yapmayı denedim ama yükledim ve TFPT.exe'yi yüklemedi, bu yüzden işe yaramazdı. Bu yüzden TFPT2013'ten TFS2015'e kadar denedim ve bu belirli komut için çalıştı. Merak ediyorum, VS12 / 13 TFS2015'e karşı iyi çalışıyorsa neden olmasın?
Özetlemek
Küçük boyutlu raf setleri için aşağıdaki adımlar kullanılabilir (~ 20 dosya veya daha az).