2009-02-28 7 views
10

मुझे एक कार्यक्रम का हिस्सा लिखने का अनुबंध मिला है। दूसरे भाग को लिखने वाला व्यक्ति दूसरे शहर में है। मैं आगे और आगे भेजने के लिए एक सुविधाजनक तरीका खोजना चाहता हूं। अन्य कारणों से, मैं एक वितरित वीसीएस के रूप में गिट का उपयोग करना और ईमेल परिवर्तनों को आगे और आगे सीखना चाहता हूं। (मैंने लॉकिंग के साथ हमेशा एससीसीएस, आरसीएस और पीवीसीएस के साथ काम किया है। मैं खुद को धक्का देना चाहता हूं कि & विलय और केंद्रीय सर्वर पर निर्भर न होने के लिए बेहतर तरीके से उपयोग करना है।)

हमें करने की ज़रूरत है निम्नलिखित दो कार्य (सुंदर मानक सूची):
(ए) हम में से प्रत्येक बग फिक्स और नई सुविधाओं में योगदान देता है जिसके लिए दोनों भागों में परिवर्तन की आवश्यकता होती है।
(बी) ग्राहकों के लिए बाइनरी संकलित और पैकेज करें।
(हमें उन सुविधाओं पर अलग-अलग काम करने की भी आवश्यकता है जो दूसरे पर निर्भर नहीं हैं, लेकिन मुझे लगता है कि कार्य (ए) के लिए काम करने वाली कोई भी चीज़ इसके लिए भी काम करेगी।)

पृष्ठभूमि: दूसरे व्यक्ति ने कभी भी उपयोग नहीं किया है पहले एक वीसीएस; वह विचार के लिए थोड़ा प्रतिरोधी है। उन्हें यह भी पता नहीं था कि वे अभी भी लॉकिंग चेकआउट का उपयोग नहीं करते हैं। मुझे पर्याप्त गहराई में जो कुछ भी करना है, उसे समझने की ज़रूरत होगी कि मैं उसे किसी न किसी धब्बे पर उसकी मदद कर सकता हूं, जिसमें उसके हिस्से पर ज्यादा निराशा नहीं होती है। वह सर्वर पर स्रोत संग्रहीत करने के साथ भी बहुत असहज है, जो परिवर्तनों को ईमेल करना पसंद करने का एक और कारण है। हम उन्हें आसानी से एन्क्रिप्ट कर सकते हैं।

अन्य संभवतः प्रासंगिक संदर्भ: हम विंडोज़ पर डेल्फी का उपयोग हमारे विकास पर्यावरण के रूप में कर रहे हैं। यह बेहद असंभव है कि हम कभी भी एक और डेवलपर जोड़ देंगे। हमें केवल वर्ष में दो बार ग्राहक संस्करणों को पैकेज करने की आवश्यकता है, अगर ऐसा है। ग्राहकों की संख्या शायद दस से अधिक नहीं होगी।

प्रश्न:
1) क्या मुझे इस परियोजना का उपयोग वितरित विकास के लिए तकनीक सीखने के लिए करना चाहिए? या यह इतना अधिक है कि मुझे कुछ आसान करना चाहिए? मुझे सीखने पर कुछ अतिरिक्त समय बिताना नहीं है, लेकिन कुछ हफ्तों से ज्यादा नहीं।

2) प्रश्न पूछने के लिए "हां" मानते हैं, हम ऊपर दिए गए प्रत्येक कार्य के लिए किस वर्कफ़्लो का उपयोग करना चाहिए?

3) विंडोज़ जीयूआई प्रोग्राम सभी आवश्यक कार्यों को क्या करेंगे? (मैं कमांड लाइन सामान के साथ बहुत सहज हूं; वह नहीं है।)

आपकी मदद के लिए धन्यवाद।

मैंने "गिटिंग शुरू करने" पर एक सुंदर विस्तृत ट्यूटोरियल लिखा है जो दिखाता है कि मैंने अब तक गिट का उपयोग करने के बारे में क्या सीखा है। यदि आप इसे अभी तक पढ़ना चाहते हैं तो यह http://xorandor.com/GittingStarted पर है। मैंने इसे एक गिट नौसिखिया के लिए लिखने की कोशिश की जो थोड़ा जानता है लेकिन सामान्य रूप से वीसीएस के बारे में बहुत कुछ नहीं। मैं इसे और अधिक सीखने की योजना बना रहा हूं।2 गैर-सह-स्थित डेवलपर्स के लिए उपयोग करने के लिए क्या गिट वर्कफ़्लो उपयोग किया जाता है?

+1

आप इसे ऐसे लड़के के साथ लिख रहे हैं जो पहले कभी संस्करण नियंत्रण का उपयोग नहीं करता है? डरावना! –

उत्तर

4

दूसरे व्यक्ति ने पहले कभी VCS का उपयोग नहीं किया है; वह विचार के लिए थोड़ा प्रतिरोधी है।

मैं उन उपयोगकर्ताओं को प्रशिक्षण और समर्थन में शामिल रहा हूं जिन्हें स्रोत-सुरक्षित से विचलन में स्विच करने के लिए मजबूर किया गया था। उपयोगकर्ता प्रतिरोध की एक आश्चर्यजनक राशि रही है। यह अब एक साल से अधिक हो गया है और मुझे नियमित रूप से चीजों को ठीक करने के लिए बुलाया जाता है जब "उपversण ने मेरी सामग्री तोड़ दी" (यह निश्चित रूप से कभी भी मामला नहीं है)।

यह जानकर, मैं कोशिश करने में बहुत संकोच करता हूं और किसी को भी वीसीएस से स्विच करने में मदद करता हूं (जो शायद सबसे अधिक उपयोगकर्ता के अनुकूल वीसीएस नहीं है)। विशेष रूप से अगर वे वीसीएस के विचार से नफरत करते हैं। निस्संदेह अगर आप उन्हें अपने डेस्क पर मदद नहीं कर सकते हैं।

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

4

क्या आप इस प्रोजेक्ट का उपयोग गिट सीखने के लिए करना चाहिए? मैं हाँ कहूँगा।

inherent benefits of source control के अलावा, गिट का उपयोग करने से प्रत्येक डेवलपर सिस्टम पर भंडार की पूरी प्रतियां होने का लाभ होता है।

एक चीज जो मैं प्रत्येक के पास भंडार रखने के शीर्ष पर करता हूं, यह है कि आप प्रत्येक दिन केंद्रीय सर्वर के साथ सिंक करते हैं।

कार्यप्रवाह जाना चाहते हैं:

  1. आप जितनी बार आप कर सकते हैं के रूप में अपने स्थानीय Git भंडार में परिवर्तन करें।
  2. एक निश्चित अंतराल पर (एक दिन में, एक बार एक बड़ा बग फिक्स या फीचर इत्यादि के बाद) अपने रिपॉजिटरी को अपने वेब होस्ट या अन्य गिट होस्टिंग प्रदाता (उर्फ, GitHub) पर स्थित केंद्रीय भंडार तक दबाएं।
  3. हमेशा एक दूसरे के भंडार के बजाय केंद्रीय भंडार से परिवर्तन खींचें। आप केंद्रीय भंडार को अपने रिलीज रेपो के रूप में देख सकते हैं, और यह भ्रम से बच जाएगा क्योंकि रेपो (आपका या उसका) सबसे चालू है।

मुझे पता है कि एक वितरित संस्करण नियंत्रण प्रणाली का पूरा बिंदु केंद्रीय रिपो नहीं है, लेकिन मुझे वास्तव में उस अतिरिक्त प्रति ऑफसाइट को पसंद है। अगर कुछ भी आपको बैकअप उद्देश्यों के लिए भंडार की एक और प्रतिलिपि देता है।

विंडोज़ पर गिट तक, मैं illustrated guide to running git on windows देखेंगे। गिट-गुई में निर्मित वांछित होने के लिए बहुत कुछ छोड़ देता है, लेकिन यह कार्यात्मक और प्रयोग योग्य है।

इसके अलावा, चूंकि आपका साथी स्रोत नियंत्रण के लिए नया है, इसलिए मैं एरिक सिंक के उत्कृष्ट Source Control HOWTO की अनुशंसा करता हूं। यह आपको स्रोत नियंत्रण के के बारे में बहुत अच्छी जानकारी देता है।

0

मैं गिट में बहुत नया हूं, लेकिन शायद शुरू करने का सबसे तेज़ तरीका यह है:
गिट के साथ आप अपने कंप्यूटर पर दो रिपोजिटरी बना सकते हैं।
आपके काम के लिए एक और दूसरा वह काम जो वह आपको भेजता है।
वहाँ nice tutorial to start (के रूप में निक ने उल्लेख किया)
यह उपकरण यदि आप पहले TortoiseGit

मेरे बिंदु के साथ खिड़कियों/तोड़फोड़ काम अच्छा है: उसे पढ़ाने के लिए जब तक आप Git में बहुत अच्छा लग रहा है शुरू नहीं करते हैं, एक दोनों बनाना अपने कंप्यूटर में repos/शाखाओं।

0

मैं बस प्रत्येक पर ऑटोसेटअपबेस कॉन्फ़िगर करता हूं और बस एक सुंदर सरल सेटअप के साथ शुरू करता हूं।

आपको मिलने वाले संघर्षों को गले लगाओ - वे परिवर्तन हैं जो अन्यथा खो गए होंगे।

1

आईएम मेरा अनुभव, गिट विंडोज पर बहुत अच्छी तरह से समर्थित नहीं है, अभी तक।

इसी तरह के लिए, लेकिन आईएमएचओ अधिक उपयोगकर्ता के अनुकूल डीवीसीएस, Mercurial (a.k.a. hg) देखें। इसमें एक कछुए-ग्राहक और एक दोस्ताना कमांड लाइन उपकरण भी है।

Mercurial के लिए विजुअल स्टूडियो और ग्रहण प्लगइन्स भी हैं (मुझे लगता है कि NetBeans भी)। वे उचित रूप से अच्छी तरह से काम करते हैं और अन्य उपकरणों में एक महान ऐड-ऑन हैं। (सामग्री को जोड़ा/हटाया गया/स्वचालित रूप से बदला गया है और मूल सिंक्रनाइज़ेशन कार्य (पुश/पुल) ठीक काम करता है।)

+0

क्या आपने कछुए-गिट के बारे में सुना था? – Avram

+0

युप, लेकिन जब मैंने इसे देखा (नव 2008) यह लगभग एचजी के संस्करण के रूप में पूर्ण नहीं था। साथ ही, मुख्य डेवलपर उस समय सामुदायिक समर्थन/प्रतिक्रिया की कमी के साथ थोड़ा परेशान था। ऐसा लगता है कि अब और कुछ चीजें हो रही हैं, http://repo.or.cz/w/TortoiseGit.git को देखकर। – Macke

1

ऐसा लगता है कि गिट emailed patches functionality में निर्मित है। मैंने इसका उपयोग नहीं किया है, इसलिए मैं इसकी उपयोगीता के लिए बात नहीं कर सकता।

0

चूंकि अन्य डेवलपर संशोधन नियंत्रण अवधारणाओं से परिचित नहीं है, इसलिए मैं धीरे-धीरे शुरू करने का सुझाव देता हूं।

मेरे सुझाए गए वर्कफ़्लो में आपकी तरफ एक भंडार शामिल है कि वह "क्लोन गिट" कर सकता है। उसे दिखाएं कि वह उससे परिवर्तन कैसे प्राप्त कर सकता है और उसे आपके परिवर्तनों को वापस भेज सकता है। उसे दिखाएं कि कैसे गिट आसपास के बदलावों को मेल कर सकता है। इस तरह, आप वह व्यक्ति बनेंगे जो संपादन विवादों के बारे में चिंता करने की ज़रूरत होगी जो उन लोगों के लिए भ्रम का एक बड़ा स्रोत है जो पहले कभी संस्करण नियंत्रण प्रणाली का उपयोग नहीं करते हैं।

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