WinMerge को मर्क्यूरियल के लिए डिफ टूल के रूप में कैसे उपयोग करें


19

मैं Mercurial वितरित संस्करण नियंत्रण प्रणाली का उपयोग कर रहा हूं, और मैं सोच रहा हूं कि अपने स्वयं के आंतरिक अंतर टूल के बजाय WinMerge का उपयोग करने के लिए मैं इसे कैसे कॉन्फ़िगर कर सकता हूं। मैं पहले से ही WinMerge को मर्ज टूल के रूप में प्राप्त कर चुका हूं, लेकिन मैं चाहता हूं कि जब मैं टाइप करता हूं तो Mercurial को WinMerge का उपयोग करना चाहिए:

hg diff

क्या ऐसा करने का कोई तरीका है, या मैं मर्क्यूरियल के आंतरिक अंतर उपकरण के साथ फंस गया हूं?

जवाबों:


24

से TortoiseHg पूछे जाने वाले प्रश्न :

इन पंक्तियों को अपनी व्यक्तिगत Mercurial.ini फ़ाइल में जोड़ें

[एक्सटेंशन]
extdiff =

[Extdiff]
cmd.winmerge = C: \ Program Files \ WinMerge \ WinMergeU.exe
opts.winmerge = / e / x / u / wl

अब Global Settings टूल चलाएं। TortoiseHg टैब पर, आपको विजुअल डिफेंस कमांड के लिए ड्रॉप-डाउन सूची में उपलब्ध विनमर्ज को देखना चाहिए। विनमर का चयन करें, आवेदन करें, फिर बंद करें।

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

योएल ने यहाँ भी एक समाधान प्रदान किया है जब आप Cygwin के तहत Mercurial चलाते हैं।

WinMerge कमांड लाइन की व्याख्या यहां दी गई है । सारांश:

  • /e आपको WinMerge को सिंगल Esc कुंजी प्रेस के साथ बंद करने में सक्षम बनाता है
  • /x जब आप समान फ़ाइलों की तुलना शुरू करते हैं तो WinMerge (सूचना संवाद प्रदर्शित करने के बाद) को बंद कर देता है
  • /u WinMerge को सबसे हाल ही में उपयोग किए गए (MRU) सूची में पथ (बाएं या दाएं) को जोड़ने से रोकता है
  • /wl बाईं ओर केवल पढ़ने के रूप में खुलता है

मैं TortoiseHG का उपयोग नहीं कर रहा हूं, और न ही मैं Cygwin के तहत Mercurial चला रहा हूं। मैं mercurial.berkwood.com से डिफ़ॉल्ट कमांड लाइन मर्क्यूरियल इंस्टॉलर का उपयोग कर रहा हूं । आपके समाधान ने काम किया, इस अर्थ में कि मैं 'hg winmerge <file>' टाइप करने में सक्षम हूं, इसके और पिछले संस्करण के बीच का अंतर देखने के लिए, लेकिन 'hg diff <file>' अभी भी वही (बल्कि बदसूरत) अंतर लाता है उपकरण। फिर भी, कुछ भी नहीं से बेहतर है।
क्वांटिकल

मुझे लगता है कि यह उत्तर मानता है कि आप TortoiseHg निर्देशिका (जैसे C: \ Program Files \ TortoiseHg) में Mercurial.ini को संपादित करेंगे। यदि आप एक को Mercurial Directory (जैसे C: \ Program Files \ Mercurial) में एडिट करते हैं तो यह काम नहीं करेगा (कम से कम यह मेरे लिए नहीं था)।
एशले डेविस

c: \ Program Files (x86) \ WinMerge \ WinMergeU.exe
Avram

सुनिश्चित करें कि आपने कॉन्फ़िगरेशन फ़ाइल में WinMerge के पथ के आसपास उद्धरण नहीं रखे हैं, या यह काम नहीं करेगा।
दारुमल

7

यह मेरे लिए कैसे काम करता है - कछुआ के अलावा शुद्ध व्यापारिक कमांड लाइन

सबसे पहले, फ़ाइल को संपादित करें (64 बिट विंडो के तहत)

C: \ Program Files (x86) \ Mercurial \ Mercurial.ini

[extensions]
; must uncomment this line
extdiff =

[extdiff]
; i'm using winmerge unicode version
cmd.winmerge = C:\Program Files (x86)\WinMerge\WinMergeU.exe
; it explains winmerge command line parameters here: http://winmerge.org/docs/manual/CommandLine.html
opts.winmerge = /r /e /x /u /wl

फिर, आप "hg winmerge ..." के बजाय "hg diff ..." का उपयोग कर सकते हैं


मुझे बैकग्राउंड में विनमर चलाना उपयोगी लगता है इसलिए मैं कमिट मैसेज सेट करते समय बदलावों को देख सकता हूं और यह भी बता सकता हूं कि कमांड लाइन पर फाइल में क्या बदलाव हैं। ऐसा करने के लिए मर्चुरियल डायरेक्टरी में एक बैच फ़ाइल डालें जिसमें प्रारंभ / b hg winmerge होता है <NEWLINE> hg diff --stat
danio

3

खैर, पहले दिए गए उत्तर मुझे वांछित प्रभाव नहीं देते हैं। वे संशोधन को अलग करने और स्थान संपादित करने की अनुमति नहीं देते हैं (मेरा मतलब वही कार्यक्षमता है जो बॉक्स से TortoiseSVN के लिए उपलब्ध है)। ऐसा करने के लिए मैंने इस अनुभाग में mercurial.ini को अतिरिक्त रूप से जोड़ा है:

[merge-tools]
winmerge.regkey=Software\Thingamahoochie\WinMerge\
winmerge.regname=Executable
winmerge.priority=-10
winmerge.args=/e /x /wl /ub /dl other /dr local $other $local $output
winmerge.fixeol=True
winmerge.checkchanged=True
winmerge.gui=True
winmerge.diffargs=/r /e /x /ub /wl /dl '$plabel1' /dr '$clabel' $parent $child
winmerge.diff3args=
winmerge.dirdiff=True

यह http://blog.stevehorn.cc/blog/easy-mercurial-visual-diff-between-two.html से लिया गया है

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