আমার সংস্থায়, আমাদের সমস্ত উন্নয়ন (বাগ ফিক্স এবং নতুন বৈশিষ্ট্য) পৃথক শাখায় করা হয়। এটি সম্পূর্ণ হয়ে গেলে, আমরা এটিকে QA এর কাছে প্রেরণ করি যারা এই শাখায় এটি পরীক্ষা করে এবং যখন তারা আমাদের সবুজ আলো দেয়, আমরা এটিকে আমাদের প্রধান শাখায় একীভূত করি। এটি একদিন থেকে এক বছরের মধ্যে যে কোনও জায়গায় নিতে পারে।
আমরা যদি কোনও শাখায় কোনও রিফ্যাক্টরিং চেপে দেখার চেষ্টা করি তবে এটি কতক্ষণ "আউট" হবে তা আমরা জানি না, সুতরাং এটি আবার সংশ্লেষ করার পরে অনেক বিবাদ সৃষ্টি করতে পারে।
উদাহরণস্বরূপ, আসুন আমি বলি যে আমি একটি ফাংশনটির নাম পরিবর্তন করতে চাই কারণ যে বৈশিষ্ট্যটিতে আমি কাজ করছি তা এই ফাংশনটির ভারী ব্যবহার করছে এবং আমি দেখতে পেয়েছি যে এর নামটি তার উদ্দেশ্যটির সাথে খাপ খায় না (আবার এটি কেবল একটি উদাহরণ)। সুতরাং আমি ঘুরে দেখি এবং এই ফাংশনটির প্রতিটি ব্যবহার খুঁজে পেয়েছি এবং সেগুলির নতুন নামকরণ করে নতুন করে রাখি এবং সবকিছু ঠিকঠাকভাবে কাজ করে, তাই আমি এটিকে QA তে প্রেরণ করি।
এদিকে, নতুন বিকাশ ঘটছে, এবং আমার নাম পরিবর্তিত ফাংশনটি মূলত কাঁটাচামচ করা শাখাগুলির কোনওটিতে নেই। যখন আমার ইস্যুটি আবার একত্রিত হয়ে যায়, তখন সেগুলি ভেঙে যায়।
এটি মোকাবেলার কোন উপায় আছে?
এটি এমন নয় যে পরিচালনা কখনও রিফ্যাক্টর-ইস্যু অনুমোদন করবে তাই এটি অন্য কাজের সাথে চেপে রাখতে হবে। এটি সরাসরি মূলত বিকাশিত হতে পারে না কারণ সমস্ত পরিবর্তনগুলি কিউএর মধ্য দিয়ে যেতে হয় এবং কেউই মূলত ভেঙে যাওয়া জার্ক হতে চায় না যাতে সে কিছুটা অপ্রয়োজনীয় রিফ্যাক্টরিং করতে পারে।