2009-12-07 10 views
11

कुछ ऐसा हो रहा है जिसे मैं समझा नहीं सकता।सबवर्सन विषमता - एसवीएन जानकारी संशोधन परियोजना फ़ोल्डर पर अंतिम बार संशोधित संशोधन से अधिक संशोधन

मेरे पास मेरी परियोजना की एक कामकाजी प्रति है - किया गया एसवीएन अपडेट (जो कहता है: 1895 में संशोधन करने के लिए अपडेट किया गया), मुझे पता है कि यह नवीनतम है। जब मैं प्रोजेक्ट फ़ोल्डर पर एक svn info करते हैं, संशोधन 1895 है, लेकिन अंतिम बदला गया रेव 1888

लॉग TortoiseSVN का उपयोग कर निरीक्षण पिछले संशोधन, 1895 के कोई निशान 1895 को एक svn log रिक्त है के रूप में 1888 से पता चलता है , और 1895 और 1888 के बीच svn diff भी खाली है, यानी। कोई अंतर नहीं

मैं किसी तरह से कुछ बदनाम संशोधन के साथ कैसे समाप्त हुआ जिसने वास्तव में कुछ भी नहीं बदला है? यह मूल रूप से बिल्ड एमएसबिल्ड एसवीएनवीर्सन कार्य के साथ सिंक से बाहर होने के लिए बिल्ड सर्वर (लगता है कि यह 1888 पर है) (कारण संशोधन 18 9 5 है) का कारण बन रहा है।

किसी भी सुझाव की सराहना की।

संपादित करें: संशोधन हमेशा पूरे भंडार के लिए नवीनतम संशोधन दिखाएगा हैं, तो इसका मतलब है कि SvnVersion MSBuild कार्य तरह बातें (जो svnversion.exe का उपयोग करता है, लेकिन इसी तरह व्यवहार दिखाता है) जब के लिए सही संशोधन प्रदर्शित नहीं करते आपके पास एक से अधिक प्रोजेक्ट एकल रिपोजिटरी है, आपको अपने संस्करण संख्या के लिए "अंतिम परिवर्तित रेव" का उपयोग करने की आवश्यकता होगी।

नतीजतन, अब मेरा खुद का SvnLastChangedRev MSBuild कार्य रोलिंग।

+0

यह वास्तव में एक बड़ा सौदा नहीं है कि यह संपूर्ण रेपो है: यदि आप उस संशोधन को चेकआउट करते हैं, तो आपको अभी भी आपके कोड की सही प्रति प्राप्त होगी वह परियोजना, और इसे फिर से बनाने में सक्षम हो। यदि आप क्रूज़ कंट्रोल जैसे कुछ का उपयोग कर रहे हैं, तो केवल बदलावों पर निर्माण करने के लिए सेट अप करें, तो आपको उस प्रोजेक्ट के लिए एक नया संस्करण नहीं मिलेगा (मान लीजिए कि यह एकमात्र चीज है) वैसे भी। – gregmac

+0

क्या आप अपने SvnLastChangedRev MSBuild कार्य के साथ कहीं भी गए थे? जैसा कि मुझे एक समान समस्या है –

+1

@ जेम्स - हाँ, मैंने कोडप्लेक्स पर उपयोगी एमएसबिल्ड कार्यों का एक समूह प्रकाशित किया है, जिसमें SvnLastChangedRev एक शामिल है। देखें: http://zealanditmsbuild.codeplex.com/ –

उत्तर

20

यह कोई समस्या या विषमता नहीं है ... संशोधन संख्या पूरे सबवर्जन भंडार पर लागू होती है, और इसलिए, अंतिम संशोधन संख्या की तुलना में भंडार में कहीं और परिवर्तन के कारण संशोधन संख्या अधिक हो सकती है जिस पर कुछ बदल गया है भंडार की शाखा में जिसमें आप काम कर रहे हैं।

, स्पष्ट करने के लिए यदि आप trunk के लिए प्रतिबद्ध, संशोधन 10 भंडार लाने, और फिर branches और tags में परिवर्तन की एक पूरी धसान संशोधन 1000 के भंडार लाता है और फिर 10 के लिए "पिछले संशोधन बदल गया" हो जाएगा trunk फ़ोल्डर, लेकिन पूरे भंडार का वर्तमान संशोधन संख्या 1000 होगी।

+0

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

+0

@WimHollebrandse आप केवल वैश्विक स्तर पर अद्यतन संशोधन देखेंगे जब आप चेकआउट/रिपॉजिटरी की रूट पर svn अद्यतन चलाते हैं। सबवर्सन पैरेंट निर्देशिकाओं के लिए मेटाडेटा को कभी अपडेट नहीं करेगा। –

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