क्या कोई Emacs मोड है जो प्रतिबद्ध संस्करण से अंतर को उजागर करता है?


31

एक विशेषता जो Xcode की है जो मुझे लगता है कि बहुत साफ है, एक "तुलना" मोड है, जो लगातार वर्तमान बफर और सबसे हालिया प्रतिबद्ध के बीच अंतर दिखाता है।

तुलना मोड

क्या Emacs के लिए ऐसा कुछ है? मैं वास्तव में साथ-साथ होने वाले विचारों की परवाह नहीं करता। बस जो भी लाइनें बदली गई थीं उनकी पृष्ठभूमि को उजागर करना एक बड़ी मदद होगी।

मुझे पता है कि मैं हमेशा कर सकता हूं C-x v =, लेकिन यह एक समय में एक स्थिर दृष्टिकोण है, और केवल अंतर दिखाता है। मैं अपनी पूरी फ़ाइल, संपादन योग्य, अलग-अलग हाइलाइट के साथ देखना चाहता हूं।

जवाबों:


30

दिमित्री गुटोव की डी -एचएल लाइब्रेरी प्रदान करती है diff-hl-mode, जो आपको निम्नलिखित स्क्रीनशॉट में शीर्ष विंडो में दिखाए गए फ्रिंज हाइलाइटिंग प्रदान करती है (तुलना के लिए नीचे की विंडो में वास्तविक अंतर प्रदर्शित होता है):

diff-hl स्क्रीनशॉट

यह vcवीसीएस-अज्ञेय होने के लिए एमएसीएस में सामान्य कार्यक्षमता का उपयोग करता है । रीडमी कहते हैं, "गिट, मर्क्यूरियल, बाजार और एसवीएन के साथ परीक्षण किया गया। अन्य वीसी बैकएंड के साथ भी काम कर सकते हैं।"

ध्यान दें कि diff-hl-margin-modeयदि आप GUI Emacs के बजाय टर्मिनल Emacs का उपयोग कर रहे हैं तो नियोजित किया जा सकता है।

डिफ़ॉल्ट रूप से diff-hlकेवल सहेजी गई फ़ाइल और रिपॉजिटरी के बीच के अंतर को उजागर करता है; लेकिन diff-hl-flydiff-modeगैर-सहेजे गए अंतरों को भी हाइलाइट करने में सक्षम बनाता है, ताकि आप संपादित करते समय परिवर्तनों को देख सकें।

बिल्ट-इन (मानक एमएसीएस) पर भी ध्यान दें highlight-changes-mode। यह वास्तव में आपकी समस्या का समाधान नहीं करता है, लेकिन highlight-compare-*कार्य एक समाधान की सुविधा प्रदान कर सकते हैं।


# 33 का समाधान किया गया है।
दिमित्री

1
दिमित्री: वास्तव में - मैं वास्तव में पिछले कुछ दिनों से इसे
आज़मा

मैं यह सुनकर खुश हूं; यह एक बहुत रोगी योगदानकर्ता द्वारा लिखा गया था। जवाब अपडेट करने के लिए धन्यवाद!
दिमित्री

10

आप यह निर्दिष्ट नहीं करते हैं कि आप किस संस्करण नियंत्रण प्रणाली का उपयोग कर रहे हैं, लेकिन यदि यह git है, तो आप git-gutter का उपयोग हाशिये में एक संकेतक लगाने के लिए कर सकते हैं जब एक पंक्ति को जोड़ा गया, हटाया या संशोधित किया गया। यह MELPA के माध्यम से उपलब्ध है M-x package-install git-gutter


यह मैं जो कल्पना कर रहा था उसके बहुत करीब लग रहा है, लेकिन ऐसा लगता है कि यह केवल बफर को सहेजने पर नाली को अपडेट करता है। मुझे आश्चर्य है कि फ्लाईमेक के साथ एकीकृत (या अन्यथा अधिक कार्य करना) कितना मुश्किल होगा ...
केन

10

आपको एडिफ की जांच करनी चाहिए । यह दोनों (3-वे) मर्ज टूल के रूप में प्रदर्शित और भिन्न हो सकता है। यह आपको आसानी से परिवर्तनों को वापस लाने देता है, और आपको केवल प्रत्येक हंक के केवल कुछ हिस्सों को दिखाने के लिए परिष्कृत मतभेदों को भी उजागर करता है।

एडिफ़ का स्क्रीनशॉट

ediff-revision आपको आसानी से सबसे हालिया प्रतिबद्ध, या किसी भी पिछले कमिट के खिलाफ तुलना करने देगा।

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