2009-09-04 18 views
13

मैं इस सेमेस्टर के एक नए विश्वविद्यालय में एक नया कोर्स पढ़ रहा हूं, और मैं वास्तव में अपने छात्रों को सर्वोत्तम अभ्यासों का उपयोग करके चलाने और चलाने में रूचि रखता हूं। इस तरह, मैं गिट रिपॉजिटरीज़ का उपयोग करके उनसे होमवर्क असाइन करना और प्राप्त करना चाहता हूं। दुर्भाग्यवश, मैं गिट का उपयोग करता हूं, लेकिन मुझे यह समझने में पर्याप्त जानकारी नहीं है कि संभावित सुरक्षा छेद क्या हैं और उनसे कैसे बचें। इसके अलावा, मैंने केवल व्यक्तिगत संस्करण नियंत्रण के लिए गिट का उपयोग किया है, और कभी भी समूह या टीम में नहीं।क्या मैं असाइनमेंट सबमिशन के लिए गिट का उपयोग कर सकता हूं?

मेरी वर्तमान योजना मशीन ए को उपयोगकर्ताओं के साथ 1-12 सेट करने के लिए है, जो मेरे प्रत्येक छात्र के अनुरूप है। मैं प्रत्येक छात्र के लिए एक एसएसएच सार्वजनिक/निजी कुंजी जोड़ी, और एक प्रारंभिक गिट भंडार भी उत्पन्न करूंगा। छात्र तब नए असाइनमेंट के लिए रिपॉजिटरी एक्सेस कर सकते हैं और सबमिट करते समय इसे दबा सकते हैं।

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

संपादित करें: यह पाठ थोड़ा अस्पष्ट था। जब मैं एक असाइनमेंट पूरा करता हूं या एक नया दिया जाता है तो मैं उनके व्यक्तिगत भंडार में धक्का/खींचने का इरादा रखता हूं। मुझे लगता है कि मैं अपने लैपटॉप में असाइनमेंट को धक्का नहीं दे पाऊंगा :)

तो मैं कहां से शुरू करूं? मैं किसके लिए देखता हूं? क्या यह एक बुरा विचार है? यदि हां, तो क्यों?

+5

मुझे लगता है कि यह एक अच्छा विचार है। मैं निराश हूं कि अध्ययन के दौरान संस्करण नियंत्रण जैसे सर्वोत्तम प्रथाओं के लिए मुझे कितना कम जोखिम मिला। चाहे यह एक अच्छा विचार अलग है। –

+1

मुझे लगता है कि आपको असाइनमेंट प्राप्त करने के लिए उन्हें रेपो से खींचने के लिए जाना चाहिए। इस तरह वे काम कर रहे हैं, आप नहीं। –

+0

यह एक शानदार विचार है। हो सकता है कि http://github.com/ पर असाइनमेंट निर्देश आदि शामिल करने के लिए एक क्षेत्र भी स्थापित करें ... – grenade

उत्तर

5

आप scie.nti.st: Hosting Git repositories, The Easy (and Secure) Way और Tv's cobweb: Snakepit and gitosis, things I've been working on ब्लॉग पोस्ट में वर्णित के रूप Gitosis, खजाने को SSH पहुँच का प्रबंधन करने के लिए उपयोग कर सकते हैं, और की "प्रो Git: व्यावसायिक संस्करण नियंत्रण" Chapter 4.7: Gitosis में किताब। यह पायथन में है, और setuptools की आवश्यकता है। या आप पर्ल में gitolite (पूर्व में गिटोसिस-लाइट) जैसे समकक्ष खोजने की कोशिश कर सकते हैं।

प्रत्येक समाधान के लिए छात्रों का अपना भंडार, या भंडार की जोड़ी होनी चाहिए: निजी व्यक्ति वह काम कर रहा है, और (सेमी) सार्वजनिक रूप से एसएसएच पहुंच के साथ संभवतः वह काम पूरा करने के लिए धक्का देता है । आप रखरखाव/इंटीग्रेटर की भूमिका निभाएंगे, और अपने सार्वजनिक भंडारों से आपके भंडार (या आपके भंडार) में परिवर्तनों को खींचें। छात्र आपके सार्वजनिक भंडार (या भंडार) से खींचेंगे।

+0

धन्यवाद Jakub। क्या आप अलग-अलग भंडार बनाए रखने के लिए गिटोसिस या उपयोगकर्ता खातों की अनुशंसा करते हैं? दोनों व्यवहार्य विकल्प की तरह लगते हैं और मुझे यकीन नहीं है कि कौन सा आसान और अधिक सुरक्षित होगा। –

+0

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

+2

गिटोसिस गिट रिपॉजिटरीज और उपयोगकर्ता पहुंच का प्रबंधन करने के लिए एक काफी आरामदायक समाधान है। आप सभी कॉन्फ़िगरेशन प्रबंधित कर सकते हैं और 1 कॉन्फ़िगरेशन फ़ाइल के माध्यम से एक्सेस अनुमतियां प्रबंधित कर सकते हैं। मैं लगभग एक साल के लिए गिटोसिस का उपयोग कर रहा हूं और प्रबंधन और उपयोग वास्तव में सरल है। यह निश्चित रूप से एक लायक है। – maff

2

आपके लिए अपनी रिपॉजिटरीज़ (जो कि उनके उपयोगकर्ता के स्वामित्व में हैं) में धक्का देना है, इसका तात्पर्य है कि आपको स्वयं को धक्का देने के लिए रूट विशेषाधिकार का उपयोग करने की आवश्यकता है। असाइनमेंट के पथ को प्रकाशित क्यों न करें और उन्हें खींचें?

बेशक, आप एसएसएच कुंजी को भी प्रतिबंधित कर सकते हैं ताकि केवल एक दिया गया आदेश चलाया जा सके; आप प्रदान की गई कुंजी के आधार पर एक एकल उपयोगकर्ता के स्वामित्व वाले एकल रिपो में पथ को प्रतिबंधित कर सकते हैं।

गिट एक डीसीवीएस है, इसलिए मुझे आपके एकाधिक खातों के विचार पसंद हैं।

+0

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

+0

हाँ, हो सकता है कि सिर्फ अपने उमास्क को 002 पर मजबूर कर दिया जाए (चाल बनाई गई फाइल समूह लिखने योग्य)। –

+1

'गिट इनिट' में सिर्फ इस स्थिति के लिए '--shared' विकल्प है। गिट रिपोजिटरी में ग्रुप एक्सेस बिट्स को कुछ ऐसा करने के लिए सेट करेगा जो समूह (समूह के लिए) बनाता है। –

2

यदि आप गिट का उपयोग करते हैं, तो आपके छात्रों को सॉफ्टवेयर कॉन्फ़िगरेशन प्रबंधन, संस्करण नियंत्रण इत्यादि से संबंधित कई अवधारणाएं सीखनी होंगी, जो भूगोल पाठ्यक्रम, शिक्षण, कहने के लिए अनावश्यक है। क्या आप एक एससीएम कोर्स पढ़ रहे हैं? यदि ऐसा है, तो आपका विचार अच्छा लगता है। यदि नहीं, तो आप Moodle जैसे कुछ पर विचार कर सकते हैं। यदि आपके उपयोगकर्ता विंडोज़ पर हैं, तो याद रखें कि गिट उस पर्यावरण में सबसे अच्छा नहीं है।

+0

मैं सहमत हूं, आपको वास्तव में यह सुनिश्चित करना चाहिए कि वे टूल को मास्टर करते हैं, इसलिए वे डेटा खोना नहीं चाहते हैं, इसलिए आपको पहले वीसीएस/डीवीसीएस मूलभूत बातें सिखाने के लिए कुछ घंटे बिताने की जरूरत है, फिर गिट विनिर्देश (रीफ्लॉग, इंडेक्स इत्यादि।)। – tonfa

+0

यह एक सौदा-ब्रेकर हो सकता है। यद्यपि कक्षा को स्नातक स्तर पर स्नातक स्तर पर पढ़ाया जा रहा है, स्नातक कंप्यूटर विज्ञान पृष्ठभूमि वाले छात्रों के लिए, संस्करण नियंत्रण पर कोई भी पाठ्यक्रम सामग्री नहीं होगी। मुझे आशा है कि वे अपने असाइनमेंट को चालू करने के लिए बहुत ही बुनियादी गिट एड/प्रतिबद्ध/पुश का उपयोग कर सकते हैं। मैं उन्हें प्रयोगशाला में एक घंटे आवंटित करने में सक्षम हो सकता हूं ताकि उन्हें गिट से परिचित हो सके, लेकिन अब और नहीं। –

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