শাখা উত্স কোড এবং অ্যাপ্লিকেশন জীবনচক্র সহ সেরা অনুশীলন


10

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

আমাদের প্রধান সমস্যাটি কীভাবে শাখা এবং প্রধান ট্রাঙ্ক সিঙ্কে রাখা যায়।

আজ আমরা কীভাবে জিনিসগুলি এখানে করব:

  1. নতুন সংস্করণ প্রকাশ করুন (সাবভারশনে স্বয়ংক্রিয়ভাবে একটি ট্যাগ তৈরি করুন)
  2. পরের মাসে মুক্তি পাবে মূল ট্রাঙ্কে কাজ চালিয়ে যান

এবং চক্র প্রতি মাসে পুনরাবৃত্তি করে এবং পুরোপুরি কাজ করে। সমস্যা দেখা দেয় যখন জরুরি পরিষেবা মুক্তির দরকার হয় needs আমরা এটিকে মূল ট্রাঙ্ক (2) থেকে মুক্তি দিতে পারি না কারণ এটির তীব্র বিকাশ চলছে এবং এটি জরুরিভাবে প্রকাশের পক্ষে যথেষ্ট স্থিতিশীল নয়।

সেক্ষেত্রে আমরা নিম্নলিখিতটি করি:

  1. আমরা পদক্ষেপে তৈরি করা ট্যাগ থেকে একটি শাখা তৈরি করুন (1)
  2. বাগ ফিক্স
  3. পরীক্ষা এবং মুক্তি
  4. পরিবর্তনটিকে মূল ট্রাঙ্কে ফিরে যান (প্রযোজ্য ক্ষেত্রে)

আমাদের বৃহত্তম সমস্যাটি এই দুটি (প্রধান সহ শাখা) মার্জ করা। বেশিরভাগ ক্ষেত্রে আমরা স্বয়ংক্রিয়ভাবে মার্জ হওয়ার উপর নির্ভর করতে পারি না কারণ যেমন:

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

সুতরাং আপনি যা ভাবেন তা হ'ল এই দুটি ভিন্ন সংস্করণ (শাখা এবং প্রধান) সিঙ্কে রাখার জন্য সেরা অনুশীলন। আপনি কি করেন?


1
নিশ্চিত হয়ে নিন যে আপনি tfsbranchingguideiii.codeplex.com দেখুন (উত্তর হিসাবে পোস্ট করা হচ্ছে না কারণ এটি সরাসরি আপনার প্রশ্নের সমাধান করে না, তবে আমি তাদের টিএফএস শাখা-ফু আরও উন্নত করতে চাইছেন এমন লোকদের কাছে আমি সর্বদা এটি প্রস্তাব করি)। সম্ভবত তাদের একটি শাখা পরিকল্পনা আপনাকে কীভাবে আপনার সেটআপটি উন্নত করতে পারে সে সম্পর্কে ধারণা দেবে idea
nlawalker

উত্তর:


2

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

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

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

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

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


2

আমি একেবারে বিপরীত দিক থেকে এটি দেখার ঝোঁক:

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

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


1

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


2
ভিসিএস আপনি কি চেষ্টা করেছেন? মার্জ কর্মের নির্ভর ব্যাপকভাবে VCS ব্যবহৃত হচ্ছে উপর।
বিকল্প

প্রচুর নতুন ভিসিএস প্রকৃতপক্ষে ভাল মার্জিংয়ে পরিচালনা করে। কখনও কখনও দ্বন্দ্ব তখনও দেখা দিতে পারে তবে এগুলি প্রকৃত দ্বন্দ্ব হতে থাকে, নকলগুলি এসভিএন দ্বারা প্রচুর সময় রিপোর্ট করে না।
সেভেনসিয়াট

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

1
মার্জ সরঞ্জামগুলি টেক্সটের দুই টুকরা একসাথে স্ল্যাম করার কথা নয়। তাদের পিতামাতার প্রতিশ্রুতি থেকে পরিবর্তনগুলি মার্জ করার কথা রয়েছে; বিশাল পার্থক্য.
বিকল্প

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

1

একটি শৃঙ্খলাবদ্ধ রিলিজ-অন-মুখ্য পদ্ধতির ভাল কাজ করে।

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

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