टर्मिनल शुक्रवार: पैच और डिफ

सॉफ्टवेयर विकास में दो आवश्यक उपकरण हैं पैच y डिफ। यह रहस्य नहीं है कि वे कैसे काम करते हैं, लेकिन मुझे लगता है कि यह एक दिलचस्प पोस्ट होगा। 🙂

दोनों बहुत शक्तिशाली हैं, और यह सतह को छूने जैसा है, उनके पास अधिक उपयोगिताओं और अन्य कार्य हैं। मूल रूप से इन दो उपकरणों के साथ हम संस्करण नियंत्रण बना सकते हैं,


डिफ

हम तुलना करने के लिए संदर्भित करते हैं, यह "नए" के साथ एक "मूल" फ़ाइल की तुलना करता है, और हमें उन अंतरों के बारे में सूचित करता है जो उनके बीच मौजूद हैं। यह टूल हमें उन .patch फ़ाइलों को बनाने की भी अनुमति देता है जिनका उपयोग हम अपने कार्यक्रमों के लिए पैच बनाने के लिए करते हैं।


पैच

यह वह कमांड है जिसके साथ हम शाब्दिक रूप से हमारी मूल फ़ाइल को "पैच" करते हैं, जो कि .p फ़ाइल में दिए गए निर्देशों के अनुसार लाइनों को जोड़ते और / या हटाते हैं।


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


उदाहरण

अब मजा यह है। उदाहरण!

यह मामला है, हमारे पास एक महान स्क्रिप्ट है जो आपका नाम और आपकी उम्र पूछती है, यदि आप 18 वर्ष से अधिक हैं, तो यह आपको बताता है कि आप मतदान कर सकते हैं, अन्यथा यह बताता है कि आप वोट नहीं दे सकते।

मूल.श

#! / बिन / बाश गूंज "अपना नाम दर्ज करें:" पढ़ा नाम गूंज "अपनी उम्र दर्ज करें:" अगर [[18-$ उम्र]] पढ़ें तो "इको हैलो नाम, आप $ पुराने हैं और आप वोट कर सकते हैं!" और गूंज "हैलो $ नाम, आप $ पुराने हैं और वोट नहीं कर सकते ..." फाई
विम में कोड की छवि

विम में कोड की छवि

किया, यहाँ चल स्क्रिप्ट है:

लगता है सब कुछ ठीक काम कर रहा है

लगता है सब कुछ ठीक काम कर रहा है

इसलिए, हम जितने अच्छे उपयोगकर्ता हैं, हम अपनी स्क्रिप्ट को एक मित्र के साथ साझा करते हैं :), लेकिन हमें यह कहते हुए एक संदेश मिलता है कि इसका दोष है, कि जब यह 18 साल का हो जाता है तो यह कहता है कि इसे वोट नहीं देना चाहिए।

तर्क त्रुटि :(

तर्क त्रुटि 🙁

अब हम छोटी सी गलती को सुधारना शुरू करते हैं और कुछ संशोधन करते हैं ...

new.sh

#! / bin / bash maxAge = 18 प्रतिध्वनि "अपना नाम दर्ज करें:"; पढ़ें नाम गूंज "अपनी उम्र लिखें:"; अगर [[$ मैक्सएले-$ $]] की उम्र पढ़ें; तब गूंज "हैलो $ नाम, आप $ साल पुराने हैं और आप वोट कर सकते हैं!" और प्रतिध्वनि "हैलो $ नाम, आप $ पुराने हैं और आप वोट नहीं दे सकते ..." 0 से बाहर निकलें
Vim में लिखा नया कोड

में लिखा नया कोड शक्ति

माना कि स्क्रिप्ट बहुत भारी है। इसलिए, पूरी स्क्रिप्ट दोबारा न भेजने के लिए, हम एक .patch to बनाते हैं

$ diff -u original.sh new.sh> patch.patch

और अब हमारे पास हमारा पैच है। यहाँ एक दृश्य में शक्ति:

यह एक .patch के लिए निर्देश जैसा दिखता है। सफेद लाइनों में जो संशोधित नहीं थे, नीले रंग में उन हटाए गए, नारंगी में जो जोड़े गए।

यह एक .patch के लिए निर्देश जैसा दिखता है। सफेद लाइनों में जो संशोधित नहीं थे, नीले रंग में उन हटाए गए, नारंगी में जो जोड़े गए।

और इसे लागू करने के लिए हम बस पटकथा में .patch फ़ाइल का उपयोग करते हैं। यहाँ कहा जाता है मूल अमीगो.शो, जो स्क्रिप्ट की एक सटीक प्रति है मूल.श

मित्र लिपि

मित्र लिपि

$ पैच ओरिजिनलफ्रेंड.श <पैच.पच

और यह हमें हमारी फाइल छोड़ देता है मूल अमीगो.शो इसलिए:

पैच लगाने के बाद फ्रेंड स्क्रिप्ट

पैच लगाने के बाद फ्रेंड स्क्रिप्ट

जैसा कि आप देख सकते हैं कि डिस्क्स प्राप्त करना और पैच लागू करना बहुत आसान है। यह सब मुझसे है।

लोगों का अभिवादन, हम अगले शुक्रवार को पढ़ेंगे।


अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: मिगुएल elngel Gatón
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।

  1.   जेरिक्स कहा

    बहुत बहुत धन्यवाद much

  2.   देवदूत कहा

    यदि आप कुछ रंग चाहते हैं, तो कृपया colordiff ^ __ ^ का उपयोग करें

  3.   एलियोटाइम३००० कहा

    अब मुझे समझ में आया कि डेबियन में पैच कैसे काम करते हैं।

  4.   fer_pफ़्लोरेस कहा

    हैलो, मुझे पता है कि सिस्टम नोटिफिकेशन को कंसोल से सूचित-भेजें के साथ दिखाया जा सकता है, लेकिन मैं जो करना चाहता हूं वह यह है कि मुझे अधिसूचना दिखाने के लिए क्या समय या कितना समय निर्धारित किया जा सकता है, क्या ऐसा करने का कोई तरीका है? मैं प्राथमिक का उपयोग करता हूं, जो उबंटू 12.04 पर आधारित है, अगर यह मदद करता है, तो धन्यवाद

    1.    इलाव कहा

      खैर, यह सिस्टम क्रोन the का उपयोग करके किया जा सकता है

      1.    fer_pफ़्लोरेस कहा

        और यह कैसे किया जा सकता है? मैंने मुश्किल से सीखा कि नोटिफ़िकेशन-सेंड कमांड का उपयोग कैसे करें

        1.    वडा कहा

          आप यहाँ ब्लॉग में क्रोन के लिए खोज कर सकते हैं इसके बारे में कई पोस्ट हैं ron

  5.   जोकिन कहा

    बहुत अच्छा, धन्यवाद!

  6.   घनाकार कहा

    मैं हमेशा कर्नेल को अपडेट करने के लिए इसका उपयोग करता हूं, मैं केवल पैच डाउनलोड करता हूं और स्रोतों पर लागू होता है, इसलिए मुझे प्रत्येक रिलीज़ को 80mb डाउनलोड करने की आवश्यकता नहीं है।