একটি ছোট দলকে একটি সংস্করণ নিয়ন্ত্রণ শাখার নীতি উপস্থাপন করা হচ্ছে


17

আমি এমন একজন ঠিকাদার যা সম্প্রতি একটি ফার্ম দিয়ে শুরু করেছি।

দলটি 3 বিকাশকারী যা মধ্য থেকে মাঝারি স্তরের 2 টি জুনিয়র সমন্বয়ে থাকে এবং একই স্তরে আরেকটি শীঘ্রই শুরু হয় এবং আমি (6 বছর এক্সপি)। বিদ্যমান বিকাশকারী উভয়ের জন্যই এটি বিশ্ববিদ্যালয় / কলেজের বাইরে তাদের প্রথম কাজ, এবং এর আগে তাদের কোনও কাজের তদারকি করার কোনও সিনিয়র বিকাশকারী কখনও করেন নি।

এখানে কোন স্পষ্ট সংস্করণ নিয়ন্ত্রণ নীতি নেই। বিকাশকারীরা ট্রাঙ্কে সমস্ত বিকাশ করে এবং তারপরে তাদের বিকাশ মেশিন থেকে সরাসরি উত্পাদন স্থাপন করে। বিদ্যমান দলটি শাখার সাথে পরিচিত নয়।

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

উত্স নিয়ন্ত্রণ ব্যবস্থা টিএফএস, যা আমি আগে কখনও ব্যবহার করি নি। এটি একটি দৈত্য সংগ্রহস্থল হিসাবে কনফিগার করা হয়েছে।

আমি তাদের জন্য কয়েকটি পয়েন্টার লিখেছি, তবে দলের অভিজ্ঞতাটি মাথায় রেখে আমার আরও কিছু সংযোজন / সংশোধন করা উচিত?

সংস্করণ নিয়ন্ত্রণ নীতি

ট্রাঙ্কে উন্নয়ন করা হয়

যদি কোনও পরিবর্তনটি এক সপ্তাহেরও বেশি সময় নেয় বলে অনুমান করা হয় তবে দুটি শাখাকে সিঙ্কের বাইরে যাওয়া বন্ধ করার জন্য ট্রাঙ্ক থেকে নিয়মিত সংশ্লেখ করে শাখায় এটি করা উচিত।

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

যদি উত্পাদনের কোডকে প্রভাবিত করে এমন একটি জরুরি ত্রুটি তৈরি করা দরকার হয়, তবে এটি রিলিজ শাখায় তৈরি হয়ে আবার ট্রাঙ্কে মিশে যায়।

আমরা যদি একটি রিলিজ শাখার কৌশল গ্রহণ করি তবে ট্রাঙ্কটি স্প্রিন্টের শেষে স্প্রিন্টের শেষের দিকে একবার রিলিজ শাখায় মিশে যায়।

আমরা যদি প্রকাশের কৌশল অনুসারে পৃথক শাখা গ্রহণ করি তবে ট্রাঙ্কটি কখনও রিলিজ শাখায় একীভূত হবে

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


আমি তিনটি সার্ভার রাখার পরিকল্পনা করছি। টেস্ট পরিবেশ যা সর্বদা সর্বদা সর্বশেষ কোডটি রেপোতে চলছে। একটি মঞ্চ পরিবেশ যা মঞ্চে / পরীক্ষার জন্য রিলিজ প্রার্থী কোড এবং ইউএটি উদ্দেশ্যে এবং উত্পাদন পরিবেশের জন্য নতুন রিলিজ প্রার্থী চালাচ্ছে।

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

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


অন্ধকারে আমি মনে করি বৈশিষ্ট্য শাখাটি খুব দূরে একটি পদক্ষেপ এবং আমি এটি সরিয়ে ফেলব।

সুতরাং মূলত এটি নেমে আসে) ক) কোন শাখা ছাড়াই) খ) একটি রিলিজ শাখা এবং ট্রাঙ্ক, এবং গ) প্রতি রিলিজ শাখা এবং ট্রাঙ্ক।

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


3
আপনি কেন এই উপায়টি বেছে নিয়েছেন তার ব্যাখ্যা যুক্ত করে বিবেচনা করেছেন? বলুন, একইভাবে এটি এখানে কীভাবে করা হয় । এছাড়াও, আপনি কি "মাইক্রোসফ্ট টিম ফাউন্ডেশন সার্ভার ব্র্যাঞ্চিং গাইডেন্স" (উদাহরণস্বরূপ এখানে উল্লেখ করেছেন ) পরীক্ষা করেছেন?
gnat

3
ব্যবহার করে দেখুন এই এক
gbjbaanb

1
মনে রাখবেন যে আমি টিএফএস ব্যবহার করছি জিআইটির মতো ডিভিসিএস নয়। এটি কিছুটা গিট নির্দিষ্ট বলে মনে হচ্ছে।
মিঃব্লিজ

2
এই লিঙ্কটির সমাপ্তিটি বলে: "প্রত্যেকে ট্রাঙ্কের বাইরে কাজ করে you আপনি যখন কোড প্রকাশ করবেন তখন Branch শাখা। যখন আপনাকে ইতিমধ্যে প্রকাশিত কোডের জন্য বাগ ফিক্স তৈরি করতে হবে তখন একটি রিলিজ বন্ধ করবে prot আমি আপনাকে পরামর্শ দেব যে একটি সাধারণ সূচনা করার জন্য আপনি কেবলমাত্র প্রকাশগুলি ট্যাগ করবেন যখন আপনি যুক্তিসঙ্গতভাবে নিশ্চিত হন যে সেগুলি সম্পন্ন হয়েছে। আপনার একাধিক বৈশিষ্ট্যগুলিতে একাধিক বিকাশকারী কাজ না করে থাকলে 1 টির বেশি শাখা রাখার খুব বেশি দরকার নেই। প্রত্যেকেই বৈশিষ্ট্যগুলি যুক্ত করে, প্রত্যেকে মুক্তির প্রার্থীকে ঠিক করে দেয়, ট্যাগ করার জন্য প্রস্তুত হলে সকলেই সম্মত হন। এর অর্থ আপনাকে পরে বাগ ফিক্সের জন্য কেবল শাখা হস্তান্তর করতে হবে।
টাফটি

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

উত্তর:


16

3-4 দেব-দের একটি দলের জন্য, আপনি ওয়েকে অনেকগুলি শাখার প্রস্তাব দিচ্ছেন।

আপনার তৈরি প্রতিটি শাখা অতিরিক্ত ওভারহেড যা ব্যয়ের সাথে আসে (ব্যয় করতে ব্যয় করা সময়, কোথায় কী আছে ইত্যাদি সম্পর্কে নজর রাখা)। আপনাকে অবশ্যই নিশ্চিত করতে হবে যে শাখা থাকা থেকে যে উপকার পাবেন তা ব্যয়ের চেয়েও বেশি।

মনে রাখবেন যে শাখার একমাত্র আসল সুবিধা হ'ল কোড বিচ্ছিন্নতা। এর অর্থ কোড বিচ্ছিন্ন করার জন্য আপনার একটি শক্ত কারণ প্রয়োজন।

প্রতিটি স্প্রিন্টের জন্য পৃথক প্রকাশের শাখা থাকা পাগল। আপনি কেন পরের জন্য কোড থেকে আলাদা করে একটি স্প্রিন্টের কোডের প্রয়োজন? কেন কেবল একটি একক স্থিতিশীল রিলিজ শাখা নেই যা প্রতিটি স্প্রিন্টের সাথে এগিয়ে চলে?

যদি কোনও পরিবর্তনটি এক সপ্তাহেরও বেশি সময় নেয় বলে অনুমান করা হয় তবে দুটি শাখাকে সিঙ্কের বাইরে যাওয়া বন্ধ করার জন্য ট্রাঙ্ক থেকে নিয়মিত সংশ্লেখ করে শাখায় এটি করা উচিত।

আপনার বিকাশ, বিকাশকারী পরীক্ষা, দৈনিক বাধা এবং অন্যান্য ক্রিয়াকলাপ ইত্যাদির জন্য অ্যাকাউন্ট নেওয়ার পরে প্রায় কোনও অ-তুচ্ছ নতুন বৈশিষ্ট্য রিয়েল টাইমে কমপক্ষে এক সপ্তাহ সময় নিতে চলেছে

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

আমাদের 4 টি বিকাশকারীদের একটি দল 1+ মিলিয়ন লাইন কোডবেজে কাজ করছে এবং এটিই আমরা পরিচালনা করি:

  • মূল শাখা যেখানে সমস্ত উন্নয়ন হয়
  • প্রধান রিলিজ প্রতি একটি শাখা (প্রতি বছর প্রায় একবার করা হয়)

একটি প্রধান নিয়ম হ'ল: কোডটি তৈরি করে না যা চেক করে না।

এটাই. সহজ, বোঝা সহজ, আমাদের প্রয়োজন বিচ্ছিন্নতা পায় (যে কোনও সময় আমরা যে কোনও সংস্করণের জন্য একটি রিলিজ বিল্ড তৈরি করতে পারি)।

সমস্ত শাখা উন্নয়নমূলক কাজ এক শাখায় সম্পন্ন করার উত্সাহ:

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

10
"মনে রাখবেন যে শাখার একমাত্র আসল উপকার হ'ল কোড বিচ্ছিন্নতা That এর অর্থ কোডটি বিচ্ছিন্ন করার জন্য আপনার কোনও দৃ reason় কারণ প্রয়োজন" " - কোড পর্যালোচনা সম্পর্কে কীভাবে? আমি মনে করি এটি একটি ভাল কারণ, এমনকি মাত্র দুটি ডেভস রয়েছে।
ব্লুরাজা - ড্যানি পিফ্লুঘুফুট

2
কোড পর্যালোচনা এবং শাখা প্রশস্তকরণ আসলে সম্পর্কিত নয়। আপনি কি বলছেন যে আপনি পর্যালোচনা করার আগে কোনও নির্দিষ্ট শাখায় কোড চেক ইন করতে চান না?
26

5
@ 17of26, হ্যাঁ কোড পর্যালোচনা সাধারণত মূলধারায় থাকার পূর্বশর্ত হিসাবে ব্যবহৃত হয় । সুতরাং আপনাকে তার আগে কোডটি কোনওভাবে প্রদর্শন করতে হবে: আপনার মনিটরে, কোনও ইমেলের মাধ্যমে, বা - অনেকগুলি সেটআপে - কোনও শাখায়। এটি গিটহাব বা জারিতের মতো রেপো ম্যানেজমেন্ট সরঞ্জামের সাথে সবচেয়ে ভাল কাজ করে।
পল ড্রাগার

3
টিএফএস শেলফেটের মাধ্যমে কোড রিভিউগুলিকে সমর্থন করে, যা উত্স নিয়ন্ত্রণে অস্থায়ী হোল্ডিং অঞ্চল। পর্যালোচনা না হওয়া এবং তারপরে চেক ইন না হওয়া পর্যন্ত কোড সেখানে থাকতে পারে
26

2
আমার বক্তব্যটি হ'ল, শাখাগুলি কোড রিভিউ করার জন্য ব্যবহার করার জন্য সঠিক পদ্ধতি নয়।
26

31

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

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

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

  • একজন বিকাশকারীকে ভাবতে হবে যে পরিবর্তনটি কোথায় অবস্থিত হওয়া উচিত,

  • কাউকে শাখা পরিচালনা করতে হবে এবং শাখা থেকে ট্রাঙ্কে মার্জ করতে হবে,

  • শাখাগুলির মধ্যে মার্জগুলি কমিটের চেয়ে কম ঘন ঘন সম্পন্ন হয়, যার অর্থ কারও কারও দ্বন্দ্বের সাথে মোকাবিলা করতে হবে যা দুটি কমিটের দ্বন্দ্বের চেয়ে বড় এবং আরও বেশি কঠিন,

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

ব্যাপারটা হচ্ছে:

বিদ্যমান দলটি শাখার সাথে পরিচিত নয়

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


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

2
@ এমআরব্লিজ: সুইচের মাধ্যমে। আপনি বিকাশকারীদের জন্য একটি বৈশিষ্ট্য সক্রিয় করতে পারেন, তবে এটি আরটিএমের জন্য প্রস্তুত না হলে শেষ ব্যবহারকারীদের জন্য এটি নিষ্ক্রিয় করতে পারেন।
আর্সেনী মরজেনকো

3
আমি যে বিকাশকারীদের সাথে কাজ করছি তার অভিজ্ঞতা এবং অটোমেটেড পরীক্ষার বর্তমান অভাবকে মনে রেখে আমি মনে করি না যে এটি আমাদের পরিস্থিতির জন্য ভাল ধারণা হবে।
মিঃব্লিজ

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

1
@ মিঃব্লিজ হ্যাঁ আমি লক্ষ্য করেছি যে (এবং আমি মনে করি আপনি এটি সঠিকভাবে পেয়েছেন, যদি কেবল এটি সমর্থন করার যুক্তি ব্যাখ্যা করতে ব্যর্থ হন)। এটি কেবলমাত্র আপনার মন্তব্য বা এই উত্তরটি মুক্তি বা বৈশিষ্ট্যযুক্ত শাখাগুলি (বা উভয়?) সম্পর্কে স্পষ্টভাবে উল্লেখ করে না, তাই আমি এই পার্থক্যের উপর চাপ দেওয়ার জন্য মন্তব্য করেছি । FWIW অস্পষ্ট হচ্ছে এটি সম্ভবত শুধুমাত্র জিনিস যে আমি এই উত্তর সম্পর্কে অপছন্দ
মশা

3

মেনমা যেমন বলেছেন, শাখা প্রশাখায় সতর্ক থাকুন। আপনি প্রতি কয়েক সপ্তাহে শাখা প্রশাখার কথা উল্লেখ করেন, সত্যিই কি প্রচুর শাখা থাকা দরকার?

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


কার্যকরভাবে যে কোনও সময়ে কেবল তিনটি সক্রিয় শাখা (মুক্তি, প্রকাশের প্রার্থী, এবং ট্রাঙ্ক) থাকবে এবং বেশিরভাগ সময় কেবলমাত্র মুক্তি শাখা এবং ট্রাঙ্ক থাকবে।
মিঃব্লিজ

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