इसका अधिकांश हिस्सा व्यक्तिगत प्राथमिकताओं में आता है।
मैं एक परियोजना के लिए जो कुछ भी करता हूं उसे ट्रैक करता हूं। विशेष रूप से चूंकि गिट अधिकांश प्रकार की फाइलें, यहां तक कि द्विआधारी, पर्याप्त रूप से कुशलता से संभालता है। (निर्मित में Altium SVN बकवास के साथ)
ऐसा करने के लिए मेरे मुख्य कारणों में से एक यह है कि मेरे ग्राहकों को यह महसूस नहीं होता है कि ड्रॉपबॉक्स पर्याप्त सुरक्षित है और मुझे बैक-अप सिस्टम की आवश्यकता है जिसे मैं दुनिया भर में एक्सेस कर सकता हूं, साथ ही मैं जो कुछ करता हूं, उस पर कुछ संस्करण संदर्भ भी हैं। इसलिए मैंने एक निजी Git सर्वर और एन्क्रिप्टेड बैकअप सिस्टम स्थापित किया और यह एक ट्रीट का काम करता है। बोर्ड, स्कैमैटिक्स, कोड, डॉक्यूमेंटेशन, रिपोर्ट्स, मैनुअल मोडिफिकेशन, सब कुछ ट्रैक किया गया है।
मैं सामान्य रूप से हार्डवेयर के लिए एक रिपॉजिटरी बनाऊंगा, एक सॉफ्टवेयर के लिए और एक फ़र्मवेयर के लिए अगर यह एक बड़ी, संभावित रूप से लंबे समय से चल रही परियोजना है, लेकिन छोटे सेवा परियोजनाओं, उदाहरणों या थोड़े प्रयोगों के लिए, मैं अक्सर इसे एक रिपॉजिटरी में डाल देता हूं, जिसके परिणामस्वरूप अराजकता बड़ी नहीं होगी।
Git में आप उप-रिपॉजिटरी का उपयोग करने के साथ-साथ हार्डवेयर प्रोजेक्ट या आसपास के अन्य तरीके से फ़र्मवेयर को एकीकृत करने के लिए उपयोग कर सकते हैं, भले ही वे अलग-अलग प्रबंधित रिपॉजिटरी हों।
बड़ी परियोजनाओं के लिए, मैं आमतौर पर बग ट्रैकिंग सिस्टम का उपयोग मुद्दों और प्रस्तावों का ट्रैक रखने के लिए करता हूं, फिर से एचडब्ल्यू के साथ-साथ एसडब्ल्यू के लिए, मेंटिस एक अच्छा है जिसे मुफ्त में इस्तेमाल किया जा सकता है।
हार्डवेयर संशोधन के लिए मैं गेबर्स उत्पन्न करता हूं, या आपके पास जो कुछ भी है, उस संशोधन के लिए Git हैश के साथ टैग किया गया है, उन गेबर्स तब R01, 02, आदि द्वारा फ़ोल्डरों में केवल "पुराने जमाने" संस्करण वाले सामान हैं, क्योंकि आप नहीं चाहते हैं। उन्हें हर समय पुनर्जीवित करें, लेकिन वे परिणामी फाइलें हैं इसलिए गिट में ही संस्करण नहीं होना चाहिए, वास्तव में (क्योंकि आपका डिज़ाइन सॉफ़्टवेयर उत्पादन सामग्री बनाने के साथ निर्धारक होना चाहिए, या फिर ...)।
अगर R01 में ऐसा कुछ दिलचस्प है जो R02 (या अन्य तरीके से) में नहीं हो रहा है, तो आपके पास दो Git Hashes हैं जिनसे आप स्रोत फ़ाइलों की तुलना कर सकते हैं, कोई चिंता नहीं।
अंतिम नोट के रूप में, एक परियोजना का एक वैचारिक उदाहरण, एक हार्डवेयर भंडार होगा, जो एक "बोर्डपिनआउट.एच" फाइल को भी होस्ट करता है। इस फ़ाइल को फर्मवेयर रिपॉजिटरी में एक दूरस्थ रूप से संस्करण फ़ाइल के रूप में शामिल किया गया है, जिसमें कुछ इंटरफ़ेस परिभाषा फाइलें हैं जो दूरस्थ रूप से सॉफ़्टवेयर रिपॉजिटरी में शामिल हैं।
हर बार जब मैं एचडब्ल्यू प्रोजेक्ट "अपडेट" बोर्डपिनआउट को व्यापक कार्यक्षमता को संशोधित किए बिना कुछ संकेतों को बदलता हूं, जिसे तब अपडेट किया जा सकता है और फर्मवेयर में उपयोग किया जा सकता है, और इसी तरह।