क्या मैं tfs 2008 में एक अलग शाखा को अनसुना कर सकता हूं?


105

मान लेते हैं कि मेरी टीम के कुछ डेवलपर ने अपने परिवर्तनों को आश्रय दिया जो उन्होंने शाखा ए में किया था और मैं शाखा बी पर काम कर रहा हूं। क्या मैं शाखा बी में अपने परिवर्तनों को अनसुना कर सकता हूं? (GUI या कमांड प्रॉम्प्ट द्वारा)


उपरोक्त कमांड का डेमो: Unshelve कमांड की मूल बातें
रोहित

जवाबों:


129

दृश्य स्टूडियो विद्युत उपकरण आप यह कर देना चाहिए।

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/"

2
ऊओह्ह्ह… कर्ट, मुझे लगता है कि तुमने अभी मेरा दिन बनाया है। मैं बाद में कोशिश करने जा रहा हूं।
Herms

आपको बिजली उपकरण कहां से मिलते हैं?
गय

3
हाँ, बिजली उपकरण आपको ऐसा करने देते हैं, लेकिन दुर्भाग्य से हर बार विलय बहुत गलत हो जाता है, इसलिए यह बेकार है।
टिम बुकर

मर्ज इतना बुरा नहीं है। मैंने पाया कि ऑटो मर्ज 90% मामलों में काम करता है।
जस्टिन रुड

2
बस कोशिश की। मैंने कई फ़ाइलों को शेल्फ़सेट के भीतर स्थानांतरित किया और दुर्भाग्य से यह अच्छी तरह से काम नहीं करती है। आपको इन सभी फ़ाइलों को मैन्युअल रूप से "माइग्रेट" करने की आवश्यकता है (इसमें कोई बहु-चयन भी नहीं है)। और फिर उन्हें कार्यक्षेत्र में नई फ़ाइलों के रूप में जोड़ा जाता है। मैं इसका उपयोग नहीं कर सकता, क्योंकि मैं इसे अब मर्ज नहीं कर सकता।
स्टीफन स्टाइनगर

34

वैकल्पिक समाधान tfpt कि प्रत्येक फ़ाइल को मैन्युअल रूप से मर्ज करने से बचा जाता है

Tfs पॉवर टूल के साथ समस्या यह है कि आप एक 'आधारहीन मर्ज' कर रहे हैं ताकि हर फाइल की पुष्टि हो सके । मेरे पास 800 से अधिक फाइलों का एक समतल था और मैं कभी भी 'ऑटो मर्ज' बटन पर भरोसा नहीं करता था और बदले में प्रत्येक फाइल से गुजरना नहीं चाहता था - इसलिए मुझे दूसरा रास्ता खोजना पड़ा!

  • टीएफएस शेल्वसेट साइडकिक को डाउनलोड और इंस्टॉल करें ।
  • उपकरण VS2010 में 'टूल्स' के अंतर्गत आता है
  • 'शेल्वसेट साइडकिक' टूल चलाएं, अलमारियों को दिखाने के लिए खोजें पर क्लिक करें
  • अपनी अलमारियों पर राइट क्लिक करें और 'Export Shelveset' चुनें
  • एक खाली स्थान पर सहेजें जैसे C:\temp\shelveset-name
  • अब एक पूरी निर्देशिका संरचना है जिसमें सिर्फ नई फाइलें हैं

(नोट: निर्यात करते समय कोई प्रगति पट्टी नहीं है - इसलिए यदि आपके पास एक बड़ी समतल सूची है जिसे निर्यात करने में लंबा समय लगता है तो आपको बस Windows Explorer (फ़ाइल> गुण> आकार) में जांचना होगा कि फाइलें अभी भी नीचे आ रही हैं यदि आप सोचो यह जम गया है)।

अब आपको बस उन्हें Windows Explorer के साथ नई शाखा में कॉपी करना होगा।

यह मेरे लिए काम किया:

  • पहले पूरे समाधान की जाँच (नई शाखा में)
  • उस उपाय को बंद करें
  • वीएस ( उपकरण ऐसा करने के लिए ) के भीतर से टीएफएस ऑफ़लाइन लें - इसके लिए नीचे देखें कि यह महत्वपूर्ण क्यों है ...
  • Windows Explorer में फ़ाइलों की प्रतिलिपि बनाएँ। c:\temp\shelveset-nameनई शाखा के अनुरूप करने के लिए निर्देशिका संरचना का नाम बदलना होगा। सुझाव: सुनिश्चित करें कि आप सही जगह पर कॉपी करें !!!
  • वी.एस. ऑनलाइन लाओ
  • इसे सभी परिवर्तनों को खोजना चाहिए और नई फ़ाइलों को जोड़ना चाहिए
  • यदि यह आपको स्रोत-केंद्र को बांधने के लिए कहता है तो सुनिश्चित करें कि नई शाखा के लिए पथ सही है।
  • परीक्षण - और फिर नई फ़ाइलों की जाँच करें

महत्वपूर्ण: मैंने पाया है कि यदि आप पहली बार टीएफएस ऑफ़लाइन नहीं लेते हैं, तो आप बिना किसी लाल चेक मार्क के किसी भी नई फाइल (अपने अनशेल्व परिवर्तन से) को समाप्त करेंगे और आपको फिर से शामिल करना होगा और उन्हें फिर से शामिल करना होगा। उन्हें जोड़ने के लिए। अगर किसी के पास इस समस्या का वैकल्पिक हल है, तो मुझे यह जानना अच्छा लगेगा - ताज़ा काम नहीं करता।


यह विधि बड़ी अलमारियों के लिए आसान है और वह है जिसका मैंने अनुसरण किया है। धन्यवाद!
ऐनी

यह विधि वास्तव में बड़ी अलमारियों के लिए बेहतर है
आमिर

वैसे आप बिना टीएफएस ऑफ़लाइन लेने से दूर हो सकते हैं। लेकिन मुझे यकीन नहीं है कि यह इसके लायक है। मैंने जो किया वह तुलनात्मक कार्रवाई को चलाने के लिए था - प्रासंगिक फ़ोल्डर में संदर्भ मेनू से स्रोत नियंत्रण एक्सप्लोरर में खोलें। एक आउटपुट को फ़िल्टर कर सकता है जो केवल उन वस्तुओं को दिखा सकता है जो अलग हैं। फिर यह उन पर एक से अधिक चयन करने की अनुमति देता है और एक बार में उन सभी को चेक आउट करता है। लेकिन मुझे लगता है कि TFS को ऑफलाइन लेना उससे कहीं तेज और सरल है।
मार्क

दुर्भाग्य से, यह मेरे लिए काम नहीं करता है जब मेरे पास अलमारियों में "जोड़" परिवर्तन होते हैं। मुझे एक त्रुटि मिली "आश्रित फ़ाइल को पुनः प्राप्त करने में विफल। एक फ़ाइल पर लंबित परिवर्तन आवश्यक है"।
जॉन सॉन्डर्स

@ जॉनसुंडर्स का मतलब है कि किसी भी जोड़े या विशेष रूप से जोड़े के साथ एक अलमारियाँ ? मुझे वर्षों में ऐसा करने की आवश्यकता नहीं है :)
साइमन_वेअर

1

शेल्फ जानकारी में उस विशिष्ट पथ को शामिल किया गया है जिस पर वह जाता है। दुर्भाग्य से मैं किसी भी स्थान के लिए किसी भी स्वचालित तरीके से अनसुना नहीं कर सकता, इसके अलावा किसी भी स्थान पर इसे छोड़ दिया गया था। जिस समय मैं यह करना चाहता था, मुझे नई शाखा में बराबर फ़ाइलों की जांच करनी थी, पुरानी शाखा से अनचाहे, फिर मैन्युअल रूप से फ़ाइलों की प्रतिलिपि बनाएँ।

संपादित करें: ठीक है, मुझे लगता है कि मैं इसे कठिन तरीके से कर रहा था। मुझे कर्ट के समाधान की कोशिश करनी होगी। :)


0

मैंने इसे पूरा करने के लिए अच्छा समय बिताया और मेरे पास इससे उबरने के लिए कुछ मुद्दे थे। यह संभव है लेकिन यहाँ कुछ मुद्दों और इन मुद्दों का पालन करने के लिए कुछ नियम हैं

त्रुटि:

कार्यक्षेत्र निर्धारित करने में असमर्थ

स्रोत शाखा रूट फ़ोल्डर से कमांड चलाकर इस विशेष समस्या को हल किया गया था । यह 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 के खिलाफ ठीक काम करता है?

संक्षेप में

  • CMD या DevCMD का उपयोग करें - कोई फर्क नहीं पड़ता
  • स्रोत शाखा रूट फ़ोल्डर से कमांड चलाएं
  • विशिष्ट VS के लिए टीम एक्सप्लोरर सर्वर कनेक्शन सत्यापित करें
  • टीएफ पावर टूल्स 2013 टीएफएस वी 15 के खिलाफ काम करता है , कम से कम माइग्रेट विकल्प काम करता है

0

निम्न चरणों का उपयोग छोटे आकार के अलमारियों (~ 20 फाइलें या उससे कम) के लिए किया जा सकता है।

  1. समतल और लक्ष्य शाखाओं पर, सभी लंबित अपडेट्स को चेक इन या रोल बैक करके प्रारंभ करें।
  2. अलमारियों की शाखा पर, लागू अलमारियों से फ़ाइलों को अनचेक करें।
  3. लक्ष्य शाखा पर, मौजूदा फ़ाइलों में से कोई भी चेकआउट करें जो अनशेल्ड शेल्वेट में थीं।
  4. उन फ़ाइलों की पहचान करने के लिए लक्ष्य शाखा पर उन समतल शाखा पर अनचाही फ़ाइलों की तुलना करें, जिन्हें मर्ज अपडेट (यदि कोई हो) की आवश्यकता होती है।
  5. यदि आवश्यक हो, तो मैन्युअल रूप से पहले चरण की लागू फ़ाइलों में मर्ज अद्यतन करें और इन फ़ाइलों को लक्ष्य शाखा कार्यक्षेत्र में सहेजें।
  6. समतल शाखा कार्यक्षेत्र से लक्ष्य शाखा कार्यक्षेत्र में अन्य समतल फ़ाइलों की प्रतिलिपि बनाएँ।
  7. फ़ाइलों में जाँच के साथ लक्ष्य शाखा कार्यक्षेत्र में नई अद्यतन की गई फ़ाइलों की तुलना करें। आवश्यकतानुसार कोई सुधार करें।
  8. लक्ष्य शाखा पर नई अपडेट की गई फ़ाइलों की जाँच करें।
  9. समतल शाखा पर अनहेल्दी फ़ाइलों को रोलबैक करें।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.