সফটওয়্যার ডেভেলপমেন্টের দুটি অপরিহার্য টুল হলো প্যাচ (Patch) এবং ডিফ (Diff) । এগুলো কীভাবে কাজ করে তা কোনো রহস্য নয়, কিন্তু আমার মনে হয় এই বিষয়টি নিয়ে একটি আকর্ষণীয় পোস্ট হবে। 😉
উভয়ই খুব শক্তিশালী এবং এটি কেবল পৃষ্ঠটিকে স্পর্শ করার মতো, তাদের আরও উপযোগিতা এবং অন্যান্য ফাংশন রয়েছে। মূলত এই দুটি সরঞ্জামের সাহায্যে আমরা সংস্করণ নিয়ন্ত্রণ তৈরি করতে পারি,
পরিবর্তন
আমরা তুলনা উল্লেখ করি, এটি "নতুন" ফাইলের সাথে একটি "মূল" ফাইলের তুলনা করে এবং তাদের মধ্যে বিদ্যমান পার্থক্য সম্পর্কে আমাদের অবহিত করে। এই সরঞ্জামটি আমাদের প্যাচ ফাইলগুলি তৈরি করতে আমাদের প্রোগ্রামগুলির জন্য প্যাচগুলি তৈরি করতে সহায়তা করে allows
তালি
এটি হ'ল আদেশটি যা আমরা আক্ষরিক অর্থে আমাদের মূল ফাইলটিকে "প্যাচ" করি, .patch ফাইলের মধ্যে থাকা নির্দেশাবলী অনুসারে লাইনগুলি যুক্ত এবং / অথবা মুছে ফেলি
এছাড়াও আছে ভিমডিফ (vimdiff) , যা একটি ভিজ্যুয়াল টুল এবং এর মাধ্যমে কোনো .patch ফাইলের প্রয়োজন ছাড়াই প্যাচ প্রয়োগ করা যায়। কারণ এটি ‘আসল’ এবং ‘নতুন’ ভার্সনের মধ্যে তুলনা করে এবং আপনাকে একই ফাইলের মধ্যে লাইন বাই লাইন অথবা পুরো ডকুমেন্টটি সম্পাদনা করার সুযোগ দেয়। আমি এর ব্যাখ্যা দেব না, কিন্তু আমার মনে হয় বিষয়টি উল্লেখ করার মতো।
উদাহরণ
এখন মজা। উদাহরণ!
এটি ক্ষেত্রে, আমাদের কাছে একটি দুর্দান্ত স্ক্রিপ্ট রয়েছে যা আপনার নাম এবং বয়স জিজ্ঞাসা করে, আপনার বয়স ১৮ বছরের বেশি হলে এটি আপনাকে জানায় যে আপনি ভোট দিতে পারবেন, অন্যথায় এটি আপনাকে বলবে যে আপনি ভোট দিতে পারবেন না।
original.sh
#! / বিন / বাশ প্রতিধ্বনি "আপনার নাম লিখুন:" নাম পড়ুন ইকো "আপনার বয়স লিখুন:" পড়ার বয়স যদি [[[18 -মাসে $ বয়স]] হয় তবে "হ্যালো $ নাম, আপনি বয়স্ক এবং আপনি ভোট দিতে পারবেন!" অন্যথায় প্রতিধ্বনি "হ্যালো $ নাম, আপনি বয়স্ক এবং আপনি ভোট দিতে পারবেন না ..." ফাই
ভিমে কোডের চিত্র
সম্পন্ন, এখানে চলমান স্ক্রিপ্টটি রয়েছে:
সবকিছু ঠিকঠাক কাজ করছে বলে মনে হচ্ছে
সুতরাং, আমরা যত ভাল ব্যবহারকারী, আমরা আমাদের স্ক্রিপ্টটি বন্ধুর সাথে শেয়ার করি :) তবে আমরা একটি বার্তা পেয়েছি যে এটির একটি ত্রুটি রয়েছে, এটি যখন 18 বছর বয়সে বলা হয় যে এটি করা উচিত যখন এটি ভোট দিতে পারে না।
যুক্তি ত্রুটি
এখন আমরা ছোট ত্রুটিটি সংশোধন করতে শুরু করেছি এবং কয়েকটি সংশোধন করব ...
new.sh
#! / বিন / বাশ ম্যাক্সএজ = 18 প্রতিধ্বনি "আপনার নাম লিখুন:"; নাম ইকো পড়ুন "আপনার বয়স লিখুন:"; পড়ার বয়স যদি [[$ maxAge -le $ বয়স]]; তারপরে "হ্যালো $ নাম প্রতিধ্বনি করুন, আপনি $ বছর বয়সী এবং আপনি ভোট দিতে পারেন!" অন্যথায় প্রতিধ্বনি "হ্যালো $ নাম, আপনি old বছর বয়সী এবং আপনি ভোট দিতে পারবেন না ..." ফাই প্রস্থান 0
Vim- এ লেখা নতুন কোড
ধরুন স্ক্রিপ্টটি খুব ভারী। সুতরাং, যাতে পুরো স্ক্রিপ্টটি আবার না পাঠানো হয়, আমরা একটি .patch তৈরি করি
f diff -u original.sh new.sh> প্যাচ.প্যাচ
এবং এখন আমাদের প্যাচটি তৈরি। ভিমে এটি দেখতে এইরকম :
একটি। প্যাচ জন্য নির্দেশাবলী দেখতে এই মত। সাদা লাইনগুলিতে যেগুলি সংশোধন করা হয়নি, নীলে সেগুলি মুছে ফেলা হয়েছে, কমলাতে যোগ করা হয়েছে।
এটি প্রয়োগ করতে, যে স্ক্রিপ্টটি প্যাচ করতে হবে, সেটিতে কেবল .patch ফাইলটি ব্যবহার করতে হয়। এখানে এর নাম originalAmigo.sh , যা original.sh স্ক্রিপ্টটির একটি হুবহু অনুলিপি।
বন্ধু স্ক্রিপ্ট
$ প্যাচ আসলফ্রেন্ড.শ <প্যাচ.প্যাচ
এর ফলে আমাদের originalAmigo.sh ফাইলটি দেখতে এইরকম হয়:
প্যাচ প্রয়োগের পরে ফ্রেন্ড স্ক্রিপ্ট
আপনি দেখতে পাচ্ছেন যে ভিন্নতাগুলি পাওয়া এবং প্যাচগুলি প্রয়োগ করা খুব সহজ। সবই আমার কাছ থেকে।
মানুষকে শুভেচ্ছা জানাচ্ছি, আমরা আগামী শুক্রবারে পড়ব।