केंद्रीय स्रोत भंडार में जाने से बचने के लिए टीएफएस में फ़ाइलों / निर्देशिकाओं को कैसे अनदेखा करें?


254

क्या टीएफएस स्रोत नियंत्रण में प्रति-परियोजना के आधार पर अनदेखी करने के लिए फाइलें / फ़ोल्डर स्थापित करना संभव है?

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

यदि मैं इस वेबसाइट पर काम कर रहा हूं, जबकि स्रोत नियंत्रण के लिए बाध्य हूं और मैं पेड़ को ताज़ा करता हूं, तो ये फाइलें स्वचालित रूप से फिर से जुड़ जाएंगी

मैं इसे होने से रोकना चाहता हूं।


1
स्थानीय कार्यस्थानों के लिए .tfignore का उपयोग कर सकते हैं -फाइल्स जैसे रिचर्ड बैंक बताते हैं। टीम-एक्सप्लोरर में संदर्भ-मेन्यू के साथ इस फ़ाइल को समायोजित करने के लिए , मेरा उत्तर देखें। सर्वर-कार्यक्षेत्रों के लिए मैंने टिप्पणियों में एक लिंक प्रदान किया।
gReX

जवाबों:


88

VS2015 और VS2017 के लिए

टीएफएस (ऑन-प्रिमाइस) या वीएसओ (विजुअल स्टूडियो ऑनलाइन - एज़ुर-होस्टेड ऑफ़र) के साथ काम करता है

NuGet प्रलेखन इसे पूरा करने के तरीके के बारे में निर्देश प्रदान करता है और मैंने अभी-अभी विजुअल स्टूडियो 2015 और विजुअल स्टूडियो 2017 के लिए VSTS (एज़्योर-होस्टेड टीएफएस) के खिलाफ सफलतापूर्वक उनका पालन किया। सब कुछ पूरी तरह से नवंबर 2016 अगस्त 2018 के रूप में अपडेट किया गया है ।

मैं आपको नुगेट के निर्देशों का पालन करने की सलाह देता हूं लेकिन मैंने जो किया है उस पर फिर से विचार करने के लिए:

  1. सुनिश्चित करें कि आपका packagesफ़ोल्डर TFS के लिए प्रतिबद्ध नहीं है। यदि यह है, तो इसे वहां से हटाएं।
  2. नीचे हम जो कुछ भी बनाते हैं वह उसी फ़ोल्डर में चला जाता .slnहै जब तक कि आपकी फ़ाइल मौजूद नहीं होती है जब तक कि निर्दिष्ट नहीं हो (नूगेट के निर्देश इस पर पूरी तरह से स्पष्ट नहीं हैं)।
  3. एक .nugetफ़ोल्डर बनाएँ । .nuget.इसे सफलतापूर्वक सहेजने के लिए आप इसे नाम देने के लिए विंडोज एक्सप्लोरर का उपयोग कर सकते हैं .nuget(यह स्वचालित रूप से अंतिम अवधि को हटा देता है) लेकिन सीधे नाम देने की कोशिश करना .nugetकाम नहीं कर सकता है (आपको त्रुटि मिल सकती है या यह आपके Windows के संस्करण के आधार पर नाम बदल सकता है। )। या डायरेक्टरी नगेट को नाम दें, और पैरेंट डायरेक्टरी को कमांड लाइन प्रॉम्प्ट में खोलें। प्रकार। रेन नगेट .nuget
  4. उस फ़ोल्डर के अंदर, एक NuGet.configफ़ाइल बनाएं और निम्न सामग्री जोड़ें और इसे सहेजें:

NuGet.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <solution>
        <add key="disableSourceControlIntegration" value="true" />
    </solution>
</configuration>
  1. अपने .slnफ़ोल्डर में वापस जाएं और एक नई टेक्स्ट फ़ाइल बनाएं और इसे नाम दें .tfignore(यदि Windows एक्सप्लोरर का उपयोग कर रहे हैं, तो ऊपर दिए गए समान चाल का उपयोग करें और इसे नाम दें .tfignore.)
  2. निम्नलिखित सामग्री को उस फ़ाइल में रखें:

.tfignore:

# Ignore the NuGet packages folder in the root of the repository.
# If needed, prefix 'packages' with additional folder names if it's 
# not in the same folder as .tfignore.
packages

# include package target files which may be required for msbuild,
# again prefixing the folder name as needed.
!packages/*.targets
  1. इस सब को सहेजें, इसे टीएफएस के लिए प्रतिबद्ध करें, फिर विज़ुअल स्टूडियो को बंद करें और फिर से खोलें और टीम एक्सप्लोरर को अब लंबित चेक-इन के रूप में पैकेज फ़ोल्डर की पहचान नहीं करनी चाहिए।
  2. Windows Explorer के माध्यम से .tfignoreफाइल / .nugetफ़ोल्डर को मेरे सभी समाधानों में कॉपी / पेस्ट किया जाता है और उन्हें कमिट किया जाता है और मेरे पास अब packagesफ़ोल्डर नहीं है जो मेरे स्रोत नियंत्रण रेपो में घुसने की कोशिश कर रहा है!

आगे अनुकूलन

मेरा नहीं है, मैं इस .tfignoreटेम्पलेट sirkirby द्वारा काम करने के लिए मिल गया है। मेरे जवाब में उदाहरण Nuget packagesफ़ोल्डर को कवर करता है, लेकिन इस टेम्पलेट में कुछ अन्य चीजें शामिल हैं और साथ ही अतिरिक्त उदाहरण भी प्रदान करता है जो कि यदि आप इसे आगे अनुकूलित करना चाहते हैं तो उपयोगी हो सकता है।


1
वीएस 2017 पर इसका अनुसरण किया गया - टीएफएस 2015 एक आकर्षण की तरह काम किया। मेरे सभी Nuget पैकेज अब लंबित परिवर्तनों के रूप में दिखाई नहीं दिए हैं।
जेम्स वॉल्श जूनियर

मुझे केवल पता किए गए परिवर्तनों को खोलना था और नए बनाए गए फाइलों को हाथ से लंबित परिवर्तनों में जोड़ना था। सिवाय इसके कि सब कुछ ठीक चला।
मचाडो

यह मेरे लिए काम नहीं किया। वीएस 2017 - टीएफएस 2015। मैं कुछ भी जांच नहीं कर सकता। जब मैं कोशिश करता हूं तो मुझे निम्न त्रुटि मिलती है: "डी: \ Src \ MiniCoreWebAPI \ package \ Microsoft। .dll: पथ का एक भाग नहीं खोज सका "
रॉड

मेरे पास मेरे पैकेज फ़ोल्डर की जाँच नहीं की गई थी, लेकिन यह पहले से ही एक लंबित परिवर्तन के रूप में पाया गया था। इन निर्देशों को लागू करने के बाद, मुझे संकुल फ़ोल्डर पर "पूर्ववत परिवर्तन" करना पड़ा, फिर जब मैंने पुनर्निर्माण किया और NuGet ने संकुल को पुनर्स्थापित किया तो सब कुछ ठीक था।
कोडहैक्स

172

यदि आप स्थानीय कार्यस्थानों (TFS 2012+) का उपयोग कर रहे हैं, तो अब आप .tfignoreस्थानीय फ़ोल्डरों और फ़ाइलों को जाँचने से रोकने के लिए फ़ाइल का उपयोग कर सकते हैं ।

यदि आप उस फ़ाइल को स्रोत नियंत्रण में जोड़ते हैं, तो आप अपनी टीम के अन्य लोगों को एक ही बहिष्करण सेटिंग्स साझा करना सुनिश्चित कर सकते हैं।

MSDN पर पूर्ण विवरण - http://msdn.microsoft.com/en-us/library/ms245454.aspx##fignore

आलसी के लिए:

आप कॉन्फ़िगर कर सकते हैं कि किस प्रकार की फ़ाइलों को अनदेखा किया जाता है जिसे एक पाठ फ़ाइल कहा जाता है .tfignore है जिसे फ़ोल्डर में है जहां आप नियम लागू करना चाहते हैं। .tfignoreफ़ाइल के प्रभाव पुनरावर्ती हैं। हालाँकि, आप .tfignore किसी पैरेंट फ़ोल्डर में किसी फ़ाइल के प्रभाव को ओवरराइड करने के लिए सब-फ़ोल्डर्स में .tfignore फाइल्स बना सकते हैं ।

निम्न नियम .tfignore फ़ाइल पर लागू होते हैं:

  • # एक टिप्पणी लाइन शुरू करता है
  • और ? वाइल्डकार्ड समर्थित हैं।
  • एक filespec पुनरावर्ती है जब तक कि \ वर्ण द्वारा उपसर्ग नहीं किया जाता है।
  • ! फ़ेलसेप को नकारता है (पैटर्न से मेल खाने वाली फ़ाइलें अनदेखा नहीं की जाती हैं)

उदाहरण फ़ाइल:

# Ignore .cpp files in the ProjA sub-folder and all its subfolders
ProjA\*.cpp
# 
# Ignore .txt files in this folder 
\*.txt
#
# Ignore .xml files in this folder and all its sub-folders
*.xml
#
# Ignore all files in the Temp sub-folder
\Temp
#
# Do not ignore .dll files in this folder nor in any of its sub-folders
!*.dll

35
मैंने ऐसा करने की कोशिश की है। केवल एक चीज को नजरअंदाज किया जाना .tfignore फ़ाइल की सामग्री है :(
user1852503

15
@SerjSagan मेरे कंप्यूटर ने मुझे .tfignoreऐसा करने की अनुमति नहीं दी जिससे मैंने बनाया .tfignore.और इसने अपने आप ही अंतिम बिंदु को हटा दिया ..
पीटर

5
समस्या यह है कि यह केवल उन संसाधनों की उपेक्षा करता है, जो 1) चेक-इन और 2 से पहले स्रोत नियंत्रण एक्सप्लोरर विंडो में स्पष्ट रूप से हटा दिए गए थे, स्पष्ट रूप से लंबित परिवर्तन विंडो में बाहर रखा गया था । उदाहरण के लिए, यदि आप संकुल फ़ोल्डर को अनदेखा करने के लिए इसका उपयोग करने जा रहे हैं और NuGet पैकेज पुनर्स्थापना पर भरोसा करते हैं, तो आपको 1) सोर्स कंट्रोल एक्सप्लोरर में संकुल फ़ोल्डर को हटाना होगा और फिर 2) NuGet पैकेज पुनर्स्थापना प्रक्रिया के बाद इसे लंबित परिवर्तन विंडो में बाहर करना होगा । अन्यथा यह अभी भी संकुल फ़ोल्डर में चेक-इन करेगा ।
देिलन

1
यदि Windows आपको .tfignoreएक उचित नाम की कमी के कारण फ़ाइल बनाने की अनुमति नहीं देगा , तो आप इसे बना सकते हैं या इसे कमांड लाइन विंडो के माध्यम से नाम बदल सकते हैं।
ज़ेरेफेथ

1
नहीं है कुछ बड़ी समस्या VS2015 में .tfignore साथ। लोक बहुत दुखी हैं , लेकिन इस मुद्दे का स्पष्ट बयान, या इसे ठीक करने के लिए स्पष्ट प्रतिबद्धता नहीं दिखाई देती है।
bbsimonbb

71

यह करता है टीम फाउंडेशन सर्वर में फ़ाइलें (और फ़ोल्डरों) की अनदेखी करने के एक छोटे से बोझिल लग रहे हैं। मुझे ऐसा करने के लिए कुछ तरीके मिले हैं (TFS / Team Explorer / Visual Studio 2008 का उपयोग करके)। ये तरीके वेब साइट एएसपी प्रोजेक्ट प्रकार के साथ भी काम करते हैं।

एक तरीका एक परियोजना में एक नया या मौजूदा आइटम जोड़ने का है (उदाहरण के लिए प्रोजेक्ट पर राइट क्लिक करें, मौजूदा आइटम जोड़ें या समाधान एक्सप्लोरर में विंडोज एक्सप्लोरर से खींचें और छोड़ें), TFS को फ़ाइल (ओं) या फ़ोल्डर को संसाधित करने दें, फिर पूर्ववत लंबित रहें आइटम पर परिवर्तन। TFS उन्हें लंबित ऐड चेंज होने के रूप में अनमार्क कर देगा, और फाइलें प्रोजेक्ट में चुपचाप बैठ जाएंगी और TFS से बाहर रहेंगी।

स्रोत नियंत्रण एक्सप्लोरर के फ़ोल्डर आइटम में जोड़ें के साथ एक और तरीका है। यह एक छोटा विज़ार्ड लॉन्च करता है, और एक कदम पर आप आइटम को बाहर करने के लिए चुन सकते हैं (हालांकि, मुझे लगता है कि आपको विज़ार्ड को जारी रखने के लिए इस विधि के साथ कम से कम एक आइटम को टीएफएस में जोड़ना होगा)।

यहां तक ​​कि आप कुछ लोगों की टीम से गलती से चेक-इन पॉलिसी (टीम -> टीम प्रोजेक्ट सेटिंग्स -> सोर्स कंट्रोल ... -> चेक-इन पॉलिसी) को जोड़ सकते हैं।


7
मेरे पास निषिद्ध पैटर्न नीति नहीं थी। संबंधित प्रश्न का उत्तर बताता है कि इसे कहां प्राप्त करना है। यह स्पष्ट रूप से TFS पावर टूल्स का हिस्सा है ।
लीफ कार्लसन

1
मैं इसी तरह की समस्या का सामना कर रहा हूं, क्या आप चेक-इन पॉलिसी का उपयोग करते हुए चेकइन नहीं होने के लिए किसी विशेष फ़ोल्डर पर अधिक विवरण प्रदान कर सकते हैं
इमरान रिज़वी

वूप्स - आप सही कह रहे हैं, लीफ। यह TFS पावर टूल्स का हिस्सा है।
डेरेक मॉरिसन

इमरान, दुर्भाग्य से मैंने नौकरियों को बदल दिया, और अब टीएफएस का उपयोग नहीं करते हैं और मेरी पिछली परियोजनाओं तक पहुंच नहीं है, इसलिए मुझे निषिद्ध पैटर्न चेक-इन पॉलिसी सिंटैक्स के लिए वाक्यविन्यास के बारे में निश्चित नहीं है। शायद यह सवाल मदद करता है? stackoverflow.com/questions/2741412/…
डेरेक मॉरिसन

TFS 2010 को शामिल करने के लिए फ़ाइलें चुनने के बाद, आप उस सूची से बाहर कर सकते हैं। मौजूदा फ़ाइलों को नहीं छू सकता ...
JNF

47

के लिए TFS 2013 :

VisualStudio- टीम एक्सप्लोरर , PendingChanges में प्रारंभ करें डायलॉग में, राज्य को जोड़ने के लिए परिवर्तन को जोड़ दें, जिसे अनदेखा किया जाना चाहिए।

दृश्य स्टूडियो ऐड (ओं) को फिर से पता लगाएगा। "पता लगाया: x जोड़ें (ओं) पर क्लिक करें " -in बहिष्कृत परिवर्तन

खुले हुए "कैडेट को बदलें को बढ़ावा दें" -डायलॉग में आप कॉन्टेक्स्टमेनू के साथ फाइल और फोल्डर्स को आसानी से बाहर कर सकते हैं। विकल्प हैं:

  • इस आइटम को अनदेखा करें
  • विस्तार से ध्यान न दें
  • फ़ाइल नाम से ध्यान न दें
  • Ffolder द्वारा अनदेखा करें (हाँ ffolder, TFS 2013 अपडेट 4 / विजुअल स्टूडियो 2013 प्रीमियम अपडेट 4)

चेक करने के लिए मत भूलना बदल दिया .tfignore- फाइल में।

के लिए वी.एस. 2015/2017 :

वही प्रक्रिया: TeamExplorer \ "लंबित परिवर्तन" में "बहिष्कृत परिवर्तन टैब" में पता लगाया गया क्लिक करें: xxx add (s)

TeamExplorer \ लंबित परिवर्तन में बहिष्कृत परिवर्तन टैब

"प्रचार प्रत्याशी परिवर्तन" संवाद खुलता है, और प्रविष्टियों पर आप संदर्भ के लिए राइट-क्लिक कर सकते हैं। टाइपो अब तय हो गई है :-)


उस विकल्प को खोजने के लिए प्रतीत नहीं कर सकते। मैं वीएस 2015 आरसी पर हूं।
शिम्मी वेइटहैंडलर

यह केवल होगा काम आप एक स्थानीय कार्यक्षेत्र के साथ काम कर रहे हैं विस्तार, यहाँ में वर्णित हैं: msdn.microsoft.com/library/vstudio/...
stvn

@ शमी: वीएस 2015 आरसी में प्रक्रिया समान है, अभी भी उसी टाइपो के साथ। देखिए मेरा अपडेटेड जवाब। लेकिन जैसा कि स्ट्विन बताते हैं .tfignore केवल स्थानीय कार्यक्षेत्रों के साथ काम करता है। सर्वर-वर्कस्पेस के लिए आपको लंबित चेकइन में शामिल करना पूर्ववत करना है, यहाँ उत्तर देखें: stackoverflow.com/questions/21887308/…
gReX

@ शमी: क्या आप टीएफएस-सर्वर 2015 से जुड़े हैं? सुनिश्चित करें, कि आप वीएस में टीम एक्सप्लोरर के साथ शुरू करते हैं
gReX

@ qw1564 मुझे पूरा यकीन है, जब सवाल पहले पूछा गया था, तो यह संभव नहीं था। लेकिन अब, यह वह उत्तर है जो मैं चुनूंगा। क्रेडिट के लिए धन्यवाद!
gReX

5

मुझे TFS में फ़ाइलों को इग्नोर करने का सही तरीका मिला, जैसे SVN करता है।
सबसे पहले, उस फ़ाइल का चयन करें जिसे आप अनदेखा करना चाहते हैं (जैसे Web.config)।
अब मेनू टैब पर जाएं और चुनें:

फ़ाइल स्रोत नियंत्रण> उन्नत> स्रोत नियंत्रण से web.config को बाहर निकालें

... और उछाल; आपकी फ़ाइल को स्थायी रूप से स्रोत नियंत्रण से बाहर रखा गया है।


1
यह मेरे लिए TFS 2010 पर कोड जनरेट की गई फ़ाइलों के लिए काम कर रहा है। धन्यवाद!
BozoJoe

1
यह वास्तव में काम करता है, .tfignore मेरे लिए काम नहीं करता है। धन्यवाद एक टन
एपिककप

2
मेरे पास वीएस 2018 में यह विकल्प नहीं है
एडम

4

मैं मान रहा हूँ कि आप वेब साइट परियोजनाओं का उपयोग कर रहे हैं। ये स्वचालित रूप से अपनी परियोजना निर्देशिका को क्रॉल करते हैं और सब कुछ स्रोत नियंत्रण में फेंक देते हैं। उन्हें रोकने का कोई उपाय नहीं है।

हालाँकि, निराशा न करें। वेब अनुप्रयोग प्रोजेक्ट्स इस अजीब और बल्कि अप्रत्याशित (imho: moronic) व्यवहार को प्रदर्शित नहीं करते हैं। WAP VS2005 के लिए एक ऐडऑन है और VS2008 के साथ सीधा आता है।

WAP में अपनी परियोजनाओं को बदलने के विकल्प के रूप में, आप एसेट्स को स्रोत नियंत्रण से बाहर और TFS दस्तावेज़ लाइब्रेरी में स्थानांतरित करने पर विचार कर सकते हैं। केवल ऐसा करें यदि प्रोजेक्ट स्वयं ही सीधे संपत्तियों की फाइलों का उपयोग नहीं करता है।


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