कैसे एक पैच में एक नई फ़ाइल शामिल करने के लिए


9

मैं एक पैच बनाने की कोशिश करता हूं जैसा कि यहां पेश किया गया है
कहो कि मेरे पास दो निर्देशिकाएं हैं pp1(modified version)और pp0(clean version), मैं कमांड के pp0.patchसाथ एक पैच फ़ाइल बनाता हूं diff:

 diff -crB pp0 pp1 > pp0.patch

समस्या यह है कि अगर कोई फाइल केवल pp1 में है, तो उसे पैच में शामिल नहीं किया जाएगा। इसके आसपास कैसे काम करें?

अद्यतन :
मैं सबसे पहले pp0 की निर्देशिका में परिवर्तन करता हूं और परीक्षण करता हूं कि पैच सफल होगा या नहीं

  patch --dry-run -p1 -i /path-to-pp0.patch

हालाँकि मैंने कमांड में जोड़ा --new-fileहै diff, जो केवल pp1परिणाम में सूचीबद्ध नहीं हैं

अद्यतन :
मैंने गलती से गलत फ़ाइल को पैच कर दिया है

  diff -crb --new-file pp1 pp0 > pp0.patch

या

  diff -crNb pp1 pp0 > pp0.patch

करूँगा

जवाबों:


9

आपको --new-fileस्विच का उपयोग करके ऐसा करने में सक्षम होना चाहिए । अलग मैन पेज से लिया गया :

 --new-file
          In directory comparison, if a file is found in only  one  direc-
          tory, treat it as present but empty in the other directory.

इसे इस्तेमाल करे:

diff -crB --new-file pp0 pp1 > pp0.patch

मुझे नहीं पता कि मैंने इसे सही ढंग से पैच किया है लेकिन नई फ़ाइल में शामिल नहीं है
manuzhang

मेरी माफी, वह काम करता है
manuzhang

3

तत्काल उत्तर:, diff -Nजैसा कि pootzko द्वारा समझाया गया है । आप पाएंगे कि बहुत सारे पैच वहाँ द्वारा बनाए गए हैं diff -urN

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


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