गिट-मर्ज-चेंजलॉग - क्लाउड में ऑनलाइन

यह कमांड गिट-मर्ज-चेंजलॉग है जिसे हमारे कई मुफ्त ऑनलाइन वर्कस्टेशन जैसे कि उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर का उपयोग करके ऑनवर्क्स फ्री होस्टिंग प्रदाता में चलाया जा सकता है।

कार्यक्रम:

नाम


git-merge-changelog - GNU ChangeLog फ़ाइलों के लिए git मर्ज ड्राइवर

वर्णन


'गिट' का डिफ़ॉल्ट मर्ज ड्राइवर हमेशा जनता को खींचते समय टकराव पैदा करता है
निजी तौर पर संशोधित चेंजलॉग फ़ाइल में संशोधन। ऐसा इसलिए है क्योंकि ChangeLog फ़ाइलें
हमेशा शीर्ष पर संशोधित होते हैं; डिफ़ॉल्ट मर्ज ड्राइवर को पता नहीं है कि इससे कैसे निपटना है
यह। इसके अलावा संघर्षों को <<<< ==== >>>> से अधिक मार्करों के साथ प्रस्तुत किया जाता है
ज़रूरी; ऐसा इसलिए है क्योंकि डिफ़ॉल्ट मर्ज ड्राइवर देखने के लिए व्यर्थ प्रयास करता है
चेंजलॉग प्रविष्टि के अंदर अलग-अलग पंक्ति में परिवर्तन होता है।

यह प्रोग्राम एक 'गिट' मर्ज ड्राइवर के रूप में कार्य करता है जो इन समस्याओं से बचाता है।

1. जब चेंजलॉग प्रविष्टियों को दोनों में शीर्ष पर डाला गया है तो यह कोई विरोध उत्पन्न नहीं करता है
सार्वजनिक और निजी संशोधन में। यह निजी तौर पर जोड़ी गई प्रविष्टियों को ऊपर रखता है
सार्वजनिक रूप से जोड़ी गई प्रविष्टियाँ।

2. यह चेंजलॉग फ़ाइलों की संरचना का सम्मान करता है: प्रविष्टियाँ लाइनों में विभाजित नहीं होती हैं
एक साथ रखा.

3. यह पिछली चेंजलॉग प्रविष्टियों के छोटे संशोधनों के मामले को भी संभालता है
चेंजलॉग प्रविष्टियाँ हटा दी गईं: उन्हें अपेक्षा के अनुरूप विलय कर दिया गया है।

4. संघर्ष फ़ाइल के शीर्ष पर प्रस्तुत किए जाते हैं, बजाय इसके कि वे कहाँ घटित हुए, इसलिए
कि उपयोगकर्ता उन्हें तुरंत देख लेगा। (कुछ में लिखे गए स्रोत कोड के विपरीत
प्रोग्रामिंग भाषा, संघर्ष मार्कर जो कई सैकड़ों पंक्तियों में स्थित हैं
शीर्ष पर कोई सिंटैक्स त्रुटि नहीं होगी और इसलिए इसके बने रहने की संभावना रहेगी
किसी का ध्यान नहीं गया।)

के लिए Git उपयोगकर्ताओं:
- चेकआउट के .git/config में (या अपने $HOME/.gitconfig में) पंक्तियाँ जोड़ें

[मर्ज करें "मर्ज-चेंजलॉग"]
नाम = जीएनयू-शैली चेंजलॉग मर्ज ड्राइवर
ड्राइवर = /usr/bin/git-merge-changelog %O %A %B

- प्रत्येक निर्देशिका में जिसमें चेंजलॉग फ़ाइल है, एक फ़ाइल '.gitattributes' जोड़ें
यह रेखा:

चेंजलॉग मर्ज=मर्ज-चेंजलॉग

(अधिक जानकारी के लिए "मैन 5 गिटाट्रिब्यूट्स" देखें।)

के लिए bzr उपयोगकर्ताओं:
- यहां सूचीबद्ध 'एक्सटमर्ज' bzr प्लग-इन स्थापित करें
<http://doc.bazaar.canonical.com/plugins/en/index.html>
<http://wiki.bazaar.canonical.com/BzrPlugins>

- अपनी $HOME/.bazaar/bazaar.conf लाइन में जोड़ें

external_merge = git-merge-changelog %b %T %o

- फिर, चेंजलॉग फ़ाइल में किसी विरोध को मर्ज करने के लिए, उपयोग करें

$ bzr एक्स्टमर्ज चेंजलॉग

के लिए hg उपयोगकर्ताओं:
- अपनी $HOME/.hgrc पंक्तियों में जोड़ें

[विलय-पैटर्न]
चेंजलॉग = गिट-मर्ज-चेंजलॉग

[विलय-उपकरण]
git-merge-changelog.executable = /usr/bin/git-merge-changelog
git-merge-changelog.args = $आधार $स्थानीय $अन्य

देखोhttp://www.selenic.com/mercurial/hgrc.5.html> अनुभाग मर्ज-उपकरण सन्दर्भ के लिए।

उपयोग as an वैकल्पिक सेवा मेरे 'diff3':
git-merge-changelog "diff3 -m" जैसी ही भूमिका निभाता है, केवल पुन: व्यवस्थित तर्कों के साथ:

$ गिट-मर्ज-चेंजलॉग %O %A %B

के बराबर है

$ diff3 -m %A %O %B

कॉलिंग सम्मेलन:
मर्ज ड्राइवर को तीन फ़ाइल नाम तर्कों के साथ बुलाया जाता है:

1. %O = %A और %B का सामान्य पूर्वज।

2. %A = "वर्तमान शाखा" से फ़ाइल की सामग्री।

3. %B = "अन्य शाखा" से फ़ाइल की सामग्री; यह वह सामग्री है जिसे मर्ज किया जा रहा है
अंदर

"गिट स्टैश अप्लाई" या अपस्ट्रीम पुल के मामले में (उदाहरण के लिए सबसिस्टम मेंटेनर से)।
एक केंद्रीय अनुरक्षक) या डाउनस्ट्रीम पुल के साथ --rebase:

2. %A = फ़ाइल की नवीनतम खींची गई सामग्री; अन्य कमिटर्स द्वारा संशोधित।

3. %B = उपयोगकर्ता की फ़ाइल की नवीनतम प्रति; उपयोगकर्ता द्वारा संशोधित.

डाउनस्ट्रीम पुल के मामले में (उदाहरण के लिए केंद्रीय भंडार से उपयोगकर्ता तक) या
--रीबेस के साथ अपस्ट्रीम पुल:

2. %A = उपयोगकर्ता की फ़ाइल की नवीनतम प्रति; उपयोगकर्ता द्वारा संशोधित.

3. %B = फ़ाइल की नवीनतम खींची गई सामग्री; अन्य कमिटर्स द्वारा संशोधित।

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

कैसे it काम करता है:
चेंजलॉग फ़ाइल की संरचना: इसमें चेंजलॉग प्रविष्टियाँ शामिल हैं। एक चेंजलॉग प्रविष्टि
एक रिक्त रेखा के बाद एक पंक्ति से शुरू होता है और वह एक गैर-व्हाट्सएप वर्ण से शुरू होता है,
या फ़ाइल की शुरुआत में. मर्ज ड्राइवर निम्नानुसार काम करता है: यह तीन को पढ़ता है
फ़ाइलों को मेमोरी में रखता है और उन्हें ChangeLog प्रविष्टियों में विच्छेदित करता है। इसके बाद यह अंतर ढूंढता है
%O और %B के बीच. उन्हें इस प्रकार वर्गीकृत किया गया है:

- निष्कासन (कुछ लगातार प्रविष्टियाँ हटाई गईं),

- परिवर्तन (कुछ लगातार प्रविष्टियाँ हटाई गईं, कुछ लगातार प्रविष्टियाँ जोड़ी गईं),

- परिवर्धन (कुछ लगातार प्रविष्टियाँ जोड़ी गईं)।

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

- निष्कासन एक-एक करके लागू किया जाता है। यदि प्रविष्टि %A में किसी भी स्थिति में मौजूद है, तो वह मौजूद है
निकाला गया। यदि नहीं, तो निष्कासन को विरोध के रूप में चिह्नित किया जाता है.

- %B के शीर्ष पर जोड़ %A के शीर्ष पर लागू होते हैं।

- %B में प्रविष्टि x और प्रविष्टि y (y फ़ाइल का अंत हो सकता है) के बीच जोड़ लागू किए जाते हैं
%A में प्रविष्टि x और प्रविष्टि y के बीच (यदि वे अभी भी मौजूद हैं और अभी भी लगातार हैं
%A), अन्यथा परिवर्धन को विरोध के रूप में चिह्नित किया जाता है।

- परिवर्तनों को "सरल परिवर्तन" में वर्गीकृत किया गया है:
प्रविष्टि1 ... प्रविष्टिएन को मैप किया गया है
add_entry ... add_entry संशोधित_entry1 ... संशोधित_entryn, जहां
प्रविष्टि_आई और संशोधित_एंट्री_आई के बीच पत्राचार अभी भी स्पष्ट है; और "बड़े बदलाव":
ये सब बाकी हैं. %B के शीर्ष पर सरल परिवर्तन डालकर लागू किये जाते हैं
%A के शीर्ष पर प्रविष्टियाँ जोड़ी गईं। साधारण परिवर्तनों में परिवर्तन एक-एक करके लागू होते हैं;
संभवतः एकल-प्रविष्टि संघर्षों के लिए अग्रणी। संभवतः बड़े परिवर्तन सामूहिक रूप से लागू किए जाते हैं
अनेक प्रविष्टियों में फैले टकराव के कारण।

- विरोध फ़ाइल के शीर्ष पर आउटपुट होते हैं और 1 की निकास स्थिति का कारण बनते हैं।

onworks.net सेवाओं का उपयोग करके ऑनलाइन git-merge-changelog का उपयोग करें



नवीनतम Linux और Windows ऑनलाइन प्रोग्राम