ऑब्जेक्ट फ़ाइलों को स्टोर करने के लिए एक अलग निर्देशिका रखना उपयोगी है। हालांकि, gprbuild शिकायत करेगा यदि निर्देशिका पहले से मौजूद नहीं है। मैं संस्करण नियंत्रण के लिए hg का उपयोग करता हूं, जो आपको खाली निर्देशिकाओं को ट्रैक करने की अनुमति नहीं देता है (AFAIK यह git के बारे में भी सच है), लेकिन अगर ऐसा हुआ भी, तो इसे अव्यवस्थित करना दुर्भाग्यपूर्ण है। एक खाली निर्देशिका के साथ भंडार। gprbuild के पास एक विकल्प है, --create-missing-dirs (संक्षिप्त रूप -p) जो ठीक वही करता है जो वह टिन पर कहता है। यह अत्यंत उपयोगी है। हालाँकि, मैं यह जानना चाहता हूँ कि क्या इसे .gpr फ़ाइल में सेट करने का कोई तरीका है। मेरे उपयोगकर्ताओं को केवल gprbuild project चलाने में सक्षम होने के बजाय, -p विकल्प के साथ संकलन करने के लिए याद दिलाना अप्रिय है। दुर्भाग्य से, gprguild के दस्तावेज़ों में यह कहना है:

डिफ़ॉल्ट रूप से, GPRbuild जाँचता है कि प्रोजेक्ट फ़ाइलों में निर्दिष्ट ऑब्जेक्ट, लाइब्रेरी और निष्पादन निर्देशिका मौजूद हैं। स्विच -p GPRbuild को लापता निर्देशिका बनाने का प्रयास करने का निर्देश देता है। ध्यान दें कि ये स्विच मुख्य परियोजना के पैकेज बिल्डर में निर्दिष्ट किए जा सकते हैं, लेकिन वे वहां बेकार हैं क्योंकि या तो निर्देशिका पहले से मौजूद हैं या प्रोजेक्ट फाइलों का प्रसंस्करण बिल्डर स्विच के मूल्यांकन से पहले विफल हो गया है, क्योंकि कम से कम एक लापता है निर्देशिका।

निश्चित रूप से मैं जो वर्णन कर रहा हूं उसे करने का कोई तरीका होना चाहिए?

7
junius 2 अक्टूबर 2017, 09:25

2 जवाब

सबसे बढ़िया उत्तर

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

hg के लिए, .hgignore को शीर्ष-स्तर पर होना चाहिए (जहाँ तक मुझे पता है), इसलिए आपको एक .keep फ़ाइल (या कुछ अन्य वर्णन करने वाला नाम) जोड़ने की आवश्यकता होगी। निर्देशिका जिसे आप रखना चाहते हैं, और बाकी सभी चीज़ों को नज़रअंदाज़ करने के लिए .hgignore में एक नियम जोड़ें।

git के लिए, आप एक .gitignore फ़ाइल को निर्देशिका के अंदर ही रख सकते हैं, जिसमें सभी फ़ाइलों को नज़रअंदाज़ करने का नियम है। इस मामले में, .gitignore स्वयं छिपी हुई ट्रैक की गई फ़ाइल होगी। (बोनस: नियम लिखना आसान है)

  • सिस्टम पर जहां . से शुरू होने वाली फाइलें छिपी होती हैं
-1
egilhh 2 अक्टूबर 2017, 10:17