2008-11-29 10 views
19

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

किसी को भी मुझे है कि एक निजी Git रेपो के साथ दो लोगों के लिए, प्रत्येक दिखाने के उदाहरण, Git प्रारूप पैच और Git-am का उपयोग कर पैच का आदान प्रदान की एक छोटी श्रृंखला दे सकते हैं? या वैकल्पिक रूप से मुझे मौजूदा गिट दस्तावेज़ और/या ट्यूटोरियल के लिए इंगित करें?

+0

Git-बंडल http://stackoverflow.com/questions/2175961/git-keeping-a-project-synced-via-mail/2188030#2188030 – ijk

उत्तर

21

यह सबसे अच्छा है कि वे एक-दूसरे के Git रेपोस देख सकते हैं काम करता है। गिट स्वयं को इस तरह से प्रबंधित किया जाता है (वहां एक सार्वजनिक रेपो लोग संदर्भ दे सकते हैं, और फिर वे वहां से प्रारूप-पैच)। यदि कभी एक दूसरे के प्रतिनिधि को देखते हैं, तो चीजें थोड़ा और कठिन होती हैं ...

एक चीज जो वे कर सकते हैं वह आखिरी बार एक प्रारूप पैच करने का संदर्भ बनाए रखता है। मान लीजिए कि वे सिर्फ (.git सहित) अपने पूरे पेड़ भेजकर शुरू करते हैं:।।

tar cvf - mytree | gzip -9vc > /tmp/mytree.tgz 
# mail /tmp/mytree.tgz 
git tag last-send 
# hack, commit, hack, commit 
git format-patch -M -C last-send.. 
# mail 00* && rm 00* 
git tag -f last-send 

git tag इस रूप में एक "हल्के टैग बना देता यह बुकमार्क का एक प्रकार है यह लोगों को ट्रैक रखने के लिए के लिए एक आसान तरीका हो जाएगा क्या वे ऐसा भेजा वे इसे फिर से अगली बार भेज सकते हैं

दूसरी ओर:।।

# get patches from mail and place in /tmp 
git am /tmp/00* 
rm /tmp/00* 
+0

उदासी, वे कभी नहीं देख एक दूसरे repos-- - वे दोनों दो रिपो में से एक पर काम कर रहे एक कंप्यूटर के सामने हो सकते हैं। लेकिन ऐसा लगता है कि मैं क्या उम्मीद कर रहा था ताकि यह मेरा अपमान हो जाए। –

+0

इस उत्तर के लिए धन्यवाद। इससे मुझे गिट में एक गन्दा एसवीएन भंडार बदलने में मदद मिली। मेरे अनुभव http://blog.orfjackal.net/2009/05/converting-confused-svn-repositories-to.html –

+0

'गिट बंडल' के बारे में क्या हैं? लगता है कि कोड साझा करने के इस वर्कफ़्लो के लिए यह बेहतर तरीका है। प्रारूप-पैच के विपरीत एक तरफा संचार वर्कफ़्लो है। – Sukima

0

ऐसा लगता है कि git bundle बेहतर विकल्प है git format-patch के विपरीत एक-तरफ़ा संचार कार्यप्रवाह है जो, बंडल आपको अनुमति देता है सार्वजनिक रिमोट के साथ उपयोग किए जाने वाले वही वर्कफ़्लो का लाभ उठाने के लिए, लेकिन सीधे पहुंच से अलग होते हैं।

यह स्नीकर-नेट के लिए डिज़ाइन किया गया है और छात्रों यूएसबी या ईमेल बंडलों को बचाने के लिए के लिए एकदम सही होगा।

पैच संवाद स्थापित करने की एक परियोजना का नेतृत्व शैली से अनुमोदन के लिए प्रस्तुत के लिए और अधिक कर रहे हैं।

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