मान लेते हैं कि मेरी टीम के कुछ डेवलपर ने अपने परिवर्तनों को आश्रय दिया जो उन्होंने शाखा ए में किया था और मैं शाखा बी पर काम कर रहा हूं। क्या मैं शाखा बी में अपने परिवर्तनों को अनसुना कर सकता हूं? (GUI या कमांड प्रॉम्प्ट द्वारा)
मान लेते हैं कि मेरी टीम के कुछ डेवलपर ने अपने परिवर्तनों को आश्रय दिया जो उन्होंने शाखा ए में किया था और मैं शाखा बी पर काम कर रहा हूं। क्या मैं शाखा बी में अपने परिवर्तनों को अनसुना कर सकता हूं? (GUI या कमांड प्रॉम्प्ट द्वारा)
जवाबों:
दृश्य स्टूडियो विद्युत उपकरण आप यह कर देना चाहिए।
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
उदाहरण के लिए, ब्रांच 1 से ब्रांच 2 पर बनाए गए "शेल्व सेट नाम" नामक एक शेल सेट का उपयोग करें:
>tfpt unshelve "Shelve Set Name";domain\userName /migrate /source:"$/Project/Branch1/" /target:"$/Project/Branch2/"
वैकल्पिक समाधान tfpt कि प्रत्येक फ़ाइल को मैन्युअल रूप से मर्ज करने से बचा जाता है
Tfs पॉवर टूल के साथ समस्या यह है कि आप एक 'आधारहीन मर्ज' कर रहे हैं ताकि हर फाइल की पुष्टि हो सके । मेरे पास 800 से अधिक फाइलों का एक समतल था और मैं कभी भी 'ऑटो मर्ज' बटन पर भरोसा नहीं करता था और बदले में प्रत्येक फाइल से गुजरना नहीं चाहता था - इसलिए मुझे दूसरा रास्ता खोजना पड़ा!
C:\temp\shelveset-name
(नोट: निर्यात करते समय कोई प्रगति पट्टी नहीं है - इसलिए यदि आपके पास एक बड़ी समतल सूची है जिसे निर्यात करने में लंबा समय लगता है तो आपको बस Windows Explorer (फ़ाइल> गुण> आकार) में जांचना होगा कि फाइलें अभी भी नीचे आ रही हैं यदि आप सोचो यह जम गया है)।
अब आपको बस उन्हें Windows Explorer के साथ नई शाखा में कॉपी करना होगा।
यह मेरे लिए काम किया:
c:\temp\shelveset-name
नई शाखा के अनुरूप करने के लिए निर्देशिका संरचना का नाम बदलना होगा। सुझाव: सुनिश्चित करें कि आप सही जगह पर कॉपी करें !!!महत्वपूर्ण: मैंने पाया है कि यदि आप पहली बार टीएफएस ऑफ़लाइन नहीं लेते हैं, तो आप बिना किसी लाल चेक मार्क के किसी भी नई फाइल (अपने अनशेल्व परिवर्तन से) को समाप्त करेंगे और आपको फिर से शामिल करना होगा और उन्हें फिर से शामिल करना होगा। उन्हें जोड़ने के लिए। अगर किसी के पास इस समस्या का वैकल्पिक हल है, तो मुझे यह जानना अच्छा लगेगा - ताज़ा काम नहीं करता।
शेल्फ जानकारी में उस विशिष्ट पथ को शामिल किया गया है जिस पर वह जाता है। दुर्भाग्य से मैं किसी भी स्थान के लिए किसी भी स्वचालित तरीके से अनसुना नहीं कर सकता, इसके अलावा किसी भी स्थान पर इसे छोड़ दिया गया था। जिस समय मैं यह करना चाहता था, मुझे नई शाखा में बराबर फ़ाइलों की जांच करनी थी, पुरानी शाखा से अनचाहे, फिर मैन्युअल रूप से फ़ाइलों की प्रतिलिपि बनाएँ।
संपादित करें: ठीक है, मुझे लगता है कि मैं इसे कठिन तरीके से कर रहा था। मुझे कर्ट के समाधान की कोशिश करनी होगी। :)
मैंने इसे पूरा करने के लिए अच्छा समय बिताया और मेरे पास इससे उबरने के लिए कुछ मुद्दे थे। यह संभव है लेकिन यहाँ कुछ मुद्दों और इन मुद्दों का पालन करने के लिए कुछ नियम हैं
त्रुटि:
कार्यक्षेत्र निर्धारित करने में असमर्थ
स्रोत शाखा रूट फ़ोल्डर से कमांड चलाकर इस विशेष समस्या को हल किया गया था । यह SO पर कुछ उत्तरों के विपरीत है जहां वे "लक्ष्य" शाखा का उपयोग करने के लिए कहते हैं - नहीं, "स्रोत" का उपयोग करें:
cd [your !!source!! branch root]
tfpt unshelve /migrate /source:"$/MyCollection/Development/Maint1.1" /target:"$/MyCollection/Development/Maint1.2" "myShelveset;UserName"
इसके बाद दूसरा मुद्दा सामने आया। ऐसा लगता है कि यह TFS सर्वर से कनेक्ट नहीं हो सका। मुझे एहसास हुआ, मेरे पास कई वीएस स्थापित हैं और विभिन्न टीएफएस सर्वरों से जुड़े हैं। मैं VS12 का उपयोग कर रहा था और मेरे पास कार्यक्षेत्र और सर्वर कनेक्शन था। लेकिन मुझे यह महसूस नहीं हुआ कि काम के लिए TFPT2013 के लिए उसी कनेक्शन को वीएस 13 में दोहराया जाना चाहिए। यह एक ही सर्वर और कार्यक्षेत्र से जुड़ता है।
मैंने इसे TFPT2015 का उपयोग करके भी करने की कोशिश की, लेकिन मैंने इसे स्थापित किया और इसने TFPT.exe स्थापित नहीं किया इसलिए यह बेकार था। इसलिए मैंने TFPT2013 से TFS2015 की कोशिश की और इस विशेष कमांड के लिए काम किया। मुझे आश्चर्य है, क्यों नहीं, अगर VS12 / 13 TFS2015 के खिलाफ ठीक काम करता है?
संक्षेप में
निम्न चरणों का उपयोग छोटे आकार के अलमारियों (~ 20 फाइलें या उससे कम) के लिए किया जा सकता है।