2012-02-10 10 views
5

मेरे पास एक सबवर्जन रिपोजिटरी है जो एक और रिमोट रिपोजिटरी का दर्पण है। मैं हर सप्ताह भंडार दर्पण करने के लिए svnsync का उपयोग करता हूं। प्रतिबिंबित भंडार (स्थानीय प्रतिलिपि) केवल बैकअप के लिए है।सबवर्सन - क्या सभी कामों को अक्षम करना और भंडार को केवल पढ़ने के लिए संभव है?

मैं प्रतिबिंबित भंडार को केवल पढ़ने के लिए रखना चाहता हूं, यानी कोई भी इस भंडार में कोई भी परिवर्तन करने में सक्षम नहीं होना चाहिए, लेकिन वे इसे स्रोत फ़ाइलों को पढ़ने के लिए उपयोग कर सकते हैं क्योंकि यह रिमोट रिपोजिटरी से तेज़ है।

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

कोई विचार?

उत्तर

5

क्यों नहीं केवल anon-access = read और auth-access = svnserve.conf में पढ़ा गया है?

+0

मैंने अभी कोशिश की लेकिन यह अभी भी काम करता है - मैंने फ़ाइल /myrepository/conf/svnserve.conf – ziggy

+0

दोनों गुणों को असम्बद्ध किया है ध्यान रखें कि एनन-एक्सेस के लिए डिफ़ॉल्ट पढ़ा जाता है, इसलिए टिप्पणी करना ठीक है, लेकिन डिफ़ॉल्ट लेखक पहुंच के लिए लिखना है ताकि आपको इसे पढ़ने के लिए स्पष्ट रूप से सेट करना होगा। – mac

+0

हां मैंने सिर्फ पढ़ने के लिए ऑथ-एक्सेस बदलने की कोशिश की लेकिन मैं अभी भी प्रतिबद्ध हूं। मैं कोलाबनेट सबवर्जन एज का उपयोग कर रहा हूँ। इसमें जीयूआई के माध्यम से पहुंच प्रतिबंधित करने का विकल्प है, लेकिन मुझे लगता है कि बदलते svnserve मैन्युअल रूप से काम करना चाहिए। – ziggy

6

सबसे पहले, क्या आप अपने चेकआउट यूआरएल में http:// या svn:// का उपयोग कर रहे हैं?

यदि आप svn:// का उपयोग कर रहे हैं, तो आप खाली भंडार फ़ाइल के द्वारा अधिकृत पहुंच को हटाने के लिए svnserve.conf फ़ाइल को अपने भंडार में कॉन्फ़िगर कर सकते हैं। अनाम पहुंच डिफ़ॉल्ट रूप से 'केवल पढ़ने के लिए' है, जब तक कि आपने अपनी svnserve.conf फ़ाइल में उस सेटिंग को नहीं बदला है, तो आपको ठीक होना चाहिए। या, आप अनाम पहुंच को बंद कर सकते हैं, और अधिकृत पहुंच को read-only पर बदल सकते हैं।

हालांकि, यदि आप http:// का उपयोग कर रहे हैं, तो आपको अपने सबवर्सन सर्वर पर अपना अपाचे httpd कॉन्फ़िगरेशन कॉन्फ़िगर करना होगा ताकि लेखन पहुंच की अनुमति न हो।

यह ट्रिकियर हो जाता है क्योंकि अपाचे httpd प्रमाणीकरण स्थापित करने के कई तरीके हैं, और सिस्टम के आधार पर, अपाचे httpd एकाधिक स्थानों में संग्रहीत किया जा सकता है।

भंडार में सभी पढ़ने-लिखने के उपयोग को बंद करने के लिए pre-commit hook का उपयोग करने की एक और संभावना है।

वैसे, पुराना svnsync कमांड न केवल सिंक पढ़ने के लिए केवल svn पढ़ने-लिखने के उपयोग की आवश्यकता के लिए उपयोग करता है, बल्कि इसे पूर्व-सुधार-परिवर्तन हुक सेट भी होना पड़ता था, इसलिए svnsync कमांड भी संशोधित कर सकता है मूल भंडार से मेल खाने के लिए svn:log, svn:date, और svn:author गुण। इसका अर्थ यह है कि, यदि आप अपना रिपोजिटरी केवल-पढ़ने के लिए बनाते हैं, तो आप svnsync तोड़ सकते हैं। आपको svnsync काम करता है और क्या यह अभी भी मामला है, इस पर पढ़ने की आवश्यकता होगी। मेरा प्री-प्रतिबद्ध हुक भी उस समस्या को हल कर सकता है।

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