किस विजुअल C ++ फ़ाइल प्रकार को संस्करण नियंत्रण के लिए प्रतिबद्ध होना चाहिए?


170

संस्करण नियंत्रण के लिए कौन सा Visual Studio \ Visual C ++ फ़ाइल प्रकार होना चाहिए?
मेरी परियोजना में मेरे पास निम्न फ़ाइल प्रकार हैं:

aps
cpp
exe
filters
h
ico
idb
ipch
lastbuildstate
lib
log
manifest
obj
pch
pdb
rc
rc2
res
sdf
sln
suo
tlog
txt
user
vcxproj

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

संपादित करें

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


23
वाह, यह सवाल अस्थायी फ़ाइलों की बढ़ती संख्या के लिए एक सच्चा वसीयतनामा है जो वीएस आपकी परियोजना की निर्देशिका में बनाने पर जोर देता है।
निक रेमन

@ नाइक: वे परियोजना की निर्देशिका में नहीं हैं।
हंस पैसेंट

1
@ हंस, वे या तो वहाँ हैं या एक परियोजना के तहत उपनिर्देशिका
निक रिमन

@ नाइक: एमएसबिल्ट गू नहीं। जो मुझे लगता है कि आप अस्थायी फ़ाइलों के साथ मतलब है। मैं सहमत हूँ, यह सुंदर नहीं है।
हंस पैसेंट

6
मैं आपको Xilinx के ISE विकास के वातावरण (HDL प्रोग्रामिंग के लिए) की कोशिश करने के लिए आमंत्रित करता हूं, और देखें कि यह कितनी अस्थायी फ़ाइलों को बाहर निकालता है। सैकड़ों एक्सटेंशन वाली सैकड़ों फाइलें :) एक गड़बड़ के बारे में बात करें। विजुअल स्टूडियो तुलना में बहुत साफ है।
मार्क लकाटा

जवाबों:


232

हाँ:

  • cpp: स्रोत कोड
  • फिल्टर: परियोजना फ़ाइल
  • एच: स्रोत कोड
  • ico: संसाधन
  • आरसी: संसाधन स्क्रिप्ट
  • rc2: संसाधन स्क्रिप्ट
  • sln: प्रोजेक्ट फ़ाइल
  • txt: प्रोजेक्ट एलिमेंट
  • vcxproj: प्रोजेक्ट फ़ाइल

नहीं:

  • aps: अंतिम संसाधन संपादक स्थिति
  • exe: निर्माण परिणाम
  • इडब: बिल्ड स्टेट
  • ipch: हेल्पर का निर्माण
  • lastbuildstate: सहायक बनाएँ
  • lib: परिणाम बनाएँ। तीसरी पार्टी हो सकती है
  • लॉग: बिल्ड लॉग
  • प्रकट: सहायक का निर्माण। खुद लिखा जा सकता है।
  • obj: सहायक का निर्माण
  • pch: निर्माण सहायक
  • पीडीबी: निर्माण परिणाम
  • रेस: हेल्पर का निर्माण
  • sdf: intellisense dbase
  • suo: समाधान उपयोगकर्ता विकल्प
  • tlog: बिल्ड लॉग
  • उपयोगकर्ता: डिबग सेटिंग। संरक्षित करें अगर सिर्फ एक देव या कस्टम डिबग सेटिंग

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


यह बहुत उपयोगी है। मेरी परियोजना में एक .vcb भी है (यह परियोजना एक पुराने संस्करण (eVC) से परिवर्तित की गई थी, इसलिए इससे संबंधित हो सकती है।
रोबी मैथ्यूज

.vcxproj.filtersफाइलों के बारे में क्या ?
जॉन एलेक्सियौ

1
इसके अलावा .OPENSDF के लिए नहीं
जम

1
@ ja72 filtersजवाब के पहले संशोधन के बाद से "हाँ" सूची में रहा है
क्षुद्रग्रहों के साथ पंख

26

आपकी सूची से मैं उन का चयन करूंगा:

cpp
filters
h
ico
manifest
rc
rc2
sln
txt
vcxproj

आम तौर पर, आपको प्रोजेक्ट बनाने के लिए आवश्यक सभी फ़ाइलों को संस्करण देना चाहिए। स्वचालित रूप से जेनरेट की गई फ़ाइलों को संग्रहीत नहीं किया जाना चाहिए imho।


@ milan1612 संक्षिप्त सूची के लिए धन्यवाद। हंस पसंत के जवाब की तुलना में, आपने कहा कि मुझे प्रकट फाइलें चाहिए जहां उन्होंने कहा कि मुझे नहीं करना चाहिए। क्या आप बता सकते हैं कि इस फ़ाइल का क्या अर्थ है और आपको क्या लगता है कि मुझे इसे कमिट करना चाहिए, खासकर टीम (और भविष्य के क्रॉस-प्लेटफ़ॉर्म) के माहौल में, अगर यह प्रासंगिक है?
जोनाथन

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

@ milan1612 - मुझे एक अतिरिक्त प्रकार का सामना करना पड़ा है - सू, क्या इसे भी जोड़ा जाना चाहिए? यदि हां, तो क्या आप इसे अपनी सूची में पूर्णता के लिए जोड़ सकते हैं?
जोनाथन

3
@ जोनाथन समाधान से संबंधित डेवलपर-विशिष्ट डेटा रखता है (जैसे कि कौन सी फाइलें खुली हैं या कौन से फ़ोल्डर समाधान एक्सप्लोरर में खुले / ढह गए हैं)। इस प्रकार, यह संस्करण नियंत्रण में नहीं होना चाहिए।
डैनियल रोज

1
@ milan1612 - डैनियल रोज के इनपुट के बाद, क्या आप अपनी सूची से सू को हटा सकते हैं?
जोनाथन

17

जैसा कि Microsoft द्वारा सुझाया गया है, फ़ाइलेट जिन्हें संस्करण नियंत्रण में शामिल किया जाना चाहिए:

.mak, .dsp, .c, .rc, .rc2, .ico, .bmp, .txt, .def, .hpj, .bat, .rtf, .odl, .inf, .reg, .cpp, .cpp , .cxx, .h, .hpp, .hxx, .inl, .tpl, .vtp, और .m ...

ऐसी फ़िलिपीट जिनमें शामिल नहीं होना चाहिए:

.pch, .mdp, .ncb, .clw, .obj, .exe, .ps, .cpl, .awk, .exp, .lib, .idb, .opt, .pdb, .map, .res, .ilk , .scc, .bsc, .sbr, .dll, और .tlb ...

लेकिन एक्सई फाइल या बाहरी लाइब्रेरी में बाहरी टूल का उपयोग करने के मामले में, मुझे लगता है कि इसे संस्करण नियंत्रण में भी शामिल किया जाना चाहिए

जानकारी: सोर्स-कोड कंट्रोल में जोड़ने के लिए कौन सी विजुअल C ++ फाइलें

इसके अलावा, यह लिंक Visual Studio 2017 में Visual C ++ प्रोजेक्ट्स के लिए फ़ाइल प्रकारों का वर्णन करता है ।


7

यदि आप प्रोजेक्ट पर राइट क्लिक करते हैं, तो संदर्भ मेनू में "स्रोत नियंत्रण में समाधान जोड़ें" विकल्प होना चाहिए।

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


4

अन्य उत्तर उत्कृष्ट हैं; मैंने सोचा था कि मैं एक उपयोगी छोटे उपकरण का योगदान दूंगा। की जाँच करें दृश्य स्टूडियो .gitignore टेम्पलेट GitHub पर। यह फ़ाइलों की एक अच्छी तरह से सक्रिय रूप से बनाए रखी गई सूची है जिसे आमतौर पर संस्करण नियंत्रण से बाहर रखा जाता है।

और जब आप इस पर होते हैं, तो संपूर्ण gitignore रिपॉजिटरी ActionScript से Zend तक के सभी प्रकार के विकास के लिए एक बहुत ही उपयोगी संसाधन है । यदि आप Git का उपयोग नहीं करते हैं, तो आप अभी भी एक संदर्भ के रूप में gitignore फ़ाइलों का उपयोग कर सकते हैं।


1

सामान्य तौर पर, आपको समाधान एक्सप्लोरर में दिखाई देने वाली सभी फाइलों को संस्करण नियंत्रण में जोड़ना चाहिए। इसके अलावा, आपको .sln (समाधान फ़ाइल) और .vcproj / .vcxproj / .vbproj / .csproj फ़ाइलें (प्रोजेक्ट फ़ाइल) शामिल करने की आवश्यकता है।

ध्यान दें कि यदि आपके पास Visual Studio, जैसे TFS या AnkhSvn के लिए स्रोत नियंत्रण प्लगइन है, तो इसके लिए स्पष्ट रूप से देखभाल करने की आवश्यकता नहीं है। विजुअल स्टूडियो को पता है कि किन फाइलों को संस्करण नियंत्रण में होना चाहिए और डेटा को स्रोत नियंत्रण प्लगइन को देना चाहिए। केवल तभी जब आप किसी बाहरी उपकरण का उपयोग करते हैं (उदाहरण के लिए TortoiseSVN) क्या आपको इस तरह की सूची की आवश्यकता है।


0

केवल प्याज जो आपके लक्ष्य के निर्माण के लिए आवश्यक हैं। मुझे लगता है कि यह सिर्फ .cpp .h .ico .rc .txt .manifest .rc2 है

मुझे नहीं पता कि sdf, aps, filter, user क्या है, उन्हें मेरे C ++ बिल्ड में नहीं देखा है।

बस देखो और पता करें कि क्या उनके पास प्रोग्रामर लिखित कोड है या यदि वे वी.एस.


4
.sln और .vcxproj सुनिश्चित करने के लिए आवश्यक हैं - वे परियोजना और समाधान का वर्णन करते हैं।
शार्प्यूट

हां, अगर आप मेकफाइल्स को बनाए नहीं रखते हैं। क्षमा करें, मैं व्यक्तिगत रूप से इतना एंटी-वीएस / एमएस हूं कि मैं यह भूल गया कि विजुअल स्टूडियो का उपयोग करने वाले लोग अपने विकासकर्ताओं के लिए एकमात्र उपकरण हैं। मैं केवल डिबगर का उपयोग कर रहा हूं।
लोथार

3
ठीक है, वीएस प्रोजेक्ट फाइलें मेकफाइल्स भी हैं
मिलान

-2

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

https://msdn.microsoft.com/en-us/library/aa278994(v=vs.60).aspx


1
.Ep फ़ाइल IDE के लुक और फील को नियंत्रित करती है , न कि आपके प्रोग्राम को संकलित करने के तरीके से। तो क्या आप IDE के बारे में अच्छा महसूस करते हैं दूसरों के परिप्रेक्ष्य में जरूरी अच्छा नहीं है
phuclv
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.