2011-08-16 13 views
15

में umask सेट करना मैंने गिट और गिटोलाइट स्थापित किया है, और किसी बिंदु पर मुझे कॉन्फ़िगरेशन फ़ाइलों में से एक में "उमास्क" सेटिंग दिखाई दे रही है। क्या यह गिट का उपयोग करके सिंक की गई सभी फ़ाइलों के लिए अनुमतियां सेट करता है? यही वही है जो मुझे चाहिए। मैं इसे कहाँ पा सकता हूँ?गिट/गिटोलाइट

उत्तर

20

umask settings in Gitolite नए बनाए गए रेपो के लिए उमास्क बदलने के लिए हैं (और उन रिपो द्वारा संस्करणों में प्रबंधित फ़ाइलों के बारे में नहीं)।
देखें gitolite.rc doc:

$REPO_UMASK, अष्टाधारी, डिफ़ॉल्ट 0077

डिफ़ॉल्ट UMASK कि का उपयोग करता है gitolite सभी रेपोस बनाता है और उनकी सामग्री rwx------ अनुमति है। जो लोग गिटवेब को चलाने के लिए चाहते हैं उन्हें एहसास है कि यह नहीं करेगा।

इस चर को 0027 (सिंटैक्स नोट करें: अग्रणी 0 आवश्यक है) को मानने के लिए सही तरीका है, और उसके बाद उपयोगकर्ता को वेबसर्वर (अपाचे, www-data, जो भी हो) चलाना है 'गिट' समूह।

आप पहले से ही gitolite स्थापित किया है, तो मौजूदा फ़ाइलों को मैन्युअल तय किए जाने की (एक umask या 0027 के लिए, कि chmod -R g+rX होगा) होगा। ऐसा इसलिए है क्योंकि umask केवल नव निर्मित फ़ाइलों पर अनुमतियों को प्रभावित करता है, मौजूदा नहीं।

यह सेटिंग एक का उपयोग करने के लिए इसी तरह की है जब आप सीधे एक Git रेपो (gitolite के बिना) बनाने के लिए:

core.sharedRepository 

जब group (या true), भंडार कई उपयोगकर्ताओं के बीच साझा करने योग्य बनाया गया है एक समूह में (सुनिश्चित करना कि सभी फाइलें और ऑब्जेक्ट समूह-लिखने योग्य हैं)।
जब all (या world या everybody), भंडार सभी उपयोगकर्ताओं द्वारा पढ़ने योग्य होगा, इसके अतिरिक्त group-shareable होने के साथ।
जब umask (या false), git umask द्वारा रिपोर्ट की गई अनुमतियों का उपयोग करेगा।

और भी देखें "How do I share a Git repository with multiple users on a machine?" और भी देखें।

जब आपके पास अनुमतियों के सापेक्ष प्लेटफार्मों के बीच संघर्ष होता है, तो आपके पास "instruct git to ignore file permissions changes" (git config core.fileMode false) का विकल्प भी है।

अपडेट: इस उत्तर में गिटोलाइट शामिल है 2. गिटोलाइट 3 के साथ सेटिंग $REPO_UMASK से $UMASK पर बदल दी गई है।