2012-01-27 10 views
5

मैं अपने वर्तमान डेल्फी 7 परियोजना (नाम कहते हैं, Project1.dpr), दो फ़ाइलें (Project1.dof और Project1.cfg) जो मेरी टीम और मैं संस्करण नियंत्रण में डाल करने के लिए तय नहीं कर पा में है (हम मर्क्युरियल btw का उपयोग)।डेल्फी 7। डीओएफ और। सीएफजी: क्या मुझे उन्हें संस्करण नियंत्रण के तहत ट्रैक करना चाहिए?

बात यह है: भीतर दो फ़ाइलों ऊपर कुछ पुस्तकालय, घटकों और एक्सटेंशन पथ जो सिस्टम से संबंधित हैं इंगित किया गया है प्रोग्रामर पर है। (मुझे शामिल है)

मेरी टीम 32 बिट Windows XP का उपयोग कुछ लोगों और कुछ लोगों से बना है 64 बिट्स का उपयोग कर विंडोज 7

तो इस सवाल को लाता है: 64 बिट्स विंडोज 7 डेल्फी एक्सटेंशन, घटकों पर के बाद से और पुस्तकालय c:\program files (x86)\... के तहत और 32 बिट्स XP पर स्थित हैं, वे बस c:\program files\... के तहत हैं, उन फ़ाइलों में परिवर्तन करने से अन्य सहकर्मियों परियोजना कॉन्फ़िगरेशन को तोड़ने का परिणाम होगा।

क्या किसी के पास इस तरह की स्थिति के लिए कुछ सुझाव है?

+1

आपकी .dof और .cfg फ़ाइलों के किस हिस्से में तृतीय पक्ष घटकों के पथ होते हैं? आपकी निर्माण प्रक्रिया क्या है? मुझे उम्मीद है कि आप आईडीई से नहीं बना रहे हैं। –

+0

हां, मैं आईडीई से बना रहा हूं। बीटीडब्ल्यू मैं इन जानकारी को शामिल करने के लिए अपनी पोस्ट संपादित करूंगा। –

उत्तर

2

यदि आप डेल्फी 7 पर रह रहे हैं, या यहां तक ​​कि यदि आप नहीं हैं, तो भी मेरा सुझाव है कि आप अपनी डीओएफ फाइलों में जांच करें, लेकिन आप अपने अंतिम निर्माण के लिए उन पर भरोसा नहीं करते हैं। अद्यतन: ओपी ने डीओएफ फाइलों में जांच न करने का फैसला किया, और अंतिम निर्माता का उपयोग किया।

अपने 64 बिट लोगों से पूछना भी आसान नहीं है कि वे उनकी जांच करें। डॉफ चेंज। भले ही वे कभी-कभी भूल जाते हैं कि उन्हें "स्थानीय हैक्स" नहीं करना चाहिए, यह आपके स्थानीय मामले के लिए अपनी डीओएफ फाइलों को पढ़ने और ठीक करने के लिए एक छोटी उपयोगिता को आसान बनाना आसान है। हर बार जब आप अन्य लोगों के भंडारों से परिवर्तन खींचते हैं इसे चलाएं।

दूसरा शानदार विचार एक .dofdefault फ़ाइल में जांचना है, और अपनी Build.Bat फ़ाइल प्रति project.dofdefault को project.def पर मौजूद है यदि यह मौजूद नहीं है। समस्या सुलझ गयी।

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

कैसे उदाहरण के लिए यदि आप वर्तमान कोड है कि यह और विकल्प इसे बनाने के लिए इस्तेमाल किया निहित के साथ सटीक तेज changeset संशोधन (md5 हेक्स मान) को संबद्ध करते हैं?

एक भी होशियार विचार डेल्फी 7, ​​जो अब खत्म हो गया 10 साल पुराना है छोड़ देते हैं और 21 वीं सदी में मजबूत जाने पर विचार किया जाएगा।

+1

+1, "डेल्फी 7 को छोड़ना भी एक बेहतर विचार होगा" – Kromster

+0

@ वॉरेन पी: आपके सुझावों के लिए धन्यवाद, हमने अंततः हमारे सामान्य एसएमएम वर्कफ़्लो से .dof और .cfg को बाहर करने का निर्णय लिया, और संकलन प्रक्रिया को स्थानांतरित करने के लिए उचित मशीन। उचित सेटिंग्स के साथ सर्वर मशीन। –

+0

@ वॉरेन पी: हम 21 वीं शताब्दी में डेल्फी एक्सई 2 के साथ पूरी तरह से आगे बढ़ना चाहते हैं, जिसे हमने कुछ हफ्ते पहले खरीदा था, लेकिन हमारी कंपनी के प्रमुख उत्पादों में से एक अभी भी डी 7 के साथ बनाया गया है, मेरी टीम कुछ भी नहीं कर सकती इस। अब हम अपने उत्पाद के संस्करण 3 को वितरित करने की तैयारी कर रहे हैं; संस्करण 3.5 XE2 पोर्टिंग के लिए निर्धारित है। शक्ति हमारे साथ हो। –

5

सबसे पहले: मैं वॉरेन सुझावों से पूरी तरह से सहमत हूं।

भी आप अपने वर्तमान प्रणाली के साथ रहना चाहते हैं, तो आप पुस्तकालय pathes के लिए एक उपसर्ग के रूप $(ProgramFiles) उपयोग कर सकते हैं। यह ओएस स्वाद दोनों पर काम करना चाहिए।

+0

मैंने सोचा कि बैच फ़ाइल में% PROGRAMFILES% जैसा ही है, जिसका अर्थ है "32 बिट सिस्टम पर 32 बिट प्रोग्राम फ़ाइलें और 64 बिट सिस्टम पर 64 बिट प्रोग्राम फ़ाइलें"। यहां तक ​​कि पर्यावरण परिवर्तनीय नाम भी '% प्रोग्रामफाइल (x86)%' उर्फ ​​'$ (प्रोग्रामफाइल (x86)) में बदल जाता है। –

+0

@Warren, एक 64 बिट अनुप्रयोग% PROGRAMFILES% 64 बिट फ़ोल्डर में इंगित करता है, जबकि 32 बिट एप्लिकेशन (आईडीई की तरह) x86 फ़ोल्डर को देखता है। आप पर्यावरण परिवेश में निर्मित निरीक्षण का निरीक्षण करके XE2 में इसे देख सकते हैं। % प्रोग्रामफाइल (x86)% चर केवल 64 बिट अनुप्रयोग में उपयोग का है। –

+0

@ वॉरेन, ओपी का दावा है कि 32 बिट सिस्टम पर पथ सी: \ प्रोग्राम फाइल \ कहना चाहिए, जबकि 64 बिट सिस्टम पर इसे सी: \ प्रोग्राम फाइल (x86) \ कहना चाहिए। यह बिल्कुल ओएस स्वादों पर चल रहे आईडीई के अंदर से देखा गया $ (प्रोग्रामफाइल) की सामग्री है। –

0

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

यही कहा जा रहा है, यदि आप एक स्थिति को उन्नत करने के मैं प्रोग्राम फ़ाइलें से बाहर है और परियोजना के पेड़ का एक सबफ़ोल्डर में तीसरे पक्ष के घटकों को कॉपी सुझाव है कि में नहीं हैं। मैंने इसे डेल्फी 6 प्रोजेक्ट के साथ किया और ऐसा करके मैंने पाया कि हर कोई घटकों के समान संस्करण का उपयोग नहीं कर रहा था।

संस्करण नियंत्रण के तहत .dof और .cfg को शामिल करना है या नहीं, एक निर्णय कॉल है। यदि आप अपने रिलीज के निर्माण के लिए उन पर भरोसा करते हैं तो उन्हें शायद संस्करण नियंत्रण में होना चाहिए। उनमें संकलन सेटिंग्स और सशर्त हो सकते हैं जो उचित संकलन के लिए जरूरी हैं। यह भी फायदेमंद है कि सभी डेवलपर अपनी मशीनों पर काम करते समय सही सेटिंग्स का उपयोग कर रहे हैं।

यदि आपकी बिल्ड प्रक्रिया कमांड लाइन से इन्हें सेट करती है तो यह एक बड़ा सौदा नहीं है।

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

+0

और उन्होंने एमएसबीयूआईएलडी एकीकरण जोड़ा, जो कमांड लाइन से इमारत को आसान बनाता है। –

0

आप विभिन्न इंस्टॉलेशन को मजबूत करने के लिए किसी प्रकार के पथ पुनर्निर्देशन जैसे पदार्थ या हार्डलिंक्स का उपयोग कर सकते हैं। इस मुद्दे को हल करने के बाद, मैं डीओएफ फाइलों में जांच करने और उदाहरण का उपयोग करने का सुझाव देता हूं। कमांडलाइन बिल्ड के लिए सीएफजी फाइलें उत्पन्न करने के लिए Dof2cfg।

संबंधित मुद्दे