অবিচ্ছিন্ন ইন্টিগ্রেশন করার সময় সেরা শাখা কৌশল?


101

আপনি যখন অবিচ্ছিন্ন ইন্টিগ্রেশন করতে চান তখন ব্যবহার করার জন্য সর্বোত্তম শাখা কৌশল কী?

  1. রিলিজ ব্রাঞ্চিং: ট্রাঙ্কে বিকাশ করুন, প্রতিটি মুক্তির জন্য একটি শাখা রাখুন।
  2. বৈশিষ্ট্য শাখা: প্রতিটি বৈশিষ্ট্য একটি পৃথক শাখায় বিকাশ করুন, কেবল একবার স্থিতিশীল হয়ে গেলে merge

এই কৌশলগুলি উভয়ই একসাথে ব্যবহার করার অর্থ কি? হিসাবে, আপনি প্রতিটি প্রকাশের জন্য শাখা কিন্তু আপনি বড় বৈশিষ্ট্য জন্য শাখা? এই কৌশলগুলির মধ্যে একটির কি একটানা সংহতকরণের সাথে আরও ভাল জাল লাগতে পারে? অস্থির ট্রাঙ্ক ব্যবহার করার সময় কি অবিচ্ছিন্ন ইন্টিগ্রেশন ব্যবহার করা কি বুদ্ধিমান হবে?


4
পার্শ্ব দ্রষ্টব্য: কেউ কেউ যুক্তি দেখিয়েছেন যে এমনকি নতুন বৈশিষ্ট্যগুলি যেমন এটি putোকানো হয় তেমনি সবসময় স্থিতিশীল হওয়া উচিত। অন্যদিকে, এটি কিছুটা আদর্শবাদী হতে পারে।
কিথ পিনসন

উত্তর:


21

আমি বিষয়টি আমার কাছে খুব আকর্ষণীয় মনে করি যেহেতু আমি আমার প্রতিদিনের কাজের শাখাগুলিতে প্রচুরভাবে নির্ভর করি।

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

আশা করি আপনি লিঙ্কগুলি আকর্ষণীয় খুঁজে পাবেন।


Codicesoftware.blogspot.com/2012/02/… প্রতি টাস্ক শাখাগুলি করার জন্য আমরা বাঁশকে সমর্থন যোগ করেছি এবং মনে হয় তাদের নতুন সংস্করণটি ডিভিসিএস সহ বেশ কয়েকটি সংস্করণ নিয়ন্ত্রণের সাথে স্থানীয়ভাবে এটি করবে।
পাবলো

20

উত্তরটি আপনার দলের আকার এবং আপনার উত্স নিয়ন্ত্রণের মানের এবং সঠিকভাবে জটিল পরিবর্তন সেটগুলিকে মার্জ করার ক্ষমতা নির্ভর করে। উদাহরণস্বরূপ সিভিএস বা এসভিএন মার্জ হওয়া যেমন সম্পূর্ণ ব্রাঞ্চ সোর্স কন্ট্রোলে আপনি কঠিন হতে পারেন এবং আপনি প্রথম মডেলের সাথে আরও ভাল হতে পারেন, যখন আইবিএম ক্লিয়ারকেসের মতো আরও জটিল সিস্টেম ব্যবহার করা হয় এবং একটি বড় আকারের টিমের সাথে আপনি দ্বিতীয়টির সাথে আরও ভাল হতে পারেন if মডেল বা দুটি সংমিশ্রণ।

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

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

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

যদি কোনও কারণে দুটি বৈশিষ্ট্য সহ-নির্ভর হয়ে থাকে এবং একে অপরের দ্বারা পরিবর্তিত হওয়া দরকার হয় তবে আপনি উভয়টিকে একই বৈশিষ্ট্য শাখায় বিকাশ করতে পারেন বা কোডের স্থিতিশীল অংশগুলি ট্রাঙ্কে নিয়মিত সংহত করতে এবং তারপরে পরিবর্তনগুলি রিফ্রেশ করার জন্য বৈশিষ্ট্যগুলি প্রয়োজন ট্রাঙ্ক ট্রাঙ্ক শাখার মধ্যে কোড বিনিময়। বা যদি আপনার এই দুটি বৈশিষ্ট্য অন্যের কাছ থেকে আলাদা করতে হয় তবে আপনি একটি সাধারণ শাখা তৈরি করতে পারেন যা আপনি সেই বৈশিষ্ট্যগুলি শাখাগুলি শাখা করেন এবং যা আপনি বৈশিষ্ট্যের মধ্যে কোড বিনিময় করতে ব্যবহার করতে পারেন।

উপরোক্ত মডেলটি 50 টি বয়সের অধীনে বিকাশকারী এবং সোর্স কন্ট্রোল সিস্টেমগুলির সাথে স্পার্স শাখা ছাড়াই এবং সিভিএস বা এসভিএন এর মতো উপযুক্ত মার্জিংয়ের ক্ষমতা সহ খুব বেশি অর্থবোধ করে না, যা এই পুরো মডেলটিকে কেবল সেটআপ, পরিচালনা এবং সংহত করার জন্য একটি দুঃস্বপ্ন করে তোলে।


5
আমি নিশ্চিত নই যে আমি যদি আপনি সম্মত হন তবে যেটি আপনি বর্ণনা করেছেন তা 50 বিকাশকারীদের অধীনে থাকা দলের পক্ষে অর্থপূর্ণ নয়। আমি আরও অনেক ছোট দলগুলির জন্যও সুবিধা দেখতে পাচ্ছি। +1
আর্দভার্ক 14

4
অবশ্যই, যে কোনও আকারের দলগুলির জন্য সুবিধা রয়েছে। একটি ভারী প্রক্রিয়াটির সাথে জড়িত ব্যয়কে ছাড়িয়ে কী টিমের আকার রয়েছে তা প্রশ্ন।
জিরি ক্লাউদা

এটি গিটফ্লো এবং / অথবা গিটহাবফ্লো, মডেলের মতো। আমি মনে করি না এই মডেলগুলি ধারাবাহিক সংহতকরণ (সিআই) সহজতর করে। আমার মতে ট্রাঙ্ক ভিত্তিক বিকাশ এই মডেলগুলির একটি উল্লেখযোগ্য উন্নতি।
ইয়ানি

আপনি দেখতে পাচ্ছেন যে এই মন্তব্যটি আসলে গিট প্রবাহের মূল প্রকাশের প্রাক-তারিখ রয়েছে। আপনি "আরও ভাল" বলতে চাইছেন তা পুরোপুরি নিশ্চিত নয়। আমি 1, 5, 25, 150, 1,000 এবং 20,000 বিকাশকারীদের এমন টিমকে সমর্থন করেছি যা কিছু পরিমাণে একীভূত প্রকল্পগুলিতে কাজ করছে। প্রয়োজনীয়তাগুলি পরিবর্তিত হয় এবং "আরও ভাল" খুব বেশি আপেক্ষিক শব্দ। আপনার কি কখনও কোডটি ব্যাকপোর্ট করতে হবে? সুরক্ষা স্থির? যদি তা না হয় তবে আপনার জীবন সহজ। সাস ট্রাঙ্ক ভিত্তিক বিকাশ দ্বারা আরোপিত বিধিনিষেধের প্রত্যক্ষ ফলাফল। বৈশিষ্ট্যযুক্ত পতাকাগুলি বৈশিষ্ট্য শাখার মতোই জটিল। কেবলমাত্র গ্রাহকদের কাছ থেকে যখন কোনও ক্রিয়াকলাপ ভেঙে যায় তখনই আপনি সেগুলি খুঁজে পান।
জিরি ক্লাউদা

9

একটি ব্যক্তিগত স্থিতিশীল ট্রাঙ্ক থাকা এবং বৈশিষ্ট্যযুক্ত ব্রাঞ্চিং করা আমি ব্যক্তিগতভাবে এটিকে আরও ক্লিনার মনে করি। এইভাবে, পরীক্ষকগণ এবং এর মতো কোডগুলি সম্পূর্ণ এমন কোনও বৈশিষ্ট্য পরীক্ষা করার জন্য একটি একক "সংস্করণ" এ থাকুন এবং ট্রাঙ্ক থেকে আপডেট পান।

এছাড়াও যদি একাধিক বিকাশকারী বিভিন্ন বৈশিষ্ট্যে কাজ করে থাকেন তবে তাদের সবার নিজস্ব আলাদা শাখা থাকতে পারে, তারপর যখন তারা সম্পন্ন হবে তখন ট্রাঙ্কে মার্জ করুন এবং পরীক্ষককে পরীক্ষা করে পরীক্ষা করার জন্য একটি বৈশিষ্ট্য প্রেরণ করুন যাতে বিভিন্ন বৈশিষ্ট্য পরীক্ষার জন্য একাধিক শাখায় স্যুইচ না করে।

একটি যুক্ত বোনাস হিসাবে, কিছু সংহতকরণ পরীক্ষার স্তর যা স্বয়ংক্রিয়ভাবে আসে।


এছাড়াও, আপনি এখনও প্রতিটি বড় রিলিজের জন্য শাখা এবং ট্যাগ করেন? নাকি শুধু ট্যাগ?
কিংস্টেস্টর

4
এটি সিআইয়ের সাথে ভাল কাজ করে যতক্ষণ না বৈশিষ্ট্য শাখাগুলি কিছু শৃঙ্খলার সাথে ট্রাঙ্কে একত্রীকরণ করা হয় যাতে ভাঙ্গা বিল্ড না হয়। আমি প্রতিটি প্রোডাকশন রিলিজের জন্য শাখা এবং ট্যাগ করি যা কেবল বাগ-ফিক্সিংয়ের জন্য ব্যবহৃত হবে। এটি অবিলম্বে স্থিতিশীল ট্রাঙ্কে একীভূত করা যেতে পারে।
আদনান

@ লিঙ্ক আমি বলব যে সম্ভবত আপনি প্রধান রিলিজে যা কল করেছেন তার উপর নির্ভর করে, তবে উভয় ক্ষেত্রেই আপনি ট্যাগ করতে পারেন এবং পরে যখন আপনার প্রয়োজন হবে তখন শাখা করুন (ট্যাগের ভিত্তিতে :))
এলাশিয়াস

5

আমি মনে করি যে কৌশলগুলি অবিচ্ছিন্ন উন্নয়নের সাথে ব্যবহার করা যেতে পারে তবে আপনি প্রতিটি বিকাশকারী প্রতিদিন ট্রাঙ্ক / মেইনলাইনে প্রতিশ্রুতিবদ্ধ এমন একটি মূল নীতি মনে রাখেন।

http://martinfowler.com/articles/continuousIntegration.html#EveroneCommitsToTheMainlineEveryDay

সম্পাদনা

আমি এই বইটি কিছু পড়া ছিল সিআই-এর উপর এবং লেখকরা পরামর্শ দেন যে মুক্তির মাধ্যমে শাখা করা তাদের পছন্দসই শাখা কৌশল। আমাকে একমত হতে হবে সিআই ব্যবহার করার সময় বৈশিষ্ট্য দ্বারা ব্রাঞ্চিং আমার কাছে কোনও অর্থবোধ করে না।

আমি চেষ্টা করব এবং ব্যাখ্যা করব যে আমি কেন এইভাবে ভাবছি। বলুন তিনটি বিকাশকারী প্রতিটি বৈশিষ্ট্যে কাজ করার জন্য একটি শাখা নেন। প্রতিটি বৈশিষ্ট্য শেষ হতে বেশ কয়েক দিন বা সপ্তাহ সময় নেয়। দলটি ধারাবাহিকভাবে সংহত করছে তা নিশ্চিত করতে তাদের অবশ্যই দিনে অন্তত একবার মূল শাখায় প্রতিশ্রুতিবদ্ধ হতে হবে। এটি করা শুরু করার সাথে সাথে তারা একটি বৈশিষ্ট্য শাখা তৈরির সুবিধা হারাবে। তাদের পরিবর্তনগুলি অন্য সমস্ত বিকাশকারী পরিবর্তনের থেকে আর আলাদা নয়। এটাই হচ্ছে, কেন প্রথম স্থানে বৈশিষ্ট্যগুলি শাখা তৈরি করতে বিরক্ত করবেন?

রিলিজ দ্বারা শাখা ব্যবহারের জন্য শাখাগুলির মধ্যে খুব কম সংশ্লেষ প্রয়োজন (সর্বদা একটি ভাল জিনিস), সমস্ত পরিবর্তনগুলি ASAP তে সংহত হওয়ার বিষয়টি নিশ্চিত করে এবং (যদি সঠিকভাবে করা হয়) আপনার কোড বেসটি সর্বদা প্রকাশের জন্য প্রস্তুত নিশ্চিত করে। রিলিজ দ্বারা শাখা প্রশস্ত করার নিচ দিকটি হ'ল পরিবর্তনের ক্ষেত্রে আপনাকে আরও বেশি যত্নবান হতে হবে। উদাহরণস্বরূপ বড় রিফ্যাক্টরিং অবশ্যই বর্ধিতভাবে করা উচিত এবং যদি আপনি ইতিমধ্যে একটি নতুন বৈশিষ্ট্য সংহত করে থাকেন যা আপনি পরের প্রকাশে চান না তবে এটি অবশ্যই কিছু ধরণের বৈশিষ্ট্য টগলিং প্রক্রিয়া ব্যবহার করে আড়াল করা আবশ্যক ।

অন্য সম্পাদনা

এই বিষয়ে একাধিক মতামত আছে। এখানে একটি ব্লগ পোস্ট যা সিআইয়ের সাথে বৈশিষ্ট্যযুক্ত শাখার বৈশিষ্ট্যযুক্ত

http://jamesmckay.net/2011/07/why-does-martin-fowler-not-:30:30-feature-bankches/


আকর্ষণীয়, এই পোস্টটি আর খুঁজে পাবেন না।
জিরং হু

5

রিলিজ শাখাগুলি খুব দরকারী, এমনকি একেবারে প্রয়োজনীয় এমনকি যদি আপনার অ্যাপের বিভিন্ন সংস্করণ বজায় রাখতে হয়।

বৈশিষ্ট্যযুক্ত শাখাগুলিও খুব সুবিধাজনক, বিশেষত যদি কোনও বিকাশকারীকে বিশাল পরিবর্তনের জন্য কাজ করা দরকার হয়, অন্যরা এখনও নতুন সংস্করণ প্রকাশ করে।

সুতরাং আমার কাছে উভয় প্রক্রিয়া ব্যবহার করা খুব ভাল কৌশল।

এসভিএন বইয়ের আকর্ষণীয় লিঙ্ক ।


4

গিট ব্যবহার করার সময় আমি সম্প্রতি এই মডেলটি পছন্দ করতে এসেছি । যদিও আপনার প্রশ্নটিকে "এসএনএন" ট্যাগ করা হয়েছে, আপনি এখনও এটির কিছু ব্যবহার করতে সক্ষম হতে পারেন।

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


2

অবিচ্ছিন্ন একীকরণ আপনার শাখা কৌশল নির্ধারণের জন্য কোনও ধরণের উপাদান হওয়া উচিত নয়। আপনার শাখা প্রশস্তকরণ আপনার দল, বিকাশাধীন সিস্টেম এবং আপনার জন্য উপলব্ধ সরঞ্জামগুলির ভিত্তিতে নির্বাচন করা উচিত।

যে বলে ...

  • আপনার বর্ণিত দুটি পদ্ধতির ক্ষেত্রে সিআই ব্যবহার করা যায় না তার কোনও কারণ নেই
  • এই পদ্ধতির সমন্বয় বেশ ভাল কাজ
  • দুজনের দুজনেরই কাজ অন্যটির চেয়ে "ভাল" নয়
  • অস্থির ট্রাঙ্ক দিয়ে সিআই মোটামুটি বোঝায়

এই পৃষ্ঠাগুলির চতুর্থ প্রশ্নের উত্তরটির উত্তর দেওয়া হয়েছিল: আপনি যেগুলি থেকে চিত্রটি নিয়েছেন: http://blogs.collab.net/subversion/2007/11/branching-strat/


2

যতক্ষণ আপনি নীতিগুলি বোঝেন ততক্ষণ আপনি সর্বদা সেরা অনুশীলনগুলি পুনরায় উদ্ভাবন করতে পারেন। আপনি যদি নীতিগুলি বুঝতে না পারেন তবে কিছু বিবাদমান বাহ্যিক প্রয়োজনের কারণে সেরা অভ্যাসগুলি আপনাকে বিচ্ছিন্ন হওয়ার আগে নিয়ে যাবে far

মাইনলাইন মডেলটিতে সেরা পরিচয়ের জন্য, এটি পড়ুন: https://web.archive.org/web/20120304070315/http://oreilly.com/catolog/practicalperforce/chapter/ch07.pdf

লিঙ্কটি পড়ুন। আপনি বেসিকগুলি একবার পেয়ে গেলে, শ্রদ্ধেয় হেনরিক কনিবার্গের নীচের নিবন্ধটি পড়ুন। এটি আপনাকে ধারাবাহিক সংহতকরণের সাথে মেইনলাইন মডেলটি সম্পর্কিত করতে সহায়তা করবে।

http://www.infoq.com/articles/agile-version-control


ও'রিলির অধ্যায়টি আর অ্যাক্সেসযোগ্য নয়
জেসন এস

1

আমরা যখন আমাদের দল শুরু করি তখন আমরা বিক্রেতার কাছ থেকে একটি রিলিজ-ভিত্তিক কৌশল উত্তরাধিকার সূত্রে পাই যা মূলত আমরা যে সিস্টেমটি দায়িত্বে চলেছিলাম তা তৈরি করে developed আমাদের গ্রাহকরা অনুরোধ করেছিলেন যে বেশ কয়েকটি বিকাশযুক্ত বৈশিষ্ট্যগুলি একটি রিলিজের মধ্যে অন্তর্ভুক্ত করা উচিত নয় (এক্সপি এসডিএলসি সহ 250 ডলার কোডের লাইন, 2500 ডলার ফাইল, স্ক্রাম) It

তারপরে আমরা বৈশিষ্ট্য-ভিত্তিক শাখাগুলির দিকে তাকাতে শুরু করি। এটি কিছুক্ষণের জন্যও কাজ করেছিল - 2 মাসের মতো আমরা বুঝতে পেরেছি যে আমাদের প্রতিরোধের পরীক্ষার প্রক্রিয়াটি 2 সপ্তাহের বেশি সময় নেবে যা কী প্রকাশিত হবে তার অনিশ্চয়তার সাথে এক বিশাল অসুবিধা তৈরি করে।

খাঁটি এসসি কৌশলগুলির চূড়ান্ত "কফিনে পেরেক" এসেছিল যখন আমরা স্থির করেছিলাম যে আমাদের 1 টি স্থিতিশীল ট্রাঙ্ক এবং 2. উত্পাদনে এসটি, ইউএটি, এবং রিগ্রেশন পরীক্ষিত বিনাইন থাকতে হবে (কেবল উত্স নয় - সিসি ভাবেন।)

এটি আমাদের এমন একটি কৌশল তৈরি করতে পরিচালিত করে যা বৈশিষ্ট্য এবং রিলিজ-ভিত্তিক এসসি কৌশলগুলির মধ্যে একটি হাইব্রিড।

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

সংক্ষেপে, বৈশিষ্ট্য-ভিত্তিক শাখাগুলি বিকাশ, সিস্টেম পরীক্ষা এবং UAT কার্যকারিতা ব্যবহার করতে ব্যবহৃত হয়। স্প্রিন্ট শাখা (সত্যই রিলিজ শাখা) অন-চাহিদা এবং ইন্টিগ্রেশন-পরীক্ষামূলকভাবে বৈশিষ্ট্যগুলি মার্চ করার জন্য ব্যবহৃত হয়।

সম্প্রদায়ের কাছে এখন একটি প্রশ্ন - ক্রমস কনট্রোলের পুনর্নির্মাণ ওভারহেডের অনেকগুলি শাখায় উন্নয়ন ঘটে এবং এই কারণে আমাদের স্পষ্টতই ধারাবাহিক সংহতকরণে সমস্যা হচ্ছে। কেউ পরামর্শ এবং পরামর্শ দিতে পারেন?


অগত্যা আমি সিদ্ধান্তে একমত হই না, তবে আপনার প্রক্রিয়াটি আলোচনার জন্য ধন্যবাদ। কোনও আকারের-ফিট-সব সমাধান নেই।
রাউলরবিন

0

আমি এটি যেভাবে দেখছি তাতে আপনি সীমিত শাখাগুলি রাখতে চান যেখানে আপনি মনোনিবেশ করতে পারেন। যেহেতু আপনি বিল্ডগুলির সাথে চালানোর জন্য পরীক্ষা, কোড মানের মেট্রিক এবং অনেক আকর্ষণীয় জিনিস চান, তাই খুব বেশি প্রতিবেদন থাকা আপনাকে সম্ভবত তথ্য মিস করতে পারে।

কখন এবং কী শাখা করবেন, সাধারণত দলের আকার এবং বৈশিষ্ট্যগুলির আকারের উপর নির্ভর করে। আমি মনে করি না যে এখানে একটি সোনার নিয়ম রয়েছে। নিশ্চিত হয়ে নিন যে আপনি এমন কোনও কৌশল ব্যবহার করেছেন যেখানে আপনি প্রথম / প্রায়শই প্রতিক্রিয়া পেতে পারেন এবং এর মধ্যে বৈশিষ্ট্যগুলির প্রথম থেকেই গুণমান জড়িত includes কোয়ালিটির বিট, এর অর্থ এই যে আপনি যখন টিম বিকাশের সাথে সাথে স্বয়ংক্রিয় হচ্ছেন, আপনি যদি একটি বড় বৈশিষ্ট্য নির্ধারণ করে একটি দল তৈরি করছেন, তবে আপনার দলে গুণমানও জড়িত থাকতে হবে।

PS আপনি কোথায় এই পদ্ধতির রেফারেন্স পেয়েছেন? - মনে হয় না যে এই গ্রাফগুলি সমস্ত বিকল্পকে উপস্থাপন করে

আপডেট 1: কেন আমি বললাম এটি সোনার নিয়ম নয় তা প্রসারিত করে। মূলত তুলনামূলকভাবে ছোট দলগুলির জন্য আমি একটি মিশ্রণ এমন পদ্ধতির ব্যবহার করে এটি সেরা খুঁজে পেয়েছি। বৈশিষ্ট্যযুক্ত শাখাগুলি তৈরি করা হয় যদি এটি দীর্ঘ কিছু হয় এবং দলের অংশে ছোট বৈশিষ্ট্য যুক্ত করা অবিরত থাকবে।


এটি আরও কিছু আছে। তবে আমি মনে করি ফিচার ব্র্যাঞ্চিং এবং রিলিজ ব্রাঞ্চ 2 সবচেয়ে সাধারণ।
কিংস্টেস্টর

0

ডেভ Farley আপনার , একজন লেখক ক্রমাগত ডেলিভারি , উল্লেখ ট্রাঙ্ক ভিত্তিক ডেভেলপমেন্ট (TBD) ক্রমাগত ইন্টিগ্রেশন (ci) এবং ক্রমাগত ডেলিভারি (সিডি) ভিত্তি হিসাবে। তিনি বলেন:

ব্রাঞ্চিংয়ের যে কোনও রূপ ক্রমাগত একীকরণের বিরোধী।

তিনি আরও বলেছেন,

ফিচার ব্র্যাঞ্চিং কোনও পৃথক বিকাশকারীর দৃষ্টিকোণ থেকে খুব সুন্দর তবে একটি দলের দৃষ্টিকোণ থেকে উপ-অনুকূল। আমরা প্রত্যেকে অন্য সবাই কী করছে তা উপেক্ষা করতে এবং আমাদের কাজ চালিয়ে যেতে চাই would দুর্ভাগ্যক্রমে, কোড এর মতো নয়। এমনকি সুন্দর বিচ্ছেদ-সম্পর্কিত উদ্বেগ এবং আশ্চর্যজনকভাবে আলগাভাবে-কাপল উপাদানগুলির সাথে খুব ভাল-সংখ্যক কোড-বেসগুলিতেও কিছু পরিবর্তন সিস্টেমের অন্যান্য অংশগুলিকে প্রভাবিত করে।

ট্রাঙ্ক বেসড ডেভলপমেন্ট (টিবিডি) হ'ল ট্রাঙ্কে কোড পরিবর্তনগুলি সংহত করার অভ্যাস (ওরফে, মাস্টার, মাইনলাইন) প্রতিদিন কমপক্ষে একবার - সাধারণত প্রতিদিন একাধিকবার times কন্টিনিউস ইন্টিগ্রেশন (সিআই) এটি একই রকম অনুশীলন ছাড়া এটিতে স্বয়ংক্রিয় পরীক্ষাগুলি ব্যবহার করে কোড পরিবর্তনগুলি যাচাই করা জড়িত। এর সেরা শাখা কৌশলটি সরাসরি ট্রাঙ্কের বাইরে কাজ করা এবং পেয়ার-প্রোগ্রামিংয়ের মাধ্যমে কোড পর্যালোচনা সম্পাদন করা । যদি কোনও কারণে আপনি জুড়ি দিতে না পারেন, বা আপনি সত্যিই শাখা করতে চান তবে নিশ্চিত করুন যে আপনার শাখাগুলি স্বল্পস্থায়ী (এক দিনেরও কম)।

আমি আমার জিআইটি রেপোতে ট্রাঙ্ক, "মাস্টার" - এ কাজ করি। আমি স্থানীয়ভাবে মাস্টার করার প্রতিশ্রুতিবদ্ধ এবং সিআই চালিত যেখানে আমার কেন্দ্রীয় মাস্টার রেপোতে যখন আমি নেটওয়ার্কে আসি তখন অবিলম্বে ধাক্কা দেয়। এটাই!

বড় বৈশিষ্ট্যগুলির জন্য (উদাহরণস্বরূপ যেগুলি এক দিনের চেয়ে বেশি সময় নেয়) তাদের এটিকে যুক্তিযুক্ত ছোট ছোট ভাগে পরিণত করার চেষ্টা করুন যা সফ্টওয়্যারটি না ভেঙে ট্রাঙ্কে সংহত করা যায়। আপনি বিমূর্ততা দ্বারা বৈশিষ্ট্য-পতাকাঙ্কণ এবং শাখা - প্রশাখার মতো কৌশলগুলিও ব্যবহার করতে পারেন যা আপনাকে শেষ ব্যবহারকারীদের প্রভাবিত না করে অসম্পূর্ণ কাজ মোতায়েন করতে দেয়।

আমি বিমূর্ততা, অন্ধকার-মুক্তি এবং কখনও কখনও বৈশিষ্ট্য-পতাকা দ্বারা শাখা ব্যবহার করি। বিনিময়ে আমি যা পাই তা দ্রুত, নির্দিষ্ট (কমপক্ষে আমার পরীক্ষার মানের দিকে) প্রতিক্রিয়া।


ড্যাভ ফারলি এবং জেজ বিনীত শাখা প্রশস্ত করার বিষয়ে তাদের অবস্থানের পক্ষে ভুল। এর কারণটি হ'ল এটি গুরুত্বপূর্ণ অনুমানকে এনকোড করে "ফিচার স্তরে আপনাকে কখনই কোড ব্যবহার করতে হবে না এবং যদি তা হয় তবে এটি ব্যয়বহুল ক্রিয়াকলাপ হ'ল ঠিক" এবং তারা তাদের মূল্যায়নটিকে অন্য একটি অনুমানের ভিত্তিতে ভিত্তি করে "স্বয়ংক্রিয়রূপে মার্জ করা খুব ব্যয়বহুল মার্জগুলি প্রায় স্কেল প্রায় অসম্ভব "। যদি এই দুটি অনুমানটি সত্য না হয়, আপনি যদি এমন বিশ্বে বাস করেন যেখানে মার্জ করা সস্তা, তবে ব্যাক পোর্ট এবং সুরক্ষা ফিক্সগুলির জন্য বৈশিষ্ট্য স্তরে কোড ম্যানিপুলেট করা দরকার, তবে তাদের বক্তব্যগুলি ভেঙে যায়। এটি বিরল ঘটনা।
জিরি ক্লাউদা

কিছু বৈশিষ্ট্যগুলি ভবিষ্যতে প্রকাশের দিকে ফিচারগুলি এগিয়ে নিয়ে যাওয়ার দরকার রয়েছে, এই বৈশিষ্ট্যগুলি বাস্তবায়নে রোড ব্লকগুলিকে আঘাত করার পরে এবং একটি রিলিজ ধরে রাখার পরে। কখনও কখনও সাস পণ্যগুলির মতো কোডটি মধ্যে রেখে দেওয়ার বিকল্প থাকে তবে কোডটি গ্রাহকদের কাছে প্রকাশ করা হলে এটি কোনও বিকল্প নাও হতে পারে কারণ এটি প্রতিযোগীদের দ্বারা বিশ্লেষণ করা যেতে পারে। আজকাল এতগুলি কোড সংকলিত হয় না এবং তা থাকলেও কোডে সংজ্ঞাযুক্ত / বৈশিষ্ট্যযুক্ত পতাকাগুলি শাখার মতো একই জটিলতায় রয়েছে।
জিরি ক্লাউদা

-3

আমি মনে করি আপনি যে সরঞ্জামগুলি ব্যবহার করেন এটি এখানে একটি বড় ফ্যাক্টর।

  • আপনি যদি সাবসার্জন ব্যবহার করছেন তবে বিকল্প 1 টি স্টিক করুন এবং শাখা থেকে ছেড়ে দিন।
  • আপনি যদি জিআইটি ব্যবহার করে থাকেন তবে বিকল্প 2 আপনার পক্ষে ভাল কাজ করবে।

4
বৈশিষ্ট্য শাখা সহজেই যে কোনও এসসিএম
hdost
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.