vimdiff এবং সংহত বিবাদ


14

উত্স নিয়ন্ত্রণে শাখাগুলি মার্জ করার সময় অন্যান্য বিকাশকারীদের সাথে প্রায়শই মার্জ সংঘাতের বিষয়টি দেখা দেয়।

আমি জানি যে উত্স নিয়ন্ত্রণের বিরুদ্ধে কোড পরিবর্তনগুলি পৃথক করতে আমরা ভিমডিফ ব্যবহার করতে পারি , তবে একত্রিত করার বিরোধগুলির বিরোধগুলি সমাধান করতে সহায়তা করার জন্য আমরা ভিমডিফ ব্যবহার করতে পারি এমন কোনও উপায় আছে কি?

ব্যক্তিগতভাবে আমি গিট সম্পর্কে আরও আগ্রহী তবে অন্য উত্স নিয়ন্ত্রণ সরঞ্জাম / সিস্টেমের জন্য প্লাগইন / কৌশল আছে কিনা তা বোঝা কার্যকর হবে।


আপনি কি কখনও মেল্ড চেষ্টা করেছেন?
এরিক সাবেলহাউস

1
@ এরিক সাবেলহাউস: বিরোধ নিষ্পত্তি করার ক্ষেত্রে এটি কি ভিমডিফের চেয়ে ভাল? এই সাইটটি ভিএম সম্পর্কে প্রশ্ন জিজ্ঞাসা / উত্তর দেওয়ার বিষয়ে।
মার্টিন ইয়র্ক

এটি আমার মনে হয় ব্যবহারের ক্ষেত্রে নির্ভর করে। আমি যদি এমন কোডে কাজ করি যা দূর থেকে বেঁচে থাকে তবে আমি অবশ্যই ভিমডিফ ব্যবহার করব। আমি যদি আমার ডেভ মেশিনে স্থানীয়ভাবে কাজ করি তবে আমি মেল্ড ব্যবহার করব, কারণ এটি বিকাশকারীকে জটিল 3 উপায় সংযুক্তি সম্পাদনে সহায়তা করার জন্য একটি সমৃদ্ধ ইউআই সরবরাহ করে।
এরিক সাবেলহাউস

1
@ এরিকস্যাবেলহস: আমার কাছে এই শব্দটি feature rich UIবিভ্রান্তিকর; ভিমডিফের একটি সুন্দর ইউআই নাও থাকতে পারে এটি অবশ্যই সমৃদ্ধ বৈশিষ্ট্যযুক্ত। আমি ভিএমকে আরও অনেক উত্পাদনশীল পরিবেশ দেখতে পেয়েছি যা আমি ব্যবহার করেছি সমস্ত জিইউআই সম্পাদক (তবে আমি এটি দীর্ঘকাল ব্যবহার করেছি এবং এটি একটি খাড়া শেখার বক্ররেখা ছিল)। আমি আরও কৌতুহলী যদি মেল্ড এমন কিছু করে যা ভিম না করে তবে তা দেখার জন্যও এটি উপযুক্ত হয়ে উঠবে।
মার্টিন ইয়র্ক

আমি আরও দৃ rob় বৈশিষ্ট্য সেট আছে কিনা তা স্পষ্টভাবে বলতে পারছি না, তবে এটি অবশ্যই ভিমডিফের মতো একই অঞ্চলে রয়েছে।
এরিক সাবেলহাউস

উত্তর:


18

আমি সাধারণত কমান্ড লাইনে গিট ব্যবহার করি।

তবে যখন কোনও মার্জ সংঘাত হয় তখন আমি তাদের সাথে সমাধানের জন্য ভিম ব্যবহার করি (ব্যক্তিগতভাবে আমি পলাতক প্লাগইন দিয়ে এটি করি)। দ্রষ্টব্য: ভিমের মধ্যে থেকে প্রচুর গিট ম্যানিপুলেশনের জন্য পলাতক ভাল। আমার প্রিয় বৈশিষ্ট্যটি হল মার্জ সংঘাতের 3 উপায় পার্থক্য।

গিট গিট মার্জেটুলের মাধ্যমে ভিডমিটে এটি সমর্থন করে। আমি পলাতক ইনস্টল করেছি তবে আপনি এটি ম্যানুয়ালি সেট আপ করতে পারেন (ধন্যবাদ @ জে থম্পসন)।

ম্যানুয়াল সেট আপ:

git config --global merge.tool vimdiff
git mergetool <file with conflicts>

আউটপুট নীচে বর্ণিত বর্ণনার থেকে কিছুটা আলাদা (আমি ব্যক্তিগতভাবে এটি ব্যবহার করি নি)। তবে নীতিটি একই তবে ফলটি সহ নীচে আপনার একটি চতুর্থ উইন্ডো রয়েছে।

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

পলাতক সঙ্গে সেট আপ

ভিম -পলাতক হ'ল ভিমের জন্য গিট র‍্যাপার / ইন্টিগ্রেশন প্লাগইন; এটি অনেক কিছুই করতে পারে এবং বিরোধগুলির সমাধান করা এর মধ্যে একটি।

<Install the Fugitive Plugin>
vim <file with conflicts>
:Gdiff
  1. দেখুন 2 (বাম): আপনার শাখায় যে কোডটি ছিল।
  2. 1 টি (মধ্যম) দেখুন: মার্জড কোড (সংঘাতের সাথে)
  3. 3 টি দেখুন (ডান): আপনার কোডটিতে একত্রিত হওয়া কোড।

আপনি এখন অন্য দুটি ভিউ থেকে কেন্দ্রীয় ভিউতে টেক্সট টানতে এবং পেতে পারেন (যা সমস্ত ম্যানুয়াল ফিক্সগুলি ধারণ করে)। আপনি সমস্ত বিবাদগুলি ম্যানুয়ালি সমাধান করার পরে কেবলমাত্র ভিমডিফ থেকে প্রস্থান করুন

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

যদিও আপনি ব্যবহার করতে পারেন :diffget <view number>এবং :diffput <view number>দৃশ্যের মধ্যে জিনিসগুলি টানতে এবং ধাক্কা দিতে। আমি ব্যক্তিগতভাবে এটি খুব দরকারী মনে করি না। সমস্ত কোড ইতিমধ্যে মাঝারি ভিউতে রয়েছে। সুতরাং দ্বন্দ্বের সমাধান না হওয়া পর্যন্ত আমি নিজেই সেই দৃশ্যটিকে সম্পাদনা করতে চাই। আমার সম্পাদক উইন্ডোর দুপাশে কোডের উভয় সংস্করণ দেখতে সক্ষম হওয়া যদিও অত্যন্ত দরকারী extremely

এছাড়াও এর ব্যবহারের একটি খুব ভাল ডেমো এখানে


1
আপনি যদি কোনও কারণে পলাতক ব্যবহার করতে বা ইনস্টল করতে না চান তবে আপনি সহজেই সেট করতে পারেন git config --global merge.tool vimdiffএবং তারপরে git mergetoolডিফ মোডে ভিএম শুরু করতে চালাতে পারেন।
জে থম্পসন

এটি কি "মার্জ হওয়া সাধারণ পূর্বপুরুষ" দেখানো হয়েছে এমন একত্রিত হওয়া বিবাদগুলির "ডিফফ 3" স্টাইলকে সমর্থন করে?
alxndr

@ অ্যালেক্সেন্ডার: আমি এর আগে ডিফফ 3 এর কথা শুনিনি। তবে দ্রুত গুগলের পরে। গিটে একীভূত সংঘাতের আউটপুট (এবং আমি ব্যবহার করি এমন অন্যান্য উত্স নিয়ন্ত্রণ) এর সমান diff3 -E। সুতরাং উপরের চিত্রগুলি ফাইলগুলি থেকে তৈরি করা হয়েছে যাগুলিতে এই চিহ্নিতকারী রয়েছে।
মার্টিন ইয়র্ক

এখন যখন আমি নিবিড়ভাবে দেখছি, প্রথম স্ক্রিনশটটি মার্ফের বিভিন্ন ধরণের স্টাইল দেখায়; মাঝের শীর্ষ ফলক "বেস" সাধারণ পূর্বপুরুষ, যা বাম এবং ডান প্যানগুলি অন্যদিকে সরিয়ে নিয়েছিল।
alxndr

1
এটি মনে রাখা গুরুত্বপূর্ণ যে এই 4 টি দর্শনগুলির প্রতিটি কেবল একটি বাফার। এর অর্থ আপনি অন্য ট্যাবটি খুলতে পারেন (বা এমনকি একই উইন্ডোতে থাকতে পারেন) এবং যে কোনও মুহুর্তে আপনি দেখতে চান এমন কেবল বাফার বেছে নিতে পারেন। আপনি যদি সেগুলি সমস্ত ব্যবহার না করে থাকেন তবে 4 টি উইন্ডো একবারে খোলা রাখার কোনও কারণ নেই।
কোডি পোল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.