सवाल एकाधिक टैब के साथ मेल्ड का उपयोग करके bzr diff को कैसे खोलें?


मैं एक ही मिश्रित विंडो में एकाधिक टैब में सभी बाज़ार फ़ाइल diffs को एक साथ कैसे खोल सकता हूं?

वर्तमान में, मैं बाज़ार परिवर्तन देखने के लिए मेल्ड का उपयोग करने के लिए निम्न आदेश निष्पादित करता हूं:

bzr diff --using meld

जब परिवर्तनों के साथ कई फाइलें होती हैं, तो मेल्ड पहली फ़ाइल खोलता है, लेकिन दूसरों को नहीं। फिर, जब मैं मिश्रित विंडो से बाहर निकलता हूं, तो अगली फ़ाइल के लिए भिन्नता एक नई मेल्ड विंडो में खुलती है। यह तब तक जारी रहता है जब तक मैंने सभी फ़ाइलों को diffs के साथ नहीं देखा है।

नोट: मैंने निम्नलिखित की भी कोशिश की है, लेकिन यह ऊपर जैसा ही व्यवहार करता है।

bzr diff --using meld &

2
2017-07-22 01:44


मूल


मेरा मानना ​​है कि बीजीआर स्वयं एक समय में एक फ़ाइल के माध्यम से चलाता है (इसी तरह गिट विवादों के माध्यम से एक समय में एक फ़ाइल विलय के माध्यम से चला जाता है)। - muru


जवाब:


जैसा कि मैं समझ सकता हूं कि हमें मेल्ड में नए टैब निर्माण तर्क को पारित करने की आवश्यकता है।

इसके मैन-पेज के मुताबिक यह सुविधा मौजूद है उबंटू 16.04 एलटीएस में (देखें man meld) और ऊपर:

नाम
meld - GNOME डेस्कटॉप के लिए दृश्य diff और विलय उपकरण   ...
विकल्प
  ...
--newtab, -n
               पहले से चल रहे उदाहरण में एक नए टैब के रूप में तुलना खोलें।

तो हमें पास करने की जरूरत है --newtab विकल्प meld:

meld --newtab /etc/os-release /etc/os-release &
meld --newtab /etc/os-release /etc/os-release &

बाज़ार मामले में हमें इसी विकल्प को खोजने की जरूरत है bzr diff subcommand।
इसके अनुसार man bzr हमें उपयोग करना चाहिए --diff-options विकल्प:

नाम
bzr - बाजार अगली पीढ़ी वितरित संस्करण नियंत्रण
कमांड संदर्भ
bzr diff [FILE...]
   ...
--diff-options ARG        इन विकल्पों को बाहरी diff प्रोग्राम में पास करें।

संभावित समाधान:

bzr diff --using meld --diff-options --newtab &
bzr diff --using meld --diff-options --newtab &

लेकिन ओपी द्वारा बताए गए वास्तविक परिस्थिति में यह काम नहीं करता है।
इसलिए हमें इस आदेश के लिए उपनाम बनाने की आवश्यकता है:

for f in $( eval "bzr stat --versioned" ); \
do eval "bzr diff --using meld --diff-options --newtab ${f} &"; \
done

0
2017-07-22 10:39



यह वास्तव में ऐसा लगता है कि यह काम करेगा, लेकिन ऐसा नहीं हुआ। हालांकि, लूप में आपके कमांड का उपयोग करने के लिए काम लगता है: for f in $( eval "bzr stat --versioned" ); do eval "bzr diff --using meld --diff-options --newtab ${f} &"; done। शायद मैं इसके लिए उपनाम बना सकता हूं। - PJ Singh