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