2012-04-13 17 views
5

में किसी प्रोजेक्ट के एसवीएन संशोधन सहित सी स्रोत कोड (मेकफ़ाइल में) में मेरे प्रोजेक्ट (फ़ाइल संशोधन नहीं) के एसवीएन संशोधन को कैसे शामिल किया जाए?सी स्रोत कोड

उत्तर

8

हम अपने makefile में इस तरह की एक पंक्ति का उपयोग करें:

REPO_REV := $(shell svnversion -n) 

एक मेकअप चर में काम कर रहे प्रतिलिपि के संशोधन संख्या संग्रहीत करता है। सी कोड में इसका उपयोग करने के लिए, आप अपने मेकफ़ाइल का उपयोग कर सकते हैं जो कि कंपाइलर कमांड लाइन पर मैक्रो को परिभाषित करने के लिए मूल्य (जीसीसी के लिए -DREPO_REV=$(REPO_REV) जैसे कुछ)।

4
SVN book से

:

नए उपयोगकर्ताओं को अक्सर कैसे $Rev$ कीवर्ड काम करता है से उलझन में रहे हैं। चूंकि भंडार में एक एकल, वैश्विक रूप से बढ़ती संशोधन संख्या है, इसलिए कई लोग मानते हैं कि यह वह संख्या है जो $ Rev $ कीवर्ड के मूल्य से प्रतिबिंबित होती है। लेकिन $Rev$ अंतिम संशोधन को दिखाने के लिए विस्तारित करता है जिसमें फ़ाइल बदल दी गई है, न कि अंतिम संशोधन जिसे इसे अपडेट किया गया था। इसे समझना भ्रम को दूर करता है, लेकिन निराशा अक्सर होती है-सबवर्सन कीवर्ड के समर्थन के बिना, आप स्वचालित रूप से अपनी फ़ाइलों में वैश्विक संशोधन संख्या कैसे प्राप्त कर सकते हैं?

ऐसा करने के लिए, आपको बाहरी प्रसंस्करण की आवश्यकता है। svnversion नामक टूल के साथ सबवर्जन जहाजों, जिसे इस उद्देश्य के लिए डिज़ाइन किया गया था। यह आपकी कार्यशील प्रतिलिपि को क्रॉल करता है और इसे पुनरीक्षण (ओं) के आउटपुट के रूप में उत्पन्न करता है। आप अपनी फाइलों में संशोधन जानकारी को एम्बेड करने के लिए, इस प्रोग्राम का उपयोग कर सकते हैं, साथ ही कुछ अतिरिक्त टूलिंग भी कर सकते हैं। svnversion पर अधिक जानकारी के लिए, अध्याय 9, सबवर्जन पूर्ण संदर्भ में “svnversion—Subversion Working Copy Version Info” नामक अनुभाग देखें।

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