2008-09-23 15 views
8

मैं अलग स्रोत कोड नियंत्रण नीतियों पर एक सिंहावलोकन के लिए देख रहा हूँ। मैं केवल मुख्य लाइन नीति में आया था और टीम के साथ एक करने से पहले दूसरों को बेहतर ढंग से जानना चाहता हूं।स्रोत कोड नियंत्रण नीति

किसी एक सिंहावलोकन लिए एक लिंक प्रदान या यहाँ तक कि मुझे नीतियों के कुछ नाम दे तो मैं उस पर गूगल शुरू कर सकते हैं कर सकते हैं?

उत्तर

6

पेपर "streamed lines: branching patterns for parallel software development" ब्रांचिंग पैटर्न जैसे "मुख्य रेखा" पैटर्न का उल्लेख करते हुए एक उत्कृष्ट चर्चा है - यह पैटर्न के रूप में विकल्पों को पैटर्न के रूप में सूचीबद्ध करता है। लेखकों में से एक पेर्सफोर्स के रॉबर्ट ओरेनस्टीन है।

+0

लिंक मर चुका है। मुझे लगता है कि यह सही है: www.hillside.net/plop/plop98/final_submissions/P37.doc – Nippysaurus

0

मेरा पसंदीदा नीति है "कोई तोड़फोड़ करता है कि टिकट + ऑटो Trac टिप्पणी का संदर्भ नहीं है प्रत्येक के लिए प्रतिबद्ध के लिए": http://trac.edgewall.org/browser/trunk/contrib/trac-post-commit-hook

+0

हो सकता है, बस हो सकता है, में है, लेकिन इसके चारों ओर वापस ट्रंक करने के लिए प्रत्येक एकीकरण के बाद विकास शाखा को हटाने के द्वारा काम किया जा सकता है वास्तव में एक बंद रखरखाव पर्यावरण बंद कर दिया। मैं बहुत अधिक चाहता हूं कि सभी देवताओं को जांचने के लिए प्रोत्साहित किया जाता है। स्वचालित परीक्षण प्राप्त करें और सिस्टम को व्यवस्थित करें और सुनिश्चित करें कि आपके पास बेसलाइन के लिए कॉन्फ़िगरेशन ऑडिट हैं, लेकिन काम को हतोत्साहित न करें। –

2

मैं किताब Practical Perforce के महान उपयोग किया है। यद्यपि आप पर्सफोर्स के साथ काम नहीं कर रहे हैं, मुझे लगता है कि अध्याय 7 (सॉफ्टवेयर कैसे विकसित होता है) और अध्याय 8 (बेसिक कोडलाइन प्रबंधन) बहुत उपयोगी हो सकता है। आप उन्हें Google Books पर स्किम करने में सक्षम हो सकते हैं।

लाज़िमी भी इस विषय पर कई महान लेख है। Software Life-Cycle Modeling नीतियों के बारे में लिखता है।
पर्सफोर्स technical documentation पूरा करें।

और, कोई मैं काम कर रहा नहीं कर रहा हूँ के लिए न तो लाज़िमी है।

गुड लक, थॉमस

8

कोई खाली प्रतिबद्ध संदेशों।

0

प्रति-परिवर्तन के बजाय प्रति-फ़ाइल प्रतिबद्ध होते हैं।

यह है निम्न लाभ:

  • आप बाद में देख सकते हैं क्यों यह एक पंक्ति इस सटीक फ़ाइल में बदल दिया गया है (अहा, इस बग # 123 के लिए बग सुधार था)। यदि आप प्रति-फ़ाइल करते हैं तो संदेशों को फ़ाइल में किए गए परिवर्तनों का वर्णन करने के लिए प्रतिबद्ध करते हैं - जिन्हें आप वैसे भी diff के साथ देख सकते हैं। यदि आप प्रति-परिवर्तन करते हैं तो संदेश स्वीकार करते हैं कि परिवर्तन पहली जगह क्यों किया गया है।
  • परिवर्तन/बगफिक्स को वापस या विलय करना बहुत आसान है।
  • यह अपना काम बेहतर ढंग से व्यवस्थित करने के लिए के रूप में आप स्पष्ट रूप से एक भी बग/सुविधा पर ध्यान केंद्रित करने में मदद करता है/बदल आप काम कर रहे हैं। जब आप कर लेंगे तो आप प्रतिबद्ध करते हैं।

कुछ लोगों को लगता इस नीति अधिक प्रतिबद्ध पैदा करता है लेकिन मेरे अनुभव से आप कम सब के बाद करता है मिलता है। उदाहरण के लिए, आप रिफैक्टरिंग कर रहे हैं जो 50 फाइलों को प्रभावित करता है। रिफैक्टरिंग के बाद आपके पास एक संदेश "रिफैक्टर xyz उपप्रणाली" के साथ एक ही प्रतिबद्धता है।

बड़े बदलावों के लिए आपको dev-branch-per-change नीति पर विचार करना चाहिए।

+0

इसका परिणाम बहुत भयानक है, या नहीं? क्या आप एक स्रोत कोड नियंत्रण प्रणाली का नाम दे सकते हैं जो इस तरह की नीति का समर्थन करता है। मुझे पता है कि सभी सिस्टम केवल प्रति फ़ाइल प्रतिबद्ध समर्थन करते हैं। – boutta

+0

हाँ, यह बहुत काम करता है। जब तक वे वास्तविक हैं (http://thedailywtf.com/Articles/Productivity-20.aspx) यह कोई समस्या नहीं है @ विल्मंतस बरानौस्कस यह सुनिश्चित करना चाहता है कि वह ट्रैक कर सके कि व्यक्ति क्या करता है। यह एक व्यापार बंद है। –

+0

सबवर्जन इसका समर्थन करता है। जैसे आप बग # 123 पर काम करते हैं। इस बग को ठीक करने के लिए आपको 10 फाइलें बदलनी होंगी। जब आप कर रहे हैं, स्रोत पेड़ की जड़ पर आप प्रतिबद्ध करते हैं: svn प्रतिबद्ध -m "फिक्स्ड बग # 123।"। 10 फाइलों के संशोधन को एक ही संदेश के साथ एक ही प्रतिबद्ध के रूप में किया जाता है। –

0

बिल्ड को तोड़ने वाले किसी भी बदलाव को चेक-इन/प्रतिबद्ध न करें।

6

हम अपने प्रोजेक्ट में प्रतिबद्ध नीति के रूप में कई व्यावहारिक नियमों का उपयोग करते हैं। ये नियम हमें प्रत्येक संशोधन को तैयार-तैनाती स्थिति में रखने में मदद करते हैं। हमारे नियम केडीई प्रतिबद्धता नीति के समान हैं, यहां पोस्ट किया गया: http://techbase.kde.org/Policies/SVN_Commit_Policy। हर प्रतिबद्ध (उच्च से कम प्राथमिकता करने के लिए) होना चाहिए:

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

हम एक साधारण उपकरण SvnCommitChecker विकसित की है, डायन हमें इन नियमों में से कुछ की जांच करने से पहले SVN के लिए प्रतिबद्ध मदद करता है। मैं इसे अच्छे svn परिवर्तन इतिहास को रखने के लाभों के बारे में एक लेख के साथ निकट भविष्य में स्रोत फोर्ज करने की योजना बना रहा हूं।

2

इन दोनों मूलतः एक ही हैं:
Version Control for Multiple Agile Teams
Configuration Management Branching Strategy

हम ट्रंक स्थिर बनाने के लिए और डेवलपर्स जो कुछ भी वे अपने शाखाओं पर की जरूरत है सक्षम करने के लिए इस रणनीति का उपयोग कर रहे हैं।

वहाँ सबवर्सन के साथ कुछ समस्या है, क्योंकि यह Cyclic merges संभाल सकते हैं (दूसरे संस्करण नियंत्रण प्रणाली के लिए अप्रासंगिक)

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