पैच को कैसे विभाजित और संपादित करें?


10

कभी-कभी मुझे बड़े पैच को छोटे (डिसऑइंट) में विभाजित करना पड़ता है, जैसे कि हर अलग फीचर में शामिल होता है।

आमतौर पर मैं इसे मानक vim yank / dd कमांड और स्प्लिट-विंडो स्विचिंग के माध्यम से करता हूं।

लेकिन क्या इस तरह के संपादन में मदद करने के लिए कुछ उपकरण / वीम-ट्रिक हैं?

उदाहरण के लिए आदेशों के लिए समर्थन जैसे: 3 अगले पूर्ण विराम को दाईं ओर खोली गई पैच फ़ाइल में ले जाएं



1
BTW, यह कैसे आता है कि लोग सवाल का जवाब देते हैं लेकिन इसे उपयोगी / स्पष्ट नहीं मानते कि यह वोट दें? ;)
17

जवाबों:


7

आप पैचुटिल्स [1] पर एक नज़र डालना चाहते हैं। विम भाग के लिए, मैंने एक छोटा विम प्लगइन लिखा है जो पैच में नेविगेट करने में मदद करता है: diff_navigator [2]।

[१] http://cyberelk.net/tim/software/patchutils/

[२] http://www.vim.org/scripts/script.php?script_id=2361


1
diff_navigatorयूआरएल जाहिरा तौर पर है vim.org/scripts/script.php?script_id=2361 Emacs में समान सुविधाएं होती हैं Ediff और SMerge मोड
रिकार्डो Murri

2
क्या आप इसे अधिक व्यापक बनाने के लिए अपने उत्तर का विस्तार कर सकते हैं? एक उदाहरण जोड़ना कि कैसे पटुतिल से उपयोगिता को एक बड़े पैच को असंतुष्ट लोगों में विभाजित करने के लिए सेट किया जाएगा, महान होगा ...
maxschlepzig

5

कुछ हद तक विषय, मुझे लगता है लेकिन मुझे अभी भी लगता है कि यह उपयोगी है।

यदि आप अपने विकास को करने के लिए गिट का उपयोग करते हैं, तो आप आसानी से अपने पूरे परिवर्तनों को छोटे "हॉक" में विभाजित कर सकते हैं, जो प्रत्येक सुविधा को एक जैसा बनाते हैं। आप प्रति फीचर एक कमिट के साथ समाप्त होते हैं और git का उपयोग कर सकते git-format-patchहैं (और यहां तक ​​कि साइन और ठीक से एट्रिब्यूट) पैच बनाने के लिए, मैंने उल्लिखित किया है कि यहां कैसे करें


3

मेरे Suse का उपयोग है splitdiffजो इस तरह काम करता है:

$ splitdiff -a tmp.179639.patch
Wrote >tmp.179639.patch.part001
Wrote >tmp.179639.patch.part002

0

आप उपयोग कर सकते हैं इस छोटे मात्रा (या तो फ़ाइल या हर हंक प्रति) और करने के लिए बड़े पैच विभाजित करने के लिए फिर अगर आप तो विलय से combinediff उपयोग करने की आवश्यकता patchutils पैकेज में उल्लेख किया गया था पेट्र Uzel के जवाब

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