2011-10-09 8 views
7

किसी डेवलपर को रिपोजिटरी में सभी स्रोत कोड तक पहुंच प्राप्त करने से पूर्ण (जावा) एप्लिकेशन के जीआईटी भंडार की रक्षा कैसे करेगा। मुझे पता है कि जीआईटी एक वितरित वर्जनिंग कंट्रोल है जहां एक डेवलपर आमतौर पर पूर्ण (!) भंडार "डाउनलोड/प्राप्त करता है"।गिट: एक्सेस कंट्रोल? प्रैक्टिस में कैसे करें

मेरे सवाल:

  1. कैसे Git में "मॉड्यूल/स्वायत्त भागों" sperate के लिए? उदाहरण के लिए एक मॉड्यूल "भुगतान परत" और "डेटाबेस परत" और "प्रसंस्करण परत" और आगे सभी एपीआई/इंटरफेस के माध्यम से सारणीबद्ध है। क्या मुझे उन सभी मॉड्यूल के लिए एक अलग गिट भंडार स्थापित करना है?

  2. क्या जीआईटी में एक बड़ी भंडार रखने का कोई तरीका है लेकिन किसी भी तरह से मार्ग से पहुंच प्रतिबंधित करना है? (एक ग्राहक को केवल उन फ़ाइलों को दोबारा प्राप्त करना चाहिए जिन्हें उन्हें पहुंच प्रदान की गई थी)

  3. क्या जीआईटी में एक बड़ी भंडार रखने का कोई तरीका है लेकिन किसी भी तरह से शाखा/टैग द्वारा पहुंच को प्रतिबंधित करना है?

  4. बस के मामले में किसी को यह भी जानता है (एक ग्राहक को केवल उन फ़ाइलों वह करने के लिए उपयोग प्रदान की गई थी recive होना चाहिए): वहाँ ग्रहण में एक तरह से एक परियोजना में और भी (इसके विपरीत कई Git संग्रह से सामग्री chekout है) एक ग्रहण परियोजना में कई अलग-अलग जीआईटी भंडारों (पैकेज नामों/पथों या संदर्भ मेनू में आधारित) के भीतर कोड प्रतिबद्ध करते हैं?

आपको बहुत धन्यवाद मार्कस!

उत्तर

4
  1. यदि आप अंतर नियंत्रण चाहते हैं तो आपको कोड को कई गिट रिपॉजिटरीज़ में विभाजित करना होगा। आप शाखाओं या जो कुछ भी नियंत्रित नहीं कर सकते। गिट पूरे रेपो डाउनलोड करता है। अवधि।

  2. आप कई गिट भंडारों के निर्माण के साथ काम करना आसान बनाने के लिए एक तंत्र के लिए गिट मॉड्यूल देख सकते हैं।

+1

यह * पूरी तरह से * सत्य नहीं है - गिटोलाइट जैसी चीज़ें वास्तव में प्रति-अनुमति अनुमतियां कर सकती हैं। लेकिन मैं निश्चित रूप से गोपनीय जानकारी की रक्षा के लिए इसे अनुशंसा नहीं करता - मैं भंडार को विभाजित करने के लिए सुझाव देता हूं। – Cascabel

+0

@ जेफ्रोमी: हां, लेकिन यहां तक ​​कि गिटोलाइट केवल शाखा/टैग/फ़ाइल/निर्देशिका स्तर पर _write access_ को नियंत्रित कर सकता है; रीड एक्सेस हमेशा प्रति रेपो (http://sitaramc.github.com/gitolite/index.html#gl_what) है। – sleske

2

1) और 4) आपके निर्माण के बहुत सारे उपयोग पर निर्भर करता है। गिट में आप प्रति मॉड्यूल अलग-अलग रिपोजिटरी रखने का प्रयास करते हैं, लेकिन यदि स्रोत पेड़ का सेटअप दर्दनाक हो जाता है तो आप गिट सबमिड्यूल का उपयोग कर सकते हैं (हालांकि उनके जैसे ज्यादा लोग नहीं) या एंड्रॉइड प्रोजेक्ट का रेपो टूल उपयोग करता है। यह आपको अधिक उपप्रोजेक्ट से बना "छाता" प्रोजेक्ट प्राप्त करने की अनुमति देता है। सुनिश्चित नहीं है कि यह केवल कुछ घटकों के लिए इसके लायक है। बस एक गिट रेपो अभी भी अधिक समझ में आता है।

प्रश्नों के लिए 2) और 3):

पहुँच के लिए, मैं सुझाव है कि प्रत्येक उप-टीम का अपना कांटा (भंडार) रहता है और किसी की समीक्षा करता है कि वे क्या एकीकरण भंडार करने के लिए धक्का। यदि आप इस दृष्टिकोण को पसंद करते हैं, तो आप स्क्रिप्ट लिखने वाली नीतियों को लागू करने के लिए गिट सर्वर हुक का उपयोग कर सकते हैं।

इस मामले में, हुक जांच सकता है कि कौन धक्का दे रहा है, और पथ या रेफस्पेक (शाखा) नीति का वर्णन करने वाली कुछ कॉन्फ़िगरेशन फ़ाइल के विरुद्ध है। यह यहाँ प्रलेखित है:

https://git-scm.com/book/en/v2/Customizing-Git-An-Example-Git-Enforced-Policy

0

1)। गिट submodules http://linux.die.net/man/1/git-submodule

2,3) देखें।गिटोलाइट https://github.com/sitaramc/gitolite/blob/pu/doc/gitolite.conf.mkd

4) देखें। मुझे नहीं लगता कि कोई ग्रहण-गिट प्लगइन्स इसे अनुमति देता है। हालांकि, आप जो चाहते हैं उसे प्राप्त करने के लिए बाहरी/कमांड-लाइन क्लाइंट का उपयोग कर सकते हैं।

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