প্রতিটি পরিবর্তিত লাইনে পরিবর্তিত রেখা এবং পরিবর্তিত বাইট হাইলাইট করুন


94

ওপেন সোর্স প্রকল্প ট্র্যাকের একটি দুর্দান্ত ডিফ হাইলাইটার রয়েছে - এটি প্রতিটি পরিবর্তিত লাইনে পরিবর্তিত রেখা এবং পরিবর্তিত বাইট হাইলাইট করে ! উদাহরণস্বরূপ এখানে বা এখানে দেখুন ।

বাশ টার্মিনালে একই রঙের হাইলাইট (অর্থাত্ পরিবর্তিত রেখাগুলি এবং পরিবর্তিত বাইটগুলি ) ব্যবহার করার উপায় রয়েছে git, বা ভিন্ন vim আউটপুট (প্যাচ-ফাইল)?


এটি আপনি কী হাইলাইট করতে চান? আপনি কি এমন একটি ডিফ সরঞ্জাম চান যা বাইট পরিবর্তনগুলি হাইলাইট করে? (এটি খুবই উপকারী হবে). আপনি বলুন ভাইম, আমার স্মৃতিচারণের ভিমে ইতিমধ্যে আপনি যখন প্রোগ্রামিং ল্যাঙ্গুয়েজ টেমপ্লেটগুলি (এবং অন্যান্য) ব্যবহার করছেন তখন প্রচুর রঙের ম্যানিপুলেশন করে। আপনি কীভাবে এটি পরিবর্তন করবেন? টার্মিনাল উইন্ডোতে রঙ পরিবর্তন করার জন্য বেশ কয়েকটি কৌশল রয়েছে যা ভিটি 100 সংজ্ঞায়িত হয়েছে (এবং আরও কয়েক ডজন সংজ্ঞা রয়েছে যা রঙ পালানোর ক্রমগুলি সমর্থন করবে)। আরও সুনির্দিষ্ট করুন। অথবা en.wikedia.org/wiki/VT100 এবং সম্পর্কিত লিঙ্কগুলি পড়ুন। হতে পারে যে সাহায্য করতে পারে।
শেল্টার

আমি জানি আপনি কেবল ওপেন সোর্স সরঞ্জামগুলিতে এবং শুধুমাত্র টার্মিনালে আগ্রহী। তবে কেবল একটি রেফারেন্স পয়েন্ট হিসাবে আপনি স্লিককেডিটের ডিফজিলাটি দেখতে চাইতে পারেন। আমি যে কয়েকটি পৃথক সরঞ্জাম ব্যবহার করেছি তার মধ্যে সর্বদা চরিত্রের পার্থক্যের প্রতিনিধিত্ব করা বলে মনে হয় (যদিও এটির মধ্যে জটিলতা রয়েছে যখন জটিল (বিন্যাস এবং কোড পরিবর্তনের সমন্বয়, যা সর্বদা একটি খারাপ ধারণা)

দেখে মনে হচ্ছে স্ট্যাকওভারফ্লো / সেকশনস / 23231759/… এর দ্বিধা
অ্যাডাম মনসেন

: নোট: GitHub এখন যেমন একটি পরিবর্তন টুল তার ওয়েব গুই মধ্যে উপলব্ধ করা হয় stackoverflow.com/a/25723584/6309
VonC

আমি সহজেই টিউটোরিয়ালগুলি সহ 'আরও একটি' খাঁটি গিট, ডিফ-হাইলাইট ভিত্তিক সমাধান পোস্ট করেছি 1) প্রাসঙ্গিক ডিফ-হাইলাইট ফাইলটি সন্ধান করুন, 2) এটি নির্বাহযোগ্য করে তুলুন 3) .gitconfig এ প্রয়োজনীয় প্যারামগুলি সেট করুন। তাকাও এখানে. নির্দেশাবলী উবুন্টু 18.04 এর জন্য তবে লিনাক্স সিস্টেমে ব্যাপকভাবে কাজ করা উচিত।
জোরগলব 29

উত্তর:


60

diff-highlightপার্ল contrib স্ক্রিপ্ট তাই ট্র্যাক স্ক্রিনশট অনুরূপ আউটপুট উত্পাদন করে এটি সম্ভব যে ট্র্যাক এটি ব্যবহার হয়:

এখানে চিত্র বর্ণনা লিখুন

এর সাথে ইনস্টল করুন:

wget https://raw.githubusercontent.com/git/git/fd99e2bda0ca6a361ef03c04d6d7fdc7a9c40b78/contrib/diff-highlight/diff-highlight && chmod +x diff-highlight

ফাইল সরান diff-highlightকরতে ~/bin/(বা যেখানেই থাকুন না কেন আপনার ডিরেক্টরির $PATHকরা হয়), এবং তারপর আপনার নিম্নলিখিত যোগ ~/.gitconfig:

[pager]
        diff = diff-highlight | less
        log = diff-highlight | less
        show = diff-highlight | less

একক অনুলিপি পেস্ট ইনস্টল @iriranantilli দ্বারা প্রস্তাবিত:

cd ~/bin
curl -O https://raw.githubusercontent.com/git/git/fd99e2bda0ca6a361ef03c04d6d7fdc7a9c40b78/contrib/diff-highlight/diff-highlight
chmod +x diff-highlight
git config --global pager.log 'diff-highlight | less'
git config --global pager.show 'diff-highlight | less'
git config --global pager.diff 'diff-highlight | less'
git config --global interactive.diffFilter diff-highlight

এই. এটি দুর্দান্ত। ধন্যবাদ. যদিও এটি কিছু জায়গায় সামান্য রক্ষণশীল বলে মনে হচ্ছে, এমন কয়েকটি লাইন মিস হয়েছে যা সম্ভবত বেশিরভাগ অংশের পাঠ্যই সাধারণ। এটির জন্য কি আপনার বাগ ট্র্যাকার রয়েছে?
nnot101

21
আহ, এটি এখন মূল গিটের
naught101

4
এটি এখন একটি মডিউলে রূপান্তরিত হয়েছে এবং আমি মনে করি যে ডাউনলোড করার সবচেয়ে সহজ সংস্করণটি হ'ল কাঁচা
ক্রিস

4
কোর গিটের এই অংশটিই নয়, এটি গিটের সাথে বিতরণ করা হয়েছে এবং সম্ভবত এটি ইতিমধ্যে আপনার সিস্টেমে রয়েছে। আমি নীচে আমার উত্তরে কীভাবে এটি সক্ষম করব সে সম্পর্কে বিশদ যুক্ত করেছি। ↓
কোরি ক্লিন

4
এটি আপনার মাধ্যমে দেখা ভিন্নতাগুলি মিস করে git add -p। দয়া করে এটি যুক্ত করুন:git config --global interactive.diffFilter diff-highlight
জোশ

41

সম্ভবত git diffবা git logঅন্যদের ব্যবহার করার সময় , বিকল্পটি ব্যবহার করুন --word-diff=color(শব্দ বিভেদের বিটিডব্লিউর জন্য অন্যান্য পদ্ধতিও রয়েছে)


4
--word-diff=colorসত্যিই ভাল (বিশেষত সাথে git config color.diff.old "red reverse"এবং git config color.diff.new "green reverse"), তবে এটি যা আমি চাই তা নয় :(
নিকোলে ফ্রান্টেসেভ

4
সুতরাং কেবলমাত্র যে জিনিসটি আপনি মিস করছেন তা রঙিন / কোনওভাবে একই সাথে উভয় পরিবর্তিত লাইন এবং বাইটগুলি চিহ্নিত করছে?
anydot

7
আমি ট্র্যাকের মতো প্রতিটি পরিবর্তিত লাইনে পরিবর্তিত রেখা এবং পরিবর্তিত বাইটগুলি হাইলাইট করতে চাই। শুধু পরিবর্তন করা বাইট নয়, এটি এক নয়।
নিকোলে ফ্রান্টেসেভ

আপনি এই সাথে ব্যবহার করতে পারেন git add --patch: stackoverflow.com/questions/10873882/...
naught101

এর সুবিধাটি diff-highlightহ'ল এটি শব্দ পৃথক এবং লাইন উভয়ের জন্য ভালভাবে কাজ করে।
সিরো সান্তিলি 郝海东 冠状 病 六四 事件 法轮功

21

diff-so-fancydiffমানব চক্ষু বলের জন্য ডিজাইন করা একটি হাই-হাইলাইটার।

এটা তোলে নেতৃস্থানীয় সরিয়ে ফেলা হবে +/ -যা কাটা জন্য বিরক্তিকর / আটকানোর এবং ফাইল মধ্যে স্পষ্ট বিভাগে করে তোলে।

রঙিন git(বাম) বনাম diff-so-fancy(ডান - চরিত্র-স্তরের হাইলাইটগুলি নোট করুন):

বিচিত্র-তাই-অভিনব আউটপুট

আপনি যদি diff-so-fancy(ডান দিকের) আউটপুট চান তবে কোনও gitসংগ্রহস্থলের ফাইলগুলিতে সীমাবদ্ধ না .bashrcরেখে, কোনও ফাইলের জন্য এটি ব্যবহার করতে নিম্নলিখিত ফাংশনটি যুক্ত করুন :

dsf() { git diff --no-index --color "$@" | diff-so-fancy; }

যেমন:

dsf original changed-file

চরিত্রের স্তর হাইলাইটিং এবং স্ট্যান্ডার্ড diffফর্ম্যাট

আপনি যদি অ-মানক বিন্যাস পছন্দ না করেন diff-so-fancyতবে তবুও চরিত্র-স্তরের gitহাইলাইটিং চান, এমন ব্যবহার করুন diff-highlightযা gitআউটপুট নেয় এবং সত্যই সুন্দর মানক- diffফর্ম্যাট আউটপুট উত্পাদন করে :

ডিফ-হাইলাইট স্ক্রিনশট

এটিকে ডিফল্টরূপে ব্যবহার gitকরতে আপনার এতে যুক্ত করুন .gitconfig:

[color "diff-highlight"]
  oldNormal = red bold
  oldHighlight = red bold 52
  newNormal = green bold
  newHighlight = green bold 22

[pager]
  diff = diff-highlight | less -FRXsu --tabs=4

[pager]অধ্যায় বলে gitনল তার ইতিমধ্যে colourised আউটপুট diff-highlightযা চরিত্র পর্যায়ে colourises, এবং তারপর পৃষ্ঠাগুলি আউটপুটে কম বরং ডিফল্ট ব্যবহার না করে (প্রয়োজন হলে), less


এটি খুব আকর্ষণীয়, আপনি এই gitconfigবিকল্পগুলি সম্পর্কে কিছুটা ব্যাখ্যা করতে পারেন ?
সিজারসোল

আপডেট করা হয়েছে, এছাড়াও ফাংশন যোগ dsf()
টম হেল

15

আপনি যে আচরণটি চান তা এখন গিটের মধ্যেই পাওয়া যায় (যেমনটি নান্ট 101 দ্বারা একটি মন্তব্যে দেখানো হয়েছিল)। এটি সক্ষম করতে আপনাকে আপনার পেজার সেট করতে হবে

perl /usr/share/doc/git/contrib/diff-highlight/diff-highlight | less

/usr/share/doc/git/contrib/diff-highlight/diff-highlightউবুন্টু ১৩.১০-তে হাইলাইটার স্ক্রিপ্টের অবস্থান কোথায় (এটি কোনও docফোল্ডারে কেন আছে তা আমার কোনও ধারণা নেই )। যদি এটি আপনার সিস্টেমে না থাকে তবে এটি সন্ধানের জন্য ব্যবহার locate diff-highlightকরার চেষ্টা করুন । নোট করুন যে হাইলাইটিং স্ক্রিপ্টটি এক্সিকিউটেবল নয় (কমপক্ষে আমার মেশিনে), সুতরাং এর জন্য প্রয়োজনীয়perl

সর্বদা বিভিন্ন বিবিধ কমান্ডের জন্য হাইলাইটার ব্যবহার করতে কেবল আপনার ~/.gitconfigফাইলে নিম্নলিখিতটি যুক্ত করুন:

[pager]
    log = perl /usr/share/doc/git/contrib/diff-highlight/diff-highlight | less
    show = perl /usr/share/doc/git/contrib/diff-highlight/diff-highlight | less
    diff = perl /usr/share/doc/git/contrib/diff-highlight/diff-highlight | less

আমি এটিকে যুক্ত করেছিলাম একটি নতুন উত্তর হিসাবে ন্যান্ট 101 এর মন্তব্যটি সমাহিত হয়েছে এবং সেটআপটি যেমন হওয়া উচিত ততটা তুচ্ছ নয় এবং কমপক্ষে উবুন্টু সংস্করণে যে আমার কাছে README এর নির্দেশাবলী কার্যকর হয় না।


আমি কেবল লক্ষ্য করেছি যে এটি git add -p(ইন্টারেক্টিভ মোড) এর মধ্যে থাকা বিভিন্নগুলির জন্য হাইলাইটিং সক্ষম করে না । তবে কীভাবে এটি ঠিক করা যায় তা আমি জানি না, কেবল তালিকায় যুক্ত করে এটি স্তব্ধ হয়ে যায়।
শেফার্ড

4
এটি এখন গিট 2.9.0 এ কাজ করা উচিত:git config interactive.diffFilter diff-highlight
টমাস

^ এই! দুর্ভাগ্যক্রমে, diff-highlightআমার পথে ছিল না তাই আমাকে এটি প্রথমে সনাক্ত করতে হয়েছিল। নীচে আমার উত্তর বিস্তারিত।
কোরি ক্লিন

11

বাইট-ভিত্তিক ডিফ্সগুলির জন্য একটি ইউটিলিটি v1.7.8 থেকে অফিসিয়াল গিট দিয়ে বিতরণ করা হয়েছে 1 । এটি আপনাকে আপনার মেশিনে কোথায় ইনস্টল করা হয়েছে তা সন্ধান করতে হবে এবং এটি সক্ষম করতে হবে।

গিটটি কোথায় ইনস্টল করা হয়েছে তা সন্ধান করুন

  • হোমব্রিউয়ের মাধ্যমে গিট সহ ম্যাকওএস ইনস্টল করা হয়েছে : এটি/usr/local/opt/git
  • উইন্ডোজ গিট উইথ উইন্ডোজ : রান করুনcd / && pwd -W ইনস্টল ডিরেক্টরিটি সন্ধান করতে ।
  • লিনাক্স: Nerd। গিটটি কোথায় ইনস্টল করা হয়েছে তা আপনি যদি ইতিমধ্যে জানেন না, তবে ll $(which git)বা locate gitসাহায্য করা উচিত।

diff-highlightআপনার বিন ডিরেক্টরিতে লিঙ্ক করুন যাতে আপনার প্যাথ এটি সন্ধান করতে পারে

GIT_HOME='/usr/local/opt/git/'  # Use the value from the first step.
ln -s "${GIT_HOME}/share/git-core/contrib/diff-highlight/diff-highlight" \
      '/usr/local/bin/diff-highlight'

আপনার গিট কনফিগারেশনে এটি সক্ষম করুন

git config --global interactive.diffFilter diff-highlight # Use on interactive prompts
git config --global pager.diff "diff-highlight | less"    # Use on git diff
git config --global pager.log  "diff-highlight | less"    # Use on git log
git config --global pager.show "diff-highlight | less"    # Use on git show

1 এখানে v1.7.8 সংস্করণ কিন্তু পরিবর্তন প্রচুর তারপর থেকে তৈরি করা হয়েছে।


4
এটি কোন সংস্করণে গিট দিয়ে বিতরণ করা শুরু হয়েছিল তা নির্দিষ্ট করে বলা ভাল। এছাড়াও আমি অনুমান করছি যে ডিস্ট্রোজরা এটি ডিফল্টরূপে PATH এ রাখবে, সুতরাং সিমলিংক পদক্ষেপের প্রয়োজন হবে না? এবং which gitএটি প্রথমে
পাঠে থাকা দরকার

4
এটা ভালো হত! এই তথ্য যোগ করতে নির্দ্বিধায়। এবং যদিও গিটটি বান্ডিল করে diff-highlight, এটি আসলে এটি ইনস্টল করে না , তাই সিমিলিংক পদক্ষেপটি অবশ্যই প্রয়োজনীয় (কমপক্ষে ম্যাকোজে)। যদি আপনি দেখতে পান যে এটি আপনার প্ল্যাটফর্মের জন্য প্রয়োজনীয় নয় তবে পুনরায় উত্তরটি আপডেট করতে দ্বিধা করুন। এদিকে, which gitসাধারণত কাজ করে কারণ গীত করে ইনস্টল gitপথে বাইনারি কোথাও।
Cory Klein

নোট করুন যে ডিবিয়ান অস্থির ক্ষেত্রে আমার এই ফাইলটি "সংকলন" করা দরকার ছিল, কারণ আমার সবেমাত্র একটি ছিল .perl। সংকলন তুচ্ছ হল: শুধু চালানোর sudo makeমধ্যে diff-highlightডিরেক্টরি।
tobiasBora

10

আমি --color-wordsবিকল্পটি ব্যবহার করি এবং এটি আমার পক্ষে ভাল কাজ করে:

$ git diff --color-words | less -RS

4
না, এটি কেবল শব্দের মধ্যে পার্থক্য দেখায়। ওপি (এবং আমি) যা চাই তা স্বাভাবিক লাইন বাই লাইন পার্থক্য সহ শব্দ পার্থক্য হাইলাইট করা হয় (সুতরাং, বলুন বিভিন্ন লাইন রঙিন পাঠ্য, এবং এই লাইনের মধ্যে শব্দ-পার্থক্যগুলি রঙিন হাইলাইটিং সহ বা রঙিন পাঠ্য হয়) কিছু)। প্রশ্নে উদাহরণ লিঙ্কগুলি এখন দেখুন।
nnot101

4
পেস্টবিন. com/1 জিরহাইএইচআরটি আসলে আমি আপনার প্রশ্নটিতে বর্ণনা করার সাথে একটি সুন্দর হাইলাইট করার জন্য মিমোকাই কালারচেমে উইফডিউল হিসাবে এবং ভিমডিফ ব্যবহার করি। 1- গিট কনফিগারেশন - গ্লোবাল ডিফারফ / টুওম ভিডিফ 2- ইন ভিমে ": কোলো মলোকেই " * মলোকাই @ github.com/tomasr/molokai * ossible / .vimrc এর সাথে সম্ভাব্য অটো কালারচেম : যদি & ডিফ সেট ব্যাকগ্রাউন্ড = গা dark় রঙের চক্র মোলোকাই এন্ডিফ
amized

4

যেমন @ শেফার্ড বলেছেন :

আপনি যে আচরণটি চান তা এখন গিটের মধ্যেই পাওয়া যায়

তবে diff-highlightডিওসি তে অবস্থিত এবং শেল থেকে পাওয়া যায় না। আপনার ডিরেক্টরিতে
ইনস্টল করার জন্য পরবর্তী পদক্ষেপগুলি অনুসরণ করুন (এটি আপনার টাইপ করে সংরক্ষণ করবে):diff-highlight~/bin

$ locate diff-highlight
$ cd /usr/share/doc/git/contrib/diff-highlight  #or path you locate
$ sudo make
$ mv diff-highlight ~/bin

তারপরে আপনার .gitconfigঅফিসিয়াল ডক হিসাবে কনফিগার করুন :

[pager]
    log  = diff-highlight | less
    show = diff-highlight | less
    diff = diff-highlight | less

ইউপিডি
এছাড়াও আপনি gitকোনও ইনস্টলেশন ছাড়াই সর্বশেষে চেষ্টা করতে পারেন :

git diff --color-words=.

আরো উন্নত:

git diff --color-words='[^[:space:]]|([[:alnum:]]|UTF_8_GUARD)+'

1

ইমাকসের এডিফ-প্যাচ-বাফার ফাংশন রয়েছে যা আপনার প্রয়োজনগুলি পূরণ করতে পারে।

ইম্যাকস টাইপ ইএসসি-এক্স, এডিফ-প্যাচ-বাফারে আন-প্যাচযুক্ত ফাইলটি খুলুন।

অনুরোধগুলি অনুসরণ করুন এবং আপনার ফাইলের প্যাচ এবং মূল সংস্করণগুলির একটি হাইলাইটেড তুলনা দেখতে হবে।

আপনার মন্তব্য অনুসারে নিম্নলিখিতটি আপনাকে কেবলমাত্র দ্বিফিতের জন্য প্রয়োজনীয় বাশ সমাধান দেবে:

#!/bin/bash
paste -d'\n' <(dwdiff -2 -L -c <(cat $2) <(patch $2 -i $1 -o -)) <(dwdiff -1 -L -c <(cat $2) <(patch $2 -i $1 -o -))| uniq

দুঃখিত, আমি
ইম্যাকগুলি

এটা বোধগম্য। কেবলমাত্র আমি যা ভাবতে পারি তা হ'ল প্যাচ থেকে স্টডআউটের সাথে কলর্ডিফ ব্যবহার করা: colordiff -u <(patch original_file -i patch_file -o -) <(cat original_file) তবে এটি কেবল কামড়ানোর পরিবর্তে পরিবর্তিত রেখাগুলি তুলে
ধরবে

আমি আপনার সমস্যাটিকে কিছুটা বেশি চিন্তাভাবনা দিয়েছি এবং একটি দ্বিতীয় সমাধান সংযুক্ত করেছি যার জন্য কেবল ডাবডিফের প্রয়োজন।
ফিনবার ক্রেগো

4
দয়া করে আমার প্রশ্নটি মনোযোগ সহকারে পড়ুন, আমি ফাইলগুলি তুলনা করতে চাই না
নিকোলে ফ্রান্টেসেভ

4
বিভ্রান্তির জন্য দুঃখিত, সুতরাং আপনার কোনও পরিবর্তিত ফাইলের পরিবর্তিত লাইনে পরিবর্তিত বাইটগুলি হাইলাইট করার উপায় মাত্র? যদি তাই চেষ্টা করুনdwdiff -c --diff-input diff_file
ফিনবার ক্রেগো

1

পার্থক্য

গিটহাব গিটহাবের অনুরূপ আউটপুট অর্জন করতে এবং ডিফ-হাইলাইটের জন্য ডিফাই https://github.com/samg/diffy (রুবি) ব্যবহার করছে :

এখানে চিত্র বর্ণনা লিখুন

ডিফেটি একই অ্যালগরিদম বিজ্ঞাপন গিট ব্যবহার করে আলাদা করে তোলে এবং গিটল্যাব যে এইচটিএমএল আউটপুট ব্যবহার করে তা সহ বিভিন্ন ধরণের আউটপুট সমর্থন করে:

gem install diffy
echo '
  require "diffy"    
  puts Diffy::Diff.new("a b c\n", "a B c\n").to_s(:html)
' | ruby

আউটপুট:

<div class="diff">
  <ul>
    <li class="del"><del>a <strong>b</strong> c</del></li>
    <li class="ins"><ins>a <strong>B</strong> c</ins></li>
  </ul>
</div>

strongপরিবর্তিত বাইটে কীভাবে যুক্ত করা হয়েছে তা দ্রষ্টব্য ।


0

হ্যাঁ, ভিম একটি লাইনের মধ্যে পরিবর্তিত পাঠ্যের হাইলাইটিং সহ এটি করে। ফাইলগুলি কীভাবে পৃথক করতে হয় তার আরও বিশদ
জানতে :h diffও দেখুন :h 08.7

এটি হাইলাইট করার জন্য ভিম মোটামুটি সহজ অ্যালগরিদম ব্যবহার করে। এটি প্রথম পরিবর্তিত চরিত্রের জন্য লাইনটি অনুসন্ধান করে এবং তারপরে শেষ পরিবর্তিত অক্ষরটি অনুসন্ধান করে এবং তাদের মধ্যে থাকা সমস্ত চরিত্রকে হাইলাইট করে।
এর অর্থ আপনার প্রতি লাইনে একাধিক হাইলাইট থাকতে পারে না - ভিমে অনেকগুলি নকশার সিদ্ধান্তগুলি দক্ষতার অগ্রাধিকার দেয়।


দুর্ভাগ্যক্রমে, এটি ভিন্ন আউটপুটে পরিবর্তিত বাইটগুলি হাইলাইট করে না (ফাইল টাইপ =
ডিফ

4
আমার মনে হয় আমি এখন আপনার প্রশ্নটি বুঝতে পেরেছি - আপনি ডিফার কমান্ডের পাঠ্য আউটপুট হাইলাইট করতে চান যাতে এটি কোনও লাইনের অভ্যন্তরে যে কোনও পরিবর্তন হাইলাইট করে। ভিমে এই পাঠ্যটি সম্পাদনা করা লাইনের পার্থক্যগুলি হাইলাইট করে, তবে কোনও লাইনের মধ্যে করা পরিবর্তনগুলি নয়।
PDug

আসল ফাইলটি লোড করার জন্য আপনি ভিমের: প্যাচফিল কমান্ডটি ব্যবহার করতে পারেন এবং তারপরে এটি প্যাচযুক্ত সংস্করণের সাথে তুলনা করতে পারেন?
PDug

দুর্ভাগ্যক্রমে না, আমি একাধিক ফাইলের জন্য পুনরাবৃত্ত
ডিফ

0

vimdiff file1 file2 দুটি ফাইলের মধ্যে পার্থক্য চরিত্র অনুসারে প্রদর্শিত হবে।

ভিমডিফ একটি ভিফ সরঞ্জাম যা ভিমে অন্তর্ভুক্ত। (ভিম ++ বিকল্পের সাথে সংকলন করা উচিত ছিল, আপনি চেক করতে পারেন তা নিশ্চিত করার জন্য :version)

আপনি এটি ভিএম এর ভিতরে থেকেও চালু করতে পারেন। দেখুন :help diffআরও তথ্য এবং কমান্ড জন্য।


আমি ফাইলগুলি তুলনা করতে চাই না, আমি ডিফ (প্যাচ) ফাইলটি হাইলাইট করতে চাই।
নিকোলে ফ্রান্টেসেভ

@ নিকোলে ফ্রান্টেসেভ যদি আপনি সুগন্ধীর বিষয়ে চিন্তা না করেন তবে আপনি আমার ফর্ম্যাটটি ইনস্টল করতে পারেন .ভিম প্লাগইন এবং করতে পারেন vimdiff file.old file.new -c 'FormatCommand diffformat' -c 'w! file.diff.html' -c 'qa!'
জাইএক্স

এটি একটি ব্যাচ মোডে পৃথক হবে (প্রিমেন্ড screen -D -mবা সংযোজন &>/dev/null(/ দেব / নাল বৈকল্প কখনও কখনও অদ্ভুত বাগগুলি উত্পাদন করে) যদি আপনি টার্মিনাল ফ্ল্যাশিং দেখতে না চান)) এবং ফর্ম্যাট করার পরে ভিম ছেড়ে দিন, তবে এটি বিশুদ্ধ উইমস্ক্রিপ্ট এবং এমনকি আমার অপ্টিমাইজেশন সহ এটি বড় ফাইলগুলির জন্য খুব ধীর slow
জাইএক্স

0

দ্রষ্টব্য : এটি এখানে যা পাওয়া যায় তার একটি সদৃশ: গিটের ডিফ হাইলাইটিং কিভাবে উন্নত করবেন? । যদিও আমার উত্তরটি এখানে পোস্ট করা, কারণ এটি কিছু লোকের পক্ষে সহায়ক হতে পারে যারা সরাসরি এই থ্রেডটি খুঁজে পান :)

পূর্ববর্তী কয়েকটি উত্তরে যেমন বলা হয়েছে, কেবল গিট স্টাফ দিয়ে এটি সম্ভব। আপনার সিস্টেমের উপর নির্ভর করে নির্দেশাবলী অনুসরণ করা কিছুটা সহজ হতে পারে বলে আমি এটি পোস্ট করি তবে এটি অন্যান্য বেশ কয়েকটি উত্তরের মতো।

একটি সমাধান যা বিশুদ্ধরূপে গিট এবং এর অবদানগুলির উপর নির্ভর করে। গিটের সাথে যা আসে তার চেয়ে অতিরিক্ত কোনও ফাইলের প্রয়োজন নেই । সমস্ত ব্যাখ্যা উবুন্টুর জন্য (১৮.০৪ এলটিএসে পরীক্ষিত), অন্যান্য লিনাক্স সিস্টেমে একইভাবে কাজ করা উচিত:

  • ডিফ-হাইলাইট অবদান গিট স্নিপেট সন্ধান করুন:
find -L /usr -name diff-highlight -type f

আমার সিস্টেমে একমাত্র বৈধ উত্তর:

/usr/share/doc/git/contrib/diff-highlight/diff-highlight
  • সংশ্লিষ্ট পার্ল স্ক্রিপ্টকে সম্পাদনযোগ্য করে তুলুন। আমার ক্ষেত্রে আমার করা দরকার:
sudo chmod +x /usr/share/doc/git/contrib/diff-highlight/diff-highlight
  • ~/.gitconfigআপনি যে ফলাফল চান তা পেতে আপডেট করে যোগ করে (নোট করুন এগুলি 4 টি স্পেস নয়, টিএবিএস রয়েছে):
[color "diff-highlight"]
    oldNormal = red
    oldHighlight = red 52
    newNormal = green
    newHighlight = green 22
  • ফলাফলটি উপভোগ করুন (দ্রষ্টব্য: এটি কেবল ভিন্ন রঙিন + হাইলাইটের জন্য, আমার এখানে খেলার অন্যান্য জিনিসও অবশ্যই প্রম্পটের জন্য :))।

ডিফ হাইলাইট

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.