git log -G<regex> -p
নির্দিষ্ট প্যাটার্নের সাথে মেলে এমন পরিবর্তনের জন্য কোডবেসের ইতিহাস অনুসন্ধান করার জন্য একটি দুর্দান্ত সরঞ্জাম। তবে এটি বেশিরভাগ অপ্রাসঙ্গিক কুকুরের সমুদ্রের ডিফ / প্যাচ আউটপুটে সম্পর্কিত কুঁচকে খুঁজে পাওয়া অপ্রতিরোধ্য হতে পারে।
git log
মূল স্ট্রিং / রেজেক্সের আউটপুট অনুসন্ধান করা অবশ্যই সম্ভব , তবে এটি অনেকগুলি সম্পর্কযুক্ত পরিবর্তনের ভিজ্যুয়াল গোলমাল এবং বিভ্রান্তি হ্রাস করতে খুব কম করে।
পড়তে গিয়ে git log
, আমি দেখতে পাচ্ছি --pickaxe-all
, যা আমি যা চাই তার ঠিক বিপরীত: এটি আউটপুটকে (পুরো চেঞ্জসেটে) প্রসারিত করে, যেখানে আমি এটিকে সীমাবদ্ধ করতে চাই (নির্দিষ্ট কুঁচকে)।
মূলত, আমি "বুদ্ধিমানভাবে" পৃথক কুকুরের মধ্যে পার্থক্য / প্যাচকে পার্স করার জন্য এবং তারপরে প্রতিটি কুকুরের বিরুদ্ধে অনুসন্ধান চালিয়ে যাব (কেবল পরিবর্তিত রেখাগুলি লক্ষ্য করে), মেলে না এমন কুকুরটিকে ফেলে দিন এবং ফলাফলগুলি আউটপুট দিচ্ছি সেটা কর.
আমি বর্ণনা করি এমন একটি সরঞ্জাম কি বিদ্যমান? ম্যাচ / আক্রান্ত কুকুরগুলি পেতে আরও ভাল পদ্ধতির কী আছে?
কিছু প্রাথমিক গবেষণা আমি করেছি ...
যদি
grep
ডিফ / প্যাচ আউটপুটটিতে এটি সম্ভব হয় এবং প্রসঙ্গ বিকল্পটি মানকে গতিশীল করে তোলে - বলুন, লাইন গণনার পরিবর্তে রেজিেক্সপ্সের মাধ্যমে - এটি যথেষ্ট হতে পারে। তবেgrep
ঠিক সেভাবে নির্মিত হয়নি (বা প্রয়োজনে আমি এই বৈশিষ্ট্যটির জন্য অনুরোধ করছি না)।আমি প্যাচটুলস স্যুটটি পেয়েছি , যা প্রাথমিকভাবে এটি আমার প্রয়োজন অনুসারে শোনায় । তবে এর
man
পৃষ্ঠাগুলি পড়ার পরে , সরঞ্জামগুলি regexps এর উপর ভিত্তি করে ম্যাচিং কুকুরগুলি হ্যান্ডেল করে না। (তারা শিকারীদের একটি তালিকা গ্রহণ করতে পারে, যদিও ...)অবশেষে আমি splitpatch.rb জুড়ে এসেছি , যা প্যাচটির পার্সিংকে ভালভাবে পরিচালনা করছে বলে মনে হচ্ছে, তবে এটি প্যাচগুলি পঠন করার মাধ্যমে
stdin
, পছন্দসই কুঁচকির সাথে মিলে যাওয়া, এবং তারপরে শিকারীদের আউটপুট করার জন্য উল্লেখযোগ্য পরিমাণে বাড়ানো দরকার ।