हमने अभी हमारे उत्पादन कोड के लिए गिट का उपयोग शुरू किया है, और हम अपने वर्कफ़्लो में थोड़ी सी समस्या में चल रहे हैं। हमें यह पता लगाने की आवश्यकता है कि सुविधा पर काम करते समय सामान्य कोड सुधार/तकनीकी ऋण सुधारों को कैसे संभाला जाए।गिट फीचर शाखाएं और मामूली कोड सुधार
हमने जो वर्कफ़्लो अपनाया है वह मुख्य विकास इकाई के रूप में 'विकास' का उपयोग करना और 'विकास' से फीचर शाखाओं पर सभी सुविधाएं विकसित करना है। जब कोई सुविधा पूरी हो जाती है, तो डेवलपर एक पुल अनुरोध बनाता है और हर कोई इसे विकास में वापस विलय करने से पहले टिप्पणियां प्रदान करने के लिए समीक्षा करता है। ऐसा लगता है कि यह बहुत अच्छा काम कर रहा है।
हमारे पास यह मुद्दा है कि एक सुविधा पर नियमित विकास के दौरान, डेवलपर सिस्टम को बेहतर बनाने या कुछ तकनीकी ऋण को साफ करने के लिए कुछ सामान्य कोड को संशोधित/दोबारा संशोधित करना चाहता है। यह परिवर्तन मूल्यवान है, लेकिन विकास के तहत सुविधा से सीधे बंधे नहीं है।
हमारे वर्कफ़्लो के आधार पर, इसे वास्तव में एक अलग शाखा पर किया जाना चाहिए जो इसे विकसित करने से पहले अपने स्वयं के पुल अनुरोध और कोड समीक्षा के माध्यम से हो। अगर हमने उन्हें ऐसा किया है, तो वे इस दौरान अपनी फीचर शाखा में बदलाव कैसे प्राप्त कर सकते हैं, जबकि वे पूर्ण कोड समीक्षा होने की प्रतीक्षा करते हैं और कोड को विकसित करने में विलय हो जाता है।
विचारों हमारे पास हैं:
1) हमारे सुविधा शाखा में 'refactorX' शाखा से परिवर्तन चेरी लेने। विकास जारी रखें और गिट (उम्मीदपूर्वक) समझें जब हम यह समझने के लिए विलय करते हैं कि इसमें पहले से ही रिफैक्टर शाखा से परिवर्तन है।
2) हमारी फीचर शाखा में 'refactorX' शाखा को मर्ज करें और विकास जारी रखें। (नोट: 'refactorX' के लिए विकसित शाखा बंद हो सकती है बाद में विकास के इतिहास में हो सकता है, इसलिए हमें लगता है कि इसमें समस्याएं हो सकती हैं)
3) कुछ अन्य स्मार्ट विकल्प जिन्हें हम अभी तक नहीं जानते हैं। :)
हम जो खोज रहे हैं वह वर्कफ़्लो के इस हिस्से को संभालने के तरीके पर कुछ सर्वोत्तम अभ्यास मार्गदर्शन है। इसके बारे में बात करने के बाद हम जानते हैं कि यह अक्सर आ जाएगा और हम अपने वर्कफ़्लो में इसे संभालने के लिए एक आसान और कुशल तरीका खोजना चाहते हैं।
कोई सिफारिशें?
विकल्प 2 ठीक दिखता है, आप इसके साथ क्या समस्याएं सोचते हैं? – fge
विकल्प 2 संदिग्ध दिखता है, क्योंकि जब आप ऐसा करते हैं (जैसे एलन अवलोकन करता है) आप अपने विकास शाखा में 'विकास' से बाद के सभी परिवर्तनों को शामिल कर रहे हैं)। विकल्प 1 हालांकि मुझे ठीक लग रहा है। –
1 और 2 के साथ एक और चिंता: मैं नहीं चाहता कि पुल अनुरोध की कोड समीक्षा के लिए उपयोग किए गए अंतरों में दिखाने के लिए फीचर शाखा में बदलाव/विलय हो। मैं बिना किसी प्रतिक्रिया के होने के लिए ऐसा करने का एक अच्छा तरीका नहीं सोच सकता। और चूंकि यह एक "सार्वजनिक" शाखा है जो केंद्रीय कंपनी के भंडार में धकेलती है, रिबेजिंग एक "बुरा विचार" जैसा प्रतीत होता है। – Allen