TFS के लिए कार्यक्षेत्र पर वर्तमान परिवर्तन आईडी प्राप्त करें


80

मैं अपने स्थानीय कार्यक्षेत्र में वर्तमान में क्या परिवर्तन करूँ?

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

एक संभावित गलती जो हम कर सकते हैं वह यह है कि हम समाधान फ़ाइल पर इतिहास को देखते हैं, हालांकि समाधान फ़ाइल शायद ही कभी बदलती है जब तक कि आप एक नई परियोजना नहीं जोड़ रहे हैं / समाधान-स्तरीय परिवर्तन नहीं कर रहे हैं।

अंत में मुझे यह याद रखने की जरूरत है कि नवीनतम फाइलें क्या बदल रही थीं और उनके इतिहास को देखने के लिए मुझे याद रखना चाहिए।

क्या ऐसा करने के लिए इससे अच्छा तरीका है?


आप अपने वर्तमान परिवर्तन को क्यों जानना चाहते हैं?
इवाल्ड हॉफमैन

जब आपका कार्यक्षेत्र किसी बदलाव का प्रतिनिधि नहीं होता है तो क्या होता है? इस बात पर विचार करें कि आपने $/Aमैप किया है, और आपने एसेटसेट ए को पुनः प्राप्त $/Bकिया है, और आपने मैप किया है, और आपने ए बी परिवर्तन को पुनः प्राप्त कर लिया है। आपके कार्यक्षेत्र में क्या बदलाव है?
एडवर्ड थॉमसन 3

8
@ ईवाड समय पर वापस जाने पर विचार करें जब एक बग होने लगे। इसके लिए पिछले कार्यपत्रकों को प्राप्त करने के लिए अपने कार्यक्षेत्र पर कई बार "विशिष्ट संस्करण प्राप्त करें" ऑपरेशन करने की आवश्यकता हो सकती है जो बहुत थकाऊ, उदार और त्रुटि प्रवण हो सकते हैं। यह बताने में सक्षम है कि वर्तमान में कार्यस्थल पर कौन सा सटीक परिवर्तन है, किसी भी विकर्षण त्रुटियों से बचने और अपराधी की पुष्टि करने के लिए अत्यंत उपयोगी है। मुझे खुशी है कि आज मुझे वह कमान मिली।
लुई

1
मैं इस सवाल की सराहना करता हूं!
फर्नांडो एस्पिनोसा

5+ साल बाद आपका स्वागत है। @ एवाल्डहोफ़मैन के प्रश्न का उत्तर देने के लिए, मेरे परिदृश्य में, मैंने अपने कार्यक्षेत्र में कई बदलाव किए हैं और मैं यह देखना चाहता हूं कि जब मैंने अपना अंतिम 'प्राप्त' किया था तब से सर्वर पर क्या बदलाव आया है। मेरे मामले में, मुझे नहीं पता कि मैं आखिरी बार किस संस्करण में मिला था।
जेएमडी

जवाबों:


106

बक होजेस द्वारा आपका उत्तर MSDN ब्लॉग पर है: अपने कार्यक्षेत्र में नवीनतम परिवर्तन कैसे निर्धारित करें

अपने कार्यक्षेत्र के मूल (शीर्ष) से, cmd प्रदर्शन में:

tf history . /r /noprompt /stopafter:1 /version:W

4

tf.exe history . /rसीधे उपयोग करने का सामान्य उत्तर काम करता है, लेकिन यह बहुत धीमा हो सकता है। हमारे मामले में 10-15 सेकंड लगते हैं। अब मैं एक दो चरण की जांच का उपयोग करता हूं, पहले कुछ मनमानी फाइलों के संशोधन की जांच कर रहा हूं (मैं रूट फ़ोल्डर में फ़ाइलों का उपयोग कर रहा हूं)।

शक्तियों के साथ:

$tfexepath = "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\tf.exe"
$localpath = "C:\some\tfs\directory"

$result = & $tfexepath history $localpath /noprompt /stopafter:1 /version:W 
"$result" -match "\d+" | out-null
$id = $matches[0]

फिर / r फ्लैग का उपयोग करके रूट से खोज करें, लेकिन खोज को ऊपर पाए गए संशोधन से शुरू करने के लिए सीमित करें :

$result2 = & $tfexepath history $localpath /r /noprompt /stopafter:1 /version:$id~W        
"$result2" -match "\d+" | out-null
$id2 =  $matches[0]

#result:
Write-Host $id2 

हमारे कोड आधार के लिए, यह कुल समय 10-15 से 1.4-1.5 सेकंड तक नीचे लाता है।

जहां तक ​​मैं समझता हूं कि कोई कमियां या सीमाएं नहीं हैं, लेकिन मुझे लगता है कि यह एक छोटे भंडार में धीमा हो सकता है। - मुझे जानकर खुशी होगी।


1
बहुत बढ़िया विकल्प। मेरे रनटाइम को 55 सेकंड से 1.5 सेकंड तक नीचे ले गया। धन्यवाद!
बोब्रोस्कोक्स

1
.... रेट्रोस्पेक्ट में - आश्चर्यचकित हूं कि मैं msvc के साथ रह सकता हूं और खुशी है कि यह एक ऐसी चीज है जिसे मुझे केवल अतीत से निपटना था।
जोहान लुंडबर्ग

3

विज़ुअल स्टूडियो CMD चलाएं (मेरे मामले में, VS2015 के लिए कहा जाता है: "VS2015 के लिए डेवलपर कमांड प्रॉम्प्ट") और फिर अपने प्रोजेक्ट फ़ोल्डर में जाएं और निम्नलिखित कमांड निष्पादित करें:

tf history . /r /noprompt /stopafter:1 /version:W

2
धन्यवाद! उस उत्तर के बिना, मुझे अभी भी आश्चर्य होगा कि दृश्य स्टूडियो के भीतर "कमांड विंडो" फलक में कमांड क्यों काम नहीं कर रहा है।
ओजदो

1

यदि आप PowerShell का उपयोग करना चाहते हैं ( यह भी देखें , @kroonwijk के उत्तर के बराबर ):

  1. tfs को सक्षम करें स्नैपइन (एक बार, यदि पहले से नहीं है)

    add-pssnapin Microsoft.TeamFoundation.PowerShell

  2. मौजूदा बदलाव आईडी प्राप्त करने के लिए tfs cmdlet का उपयोग करें

    Get-TfsItemHistory <PATH_TO_PROJECT> -Recurse -Stopafter 1 -Version W


0

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

  1. आप जिस बदलाव के बारे में निश्चित होना चाहते हैं उसे चुनें और तुलना करें: यहाँ छवि विवरण दर्ज करें
  2. यदि आपके पास कोई अंतर नहीं है: यहाँ छवि विवरण दर्ज करें

    या, यदि केवल फ़ाइलें जो भिन्न हैं वे फ़ाइलें हैं जिनमें आपके पास लंबित परिवर्तन हैं: यहाँ छवि विवरण दर्ज करें

इसका मतलब है कि आप प्रश्न में संस्करण के साथ अद्यतित हैं।

  1. ** यदि आप सुनिश्चित नहीं हैं कि फ़ाइल में एक लंबित परिवर्तन है, तो वास्तव में वह तारीख भी नहीं है जब आप उस फ़ाइल संस्करण को गुणों के साथ देख सकते हैं: यहाँ छवि विवरण दर्ज करें
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.