2010: Gitolite 2 के लिए
नहीं (सही सामग्री के साथ एक समर्पित शाखा जिसका अर्थ है की जरूरत है बनाया जाना) (gitolite 3 के लिए परिवर्तित हो सकता है)।
author of gitolite himself put it के रूप में:
मैं एक परियोजना कहा जाता gitolite है कि एक केंद्रीय सर्वर पर एक से अधिक Git संग्रह के लिए शाखा स्तर तक पहुँच नियंत्रण का एक बहुत अच्छा काम करता है के लेखक हूँ। मेरा लक्ष्य "बाजार" गिट के सटीक कॉर्पोरेट उपयोगकर्ता है।
अब तक, मैं एक स्थिति है जहाँ -पढ़ने के लिए पहुँच जरूरतों (Git कि वैसे भी नहीं कर सकते) एक रेपो के ortions लिए प्रतिबंधित किया जा करने के लिए नहीं देखा है।
[अच्छी तरह से sparse checkout मदद कर सकता है, लेकिन यह वैसे भी आसान नहीं है)
राइट-पहुँच अक्सर प्रतिबंधित किए जाने की जरूरत है, और gitolite आप को सीमित कर सकते हैं:
- दोनों द्वारा शाखा का नाम (उदाहरण के लिए केवल क्यूए लीड "क्यूए-किए गए" शाखा में एक प्रतिबद्ध श्रृंखला को धक्का दे सकती है)
- या फ़ाइल नाम से (उदाहरण के लिए, केवल टीम लीड मेकफ़ाइल में परिवर्तन कर सकती है और
src/very-important-and-critical-module
में फ़ाइलें)।
अनुभाग "security, access control, and auditing" देखो, और यहाँ लिखने पहुँच का एक उदाहरण है:
conf/example.conf
file सभी विस्तृत वाक्य रचना है:
repo foo
RW+ = lead_dev # rule 1
RW = dev1 dev2 dev3 dev4 # rule 2
RW NAME/ = lead_dev # rule 3
RW NAME/doc/ = dev1 dev2 # rule 4
RW NAME/src/ = dev1 dev2 dev3 dev4 # rule 5
प्रत्येक फ़ाइल टच उन नियमों के खिलाफ धक्का दिया जा रहा है द्वारा धोया जाता है।
- lead_dev किसी भी फ़ाइलों में परिवर्तन धक्का कर सकते हैं,
- dev1/2 "
doc/
" में फ़ाइलों में परिवर्तन धक्का कर सकते हैं और "src/
" (लेकिन शीर्ष स्तर README
),
- और dev3/4 कर सकते हैं केवल "
src/
" में फ़ाइलों में परिवर्तनों को पुश करें।
कहा जा रहा है, कठिन सवाल बनी हुई है, ओपी यह कहते हैं:
कैसे मैं केवल कुछ चयनित फ़ाइलों नई शाखा डायन बना सकता हूँ, और पिछले प्रतिबद्ध हटा सकते हैं, इसलिए ग्राफिक डिजाइनर उन्हें एक्सेस नहीं कर सका, और केवल क्लोन के बाद चुने गए लोगों को देख सकता था?
जनरल सिद्धांत:
इतिहास में एक बिंदु है जहां उन फ़ाइलों को वर्तमान नहीं थे पर 'graph_designer' शाखा पैदा करते हैं।
वहाँ से, दो विकल्प:
- या तो आदेश पहले ही
dir2
फाइलों के साथ एक है करने के लिए अपने वर्तमान प्रतिबद्ध (git rebase --interactive
) पुनर्निर्माण
- या, यदि (और फिर किसी अन्य निर्देशिका को प्रभावित करता है) पहली पसंद बहुत अधिक काम का प्रतिनिधित्व करती है (या संभव नहीं है क्योंकि उन लोगों को पहले ही धक्का दिया गया है और अन्य रिपो में खींच लिया गया है), बस उस नई शाखा में प्रासंगिक फाइलों की प्रतिलिपि बनाएँ और जोड़ें।
इसका मतलब है, उन फ़ाइलों के लिए कोई पिछला इतिहास नहीं है, लेकिन उन्हें शुरुआत से ही उस इतिहास की आवश्यकता नहीं हो सकती है।
कि 'graph_designer
' क्लोन होने की अनुमति देने वाली एकमात्र शाखा होगी, और इसमें गैर-अधिकृत फ़ाइलों के साथ कोई इतिहास नहीं होगा।
इस विस्तृत उत्तर के लिए धन्यवाद। तो, मैं केवल कुछ चयनित फाइलों को नई शाखा चुड़ैल कैसे बना सकता हूं, और पिछले कामों को हटा सकता हूं, इसलिए ग्राफ़िक डिजाइनर उन्हें एक्सेस नहीं कर सका, और केवल क्लोन के बाद चुने गए लोगों को देख सकता है? – takeshin
@takeshin: इतिहास में एक बिंदु पर '' graph_designer' 'शाखा बनाएं जहां वे फ़ाइलें मौजूद नहीं थीं, उदाहरण के लिए, आप सीधे इसमें सही फाइलों की प्रतिलिपि बना सकते हैं और उन्हें प्रतिबद्ध कर सकते हैं (अर्थ: उन फ़ाइलों के लिए कोई पिछला इतिहास नहीं , लेकिन उन्हें शुरुआत से ही उस इतिहास की आवश्यकता नहीं हो सकती है)। वह 'graph_designer'' क्लोन होने की अनुमति देने वाली एकमात्र शाखा होगी, और इसमें गैर-अधिकृत फ़ाइलों के साथ कोई इतिहास नहीं होगा। – VonC
ध्यान दें कि यह अब gitolite v3 – jan