মুক্তির জন্য সঠিক ব্রাঞ্চিং কৌশল নির্বাচন করা


11

একটি নতুন প্রকল্পে একটি নতুন দেব দলের সাথে শুরু করে এবং আমাদের উত্স সংগ্রহস্থলের জন্য আমাদের শাখা কৌশলটি নির্ধারণ করতে হবে ( যেমন মাইক্রোসফ্ট টিম ফাউন্ডেশন সার্ভার 2010 )। আমরা কি না করব তা নিয়ে একটি চটচটে আলোচনা শুরু করেছি ...

। একটি রিলিজ শাখা রয়েছে যা থেকে আমরা উত্পাদন তৈরি করি এবং তারপরে লেবেল আসলে কিছু প্রকাশিত হয়

অথবা

। উত্পাদনে প্রতিটি নতুন রিলিজের জন্য একটি নতুন রিলিজ শাখা রাখুন ( উদাহরণস্বরূপ সংস্করণ 1, 2, 3, ইত্যাদি ... )

অপশন একজন বলে মনে হয় চমত্কার সোজা সম্মুখগামী কিন্তু আমরা নিশ্চিত এই দীর্ঘ রান সমস্যার হতে হবে না। বিকল্প বি দেখে মনে হচ্ছে এটি কেবল প্রচুর এককালীন দীর্ঘকালীন শাখা তৈরি করে যা সময়ের সাথে সাথে কেবল স্তূপীকৃত হয়।

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

উত্তর:


15

বিকল্প এ। মুক্তির জন্য কেবল মূললাইন এবং ট্যাগিং ব্যবহার করা

পেশাদাররা:

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

কনস:

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

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

আপনি যখন এটি না করেন আপনি নিজেকে মার্জ ইস্যু, বাসি কোড, এমন বৈশিষ্ট্য যা কখনই প্রকাশ হয় না ইত্যাদি নিয়ে কাজ করতে শুরু করেন etc.

রিলিজ করে বিকল্প বি

পেশাদাররা:

  • বর্তমান পুনরাবৃত্তিটি তার গ্রহণযোগ্যতা পরীক্ষার রাউন্ডটি শেষ করার পরে আপনি পরবর্তী পুনরাবৃত্তির উপর কাজ শুরু করতে পারেন।
  • নিশ্চিত অন্যান্য জিনিস।

কনস:

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

আমি এই সমাধানের বিশাল ভক্ত নই ^ _ ^।

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

আদর্শভাবে যদিও আমি মনে করি আপনি এটি ব্যতিক্রম প্রক্রিয়া হতে চান, নিয়ম নয়।

অপশন সি। ক্রেজি বোনাস অপশন

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

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

  1. ডেভস দ্বারা তাদের দলগুলির দেব শাখায় বৈশিষ্ট্যগুলি বিকাশ করা হয়েছিল।
  2. যখন কোনও বৈশিষ্ট্য পিয়ারের জন্য প্রস্তুত হয় তখন ডেভ শাখা থেকে সিআর শাখায় একটি একত্রীকরণে ডেভগুলি বান্ডিল করে এবং শিরোনামে বৈশিষ্ট্য আইডি / ব্যবহারকারীর গল্প অন্তর্ভুক্ত করে। * প্রি-কমিট হুক দ্বারা প্রয়োগ করা *
  3. এটি সিআর পাস করার পরে একটি প্রশাসনিক সরঞ্জাম QA শাখায় বৈশিষ্ট্য প্রচার করতে ব্যবহৃত হয়। (আমি একটি সামান্য টার্মিনাল অ্যাপ্লিকেশন লিখেছি যা বিভিন্ন গ্রহণযোগ্যতার পর্যায়ে উপস্থিত থাকা ব্যবহারকারী গল্পগুলিকে তালিকাভুক্ত করেছে এবং অপারেটরটিকে সেই স্বীকৃতি পর্যায়ে অভ্যন্তরে প্রচার বা কমিয়ে আনার অনুমতি দিয়েছে)
  4. কিউএ অটোমেশন এবং ম্যানুয়াল ব্যবহারযোগ্যতা পরীক্ষা চালায়। বৈশিষ্ট্যটি ভাল হলে এটি রিলিজ শাখায় (মেইনলাইন) ধাক্কা। যদি বৈশিষ্ট্যটি তার অনুন্নত / কিউএ শাখা থেকে ফিরিয়ে দেওয়া প্রত্যাখ্যান করা হয় যতক্ষণ না ডেভরা পরীক্ষার সময় উত্থাপিত সমস্যাগুলি সমাধান করতে পারে এবং সিআর শাখায় একটি প্যাচ জমা দেয়।
  5. যদি কিউএ শাখা থেকে কোডটি উল্টানো হয় এবং কোনও সমাধান প্রয়োগ করা হয় তবে টার্মিনাল সরঞ্জামটি সিআর শাখা থেকে ফিচারটি QA শাখায় ফিরিয়ে আনতে প্রয়োজনীয় পরিবর্তনগুলি পুনরায় প্রয়োগ করবে যাতে QA কোডটি পুনরায় পর্যালোচনা করতে পারে এবং হয় প্রচার করতে পারে বা আবার এটি demote।
  6. যে কোনও সময়ে মুক্তির শাখাটি একটি স্থিতিশীল পুনরুক্তযোগ্য অবস্থায় থাকা উচিত।
  7. একটি রিলিজের পরে নতুন দেব, কিউএ এবং সিআর মুখ্যরেখা থেকে কাটা হয়েছে।

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

আমি কীভাবে অপশন কাজ করতে পারি তা দেখছি না। আমার সংস্থায়, আমাদের বিভিন্ন গ্রাহকের জন্য আলাদা প্রকাশ রয়েছে। আমরা যদি এখনও সংস্করণ ১.০ এ বৈশিষ্ট্য / হটফিক্স বিকাশ করে চলেছি এবং ২.০ সংস্করণে সক্রিয়ভাবে কাজ করে যাচ্ছি এবং সম্ভবত 3.0 এছাড়াও আমরা একটি শাখায় এটি করতে পারি না। আপনার মুক্তির মডেলের কারণে সম্ভবত আপনার বিকল্প অপশনটি উপভোগ করার বিলাসিতা রয়েছে। তবে এটি প্রত্যেকের মুক্তির মডেল নয়, এবং আমরা যারা বৈশিষ্ট্য
রঙ্গক

6

আমরা প্রকাশিত প্রতিটি প্রকাশের জন্য আমাদের আলাদা শাখা রয়েছে (এক বছরে 4 এপ্রিল)। এটি যখন আপনার একটি নির্দিষ্ট প্রকাশ টানা প্রয়োজন তখন এটি খুব সুবিধাজনক।

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

এটি যখন বাগ বা কোনও বৈশিষ্ট্য চালু হয়েছিল তখন আপনি শিকার করতে গিয়ে রিলিজের তুলনা আরও সহজ করে তোলে।

শাখাগুলির সংখ্যা বা পরিবর্তন ছাড়াই যে সময় যায় সে সম্পর্কে চিন্তা করবেন না। আপনার সংস্করণ সিস্টেমটি আপনাকে নিয়ন্ত্রণ দেওয়া এবং আপনার প্রকল্পের বিকাশের ইতিহাস সরবরাহ করা। ইতিহাসের পরিবর্তন না হওয়ার প্রবণতা রয়েছে ... এবং আপনার সিভিগুলি যেভাবে সামলাতে সক্ষম হবে তা নিয়ে চিন্তা করবেন না। আমরা পারফফোর্স, 9000+ ফাইলগুলি একটি উন্নয়ন শাখায় ব্যবহার করি, আমরা যে রিলিজ (গুলি) উপর কাজ করছি তার 50 টি পর্যন্ত উন্নত শাখাগুলি এবং ইতিমধ্যে বলেছি, আমরা প্রকাশ করি এমন প্রতি একক শাখা। পারফর্মস এমনকি কোনও শক্ত শ্বাস নিচ্ছে না।

সংক্ষেপে: আপনার জীবনকে একজন বিকাশকারী / রক্ষণাবেক্ষণকারী / বাগ-ফিক্সার / সমস্যা-শিকারী হিসাবে সহজ করুন এবং শাখাগুলির সংখ্যা বা ফাইলগুলির সংখ্যা নিয়ে চিন্তা করবেন না। যে কোনও স্ব-সম্মানজনক সিভিগুলি মোকাবেলা করবে।

সম্পাদনা:

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

রিলিজ শাখাগুলি তাদের মুক্তির জন্য নামকরণ করেছে, যেমন: রিলিজ ২০১১ সার্ভিস প্যাকের জন্য R2011SP1 ১। আমাদের কাজের শাখাগুলিতে কম বুদ্ধিমান নাম রয়েছে: সাব01, সাব02, সাব03 ইত্যাদি "উপ "টি সমস্ত কাজের শাখা উপ-শাখা থেকে আসে গ্রহণযোগ্যতা শাখা। গ্রহণযোগ্যতা শাখা হ'ল যেখানে সমস্ত ইস্যু সংগ্রহ করা হয় যা প্রকাশের জন্য প্রস্তুত।

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


1
আমি বিশ্বাস করি আপনি টিএফএসে লেবেল থেকে শাখা করতে পারেন। সুতরাং আপনি যতক্ষণ না লেবেলটি ভুলে গেছেন ততক্ষণ বর্তমান পণ্য সংস্করণগুলিতে গরম ফিক্সগুলির জন্য ঠিক থাকা উচিত।
কীথ

@ কিথব্রিংস ঠিক আছে, আমি ঠিক এটি পরীক্ষা করেছি এবং আপনি প্রকৃতপক্ষে একটি লেবেল থেকে শাখা করতে পারেন।
জোজিকি

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

@ জোজিকি: না, কোনও বিভ্রান্তি নেই। আমার উত্তর আপডেট দেখুন।
মার্জন ভেনেমা

2

এগুলি সমস্ত প্রসঙ্গে: আপনি কতবার প্রকাশ করেন এবং কোন রিলিজ হয়।

বি পদ্ধতিটি ব্যবহার করে (আমাদের উদ্দেশ্য হিসাবে এটি শাখা বলা হয়েছিল ) ব্যবহার করে আমার পুরানো কাজটি নিয়ে আমি এখানে কিছুটা স্টাডি স্টাডি করেছি ।

গল্পটি প্রসঙ্গে বলার জন্য,

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

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

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

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

সুতরাং নিজেকে যে প্রশ্নগুলি জিজ্ঞাসা করতে হবে সেগুলি হ'ল:

  • আমি কতবার মুক্তি দিই?
  • আমার প্রকাশগুলি কি 100% পশ্চাদপটে সামঞ্জস্যপূর্ণ হতে চলেছে?
  • আমার ক্লায়েন্টগুলি কীভাবে বাগগুলি ঠিক করতে সম্পূর্ণ আপগ্রেড করা ঠিক হবে?

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


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

হ্যাঁ, এই ক্ষেত্রে বিকল্প বি খুব কম রিটার্নের সাথে গোলমালের মতো শোনাচ্ছে। আমি কেবল হাইলাইট করতে চেয়েছিলাম যে উভয় বিকল্পই কার্যকর এবং তাদের প্রতিটি সুবিধা রয়েছে। আমি স্পষ্টভাবে উল্লেখ করতে ভুলে গেছি: আপনি কীভাবে বাগফিক্সগুলি ব্যবহার করবেন? এগুলি কি নতুন প্রকাশে একচেটিয়াভাবে রাখা হয়েছে বা তারা প্যাচগুলি / প্যাচযুক্ত পুরাতন প্রকাশে রয়েছে?
বুশিবাইটস

1

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

আমাকে এমন একটি দলকে সহায়তা করার জন্য চুক্তি করা হয়েছে যা বি টির অপশন চেষ্টা করে ট্র্যাকটিতে ফিরে আসে।

কয়েকটি বিষয় বিবেচনা করতে হবে।

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

0

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

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

সুতরাং আমি এমন কিছু প্রস্তাব দিচ্ছি যা সত্যই এবং বি উভয়ের মিশ্রণ ; উভয়ের ভাল দিক রয়েছে তবে দুটিই নিজের মধ্যে সম্পূর্ণ নয়। উভয় বিশ্বের সেরা ব্যবহার করুন।


0

আমি অতীতে কার্যকরভাবে বিকল্প (বি) প্রয়োগ করতে টিএফএস ব্যবহার করেছি।

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

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

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

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

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