मुझे निम्नलिखित समस्या है जो अन्य लोगों को सामना करना पड़ा होगा। मैं एक कोड बेस पर काम कर रहा हूं जो दो अलग-अलग प्लेटफार्मों पर चलता है। अधिकांश कोड प्लेटफ़ॉर्म के बीच साझा किए जाते हैं, लेकिन कोड के कुछ हिस्सों को किसी विशेष प्लेटफॉर्म के लिए अनुकूलित किया जाता है। तो, फ़ाइल foo.cpp
में फ़ंक्शन foo()
का एक सामान्य कार्यान्वयन हो सकता है और फ़ाइल foo_A.cpp
में प्लेटफ़ॉर्म ए के लिए अनुकूलित कार्यान्वयन हो सकता है।क्या सबवर्सन में दो फाइलों को "उलझन" करने का कोई तरीका है?
बेशक, कभी-कभी ऐसा होता है कि एक डेवलपर foo.cpp
संशोधित करता है और उन्हें सिंक में रखने के लिए foo_A.cpp
में एक समान परिवर्तन करने के लिए भूल जाता है। इससे बहुत अप्रिय बग की ओर जाता है, जो ट्रैक करना मुश्किल होता है।
अंत में, मेरा प्रश्न है: क्या सबवर्सन में दो या दो से अधिक फ़ाइलों को "उलझाने" का कोई तरीका है? क्या यह संभव है जब कोई भी foo.cpp
में परिवर्तन करता है ताकि svn को चेतावनी जारी हो, foo_A.cpp
अपडेट करने के लिए अनुस्मारक?
फ़ंक्शंस अलग-अलग फ़ाइलों में क्या कारण है? मैं उन्हें एक फ़ाइल में #ifdef के साथ दूसरे पर एक समारोह शामिल करने के लिए होगा। यह सीधे समस्या को हल नहीं करता है, लेकिन यह कार्यों को एक साथ बहुत करीब रखता है। – Robert
यह ऐसा कुछ नहीं है जिसे वास्तव में वीसीएस द्वारा संभाला जाना चाहिए। इसके बजाए, यह आपकी संपादन प्रक्रिया है जिसे किसी भी तरह दो फाइलों को सिंक में रखना चाहिए। –
@Neil, कैसे? असल में, आपको याद रखना होगा कि हर बार जब आप foo.cpp को संशोधित करते हैं, तो आपको foo_A.cpp को संशोधित करने की आवश्यकता हो सकती है। और यदि आपके पास 500 फाइलें हैं, जिनमें से 20 में एक अनुकूलित समकक्ष है, तो इसे भूलने की संभावना बहुत अधिक है। उस तथ्य को जोड़ें कि अनुकूलित संस्करण एक अलग व्यक्ति द्वारा लिखा गया है। VCS का उपयोग करके जांच करने और आपको चेतावनी देने के लिए यदि उन 20 फ़ाइलों में से एक संशोधित है तो उचित लगता है। – Dima