क्या गिथुब अनुचर को पुल अनुरोधों में लेखक का पुनर्लेखन करना चाहिए?


44

मैं पेशे से प्रोग्रामर नहीं हूं, लेकिन मैं कुछ कोडिंग करता हूं और कुछ का इस्तेमाल किया है। मैंने जो पाया है, वह मुझे आश्चर्यचकित करने वाली स्थिति है। मैं गिट से बहुत परिचित हूं।

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

मैं आज ही अपनी शाखा को हटाने के लिए तैयार हो रहे रेपो को ब्राउज़ कर रहा था, और मुझे यह नहीं मिल रहा था कि कमेटी को मेंटेनर के रेपो में कहाँ मिला दिया गया था। कुछ समय बाद मुझे एहसास हुआ कि इसे एक प्रतिबद्धता के रूप में जोड़ा गया है, लेकिन लेखक अब मेरे साथ नहीं है।

जहां तक ​​मैं ऐसा करने का एकमात्र तरीका बता सकता हूं कि मूल लेखक को हटाने के लिए विशेष रूप से रिबेस, संशोधन या अन्य इतिहास को फिर से लिखना होगा।

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

क्या यह सामान्य है? क्या मुझे इसके बारे में कुछ कहना चाहिए?

संपादित करें: सामान्य लग रहा है कि मुझे पूछना चाहिए, इसलिए मैं बस आज सुबह करूँगा।

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

अपडेट यह लगता है कि उत्तर यह था कि लेखक एक विकास शाखा रखता है और अपनी मास्टर शाखा से उसमें विलय नहीं करना चाहता है। उन्होंने मर्ज से बचने के लिए मेरी प्रतिबद्धता को फिर से लिखा। मुझे मूल शाखा b / c git के चेरी-पिक, रीबेस, और जरूरत के अनुसार मर्ज करने के लिए बहुत शक्तिशाली के साथ संबंध नहीं था।

क्या यह जीथब पर विशिष्ट है?
क्या मुझे किसी परियोजना के अनुचर से संपर्क करना चाहिए कि वह किस शाखा से पैच लगाने के लिए कहे?


7
+1 कोडिंग के बारे में एक नैतिक सवाल उठाने के लिए :) यह पता लगाने में दिलचस्पी है कि क्या यह डिफ़ॉल्ट व्यवहार है, ऐसा करने के लिए अनुचर के लिए कुछ अतिरिक्त काम लगता है। या ऐसा होता है यदि अनुरक्षक आपके पुल अनुरोध को स्वीकार करने के बाद आपकी प्रतिबद्धता को थोड़ा संशोधित करता है?
सुनील डी।

यह एक अच्छा सवाल है। मैं सामान्य क्या है इसका जवाब देने के लिए गीथब के साथ पर्याप्त पारिवारिक नहीं हूं । हालाँकि, मुझे लगता है कि यह -n विकल्प के साथ चेरी-पिक करना, संशोधन करना और फिर कमिट करना संभव है। लेखक को प्रभावी ढंग से बदलना।

4
शायद अनुरक्षक ने विलय के बजाय आपके परिवर्तन को मैन्युअल रूप से लागू किया। मेरा सुझाव है कि इसके बारे में अनुचर से पूछें (उसे बेईमानी का आरोप लगाए बिना)।
कीथ थॉम्पसन

6
बस स्पष्ट होने के लिए, यह "लेखक" है जो बदल गया है, सही है? "कमिटेटर" नहीं? मैं केवल इसलिए पूछता हूं क्योंकि कोड प्लेजरिज्म की नैतिकता की बात करें तो यह अंतर अत्यंत महत्वपूर्ण है।
क्रिस्टोफर

2
आप यह नहीं कहते कि फिक्स कितना बड़ा था (कोड की लाइनें) या कोड को कैसे लाइसेंस दिया जाता है लेकिन, यकीनन, यह आपके कॉपीराइट का उल्लंघन भी हो सकता है।
Jaydee

जवाबों:


20

यदि वे परिहार्य नहीं हैं, तो उन्हें नहीं करना चाहिए। यह एक समस्या है जो मेरे अनुभव में बहुत दूर तक होती है। हालांकि मेरा मानना ​​है कि यह क्रेडिट की चोरी करने के इच्छुक लोगों की तुलना में सही तरीके से उपयोग करने की अज्ञानता के साथ अधिक है।

  • यदि वे इसे अपनी मुख्य शाखा में लागू करने से पहले अपने परिवर्तन को संशोधित करना चाहते हैं, तो वे आसानी से आपके परिवर्तन के लिए एक शाखा बना सकते हैं। वे आपके बाद अपनी खुद की कमिट जोड़ सकते हैं और फिर ब्रांच को मर्ज कर सकते हैं।
  • यदि आपका पुल अनुरोध उनके मुख्य शाखा के नवीनतम संस्करण पर आधारित नहीं है, तो वे ए जारी कर सकते हैं git rebase master। यदि संघर्ष होते हैं, तो वे या तो संघर्ष को ठीक करने के लिए चुन सकते हैं (लेखक को बदले बिना), या आपको इसे ठीक करने का मौका दे सकते हैं।

मुझे लगता है कि गितुब को इस तरह की आकस्मिक क्रेडिट चोरी के लिए देखना चाहिए और उचित होने पर सर्वोत्तम प्रथाओं पर अनुरक्षकों को शिक्षित करना चाहिए।


6

आपने यहां कुछ प्रमुख विवरण छोड़ दिए हैं।

  • यदि जिस तरह से आपने "फिक्स्ड" बग को रख-रखाव करने वालों के लिए नहीं किया था, या इसमें गलत भी था कि यह अपने स्वयं के बग को पेश करता है, तो अनुरक्षक को कमिट करने से पहले आपके काम को संपादित करना पड़ सकता है। जिस स्थिति में लेखक को बदलना समझ में आता है।

  • दूसरों का उल्लेख किया है के रूप में लेखक से काफी अलग है committer । जैसा कि आप पहले से ही जानते हैं कि लेखक वही है जिसने वास्तव में कमिटमेंट बनाया है, जबकि इसे लागू करने वाला कमिटेटर ही होगा।

आपको कमिटमेंट पर बारीकी से विचार करना चाहिए और अपने निष्कर्षों के साथ अपने सवाल को अपडेट करना चाहिए।


1
मैंने अभी यह जाँच की थी। मेरे पैच में कोई परिवर्तन नहीं हैं। मेरे पैच से पहले 1-लाइन परिवर्तन था और उसी समय जोड़ा गया था।
user1585512

3

ऐसा लगता है कि उत्तर यह था कि लेखक एक विकास शाखा रखता है और अपनी मास्टर शाखा से उसमें विलय नहीं करना चाहता है। उन्होंने मर्ज से बचने के लिए मेरी प्रतिबद्धता को फिर से लिखा।


12
तब उनका उपयोग करना चाहिए था git cherry-pick
svick

3

आपके अद्यतन प्रश्न का उत्तर देने के लिए:

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

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

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.