শাখায় নাকি শাখা নয়?


84

সম্প্রতি অবধি আমার বিকাশের কর্মপ্রবাহটি নিম্নলিখিত ছিল:

  1. পণ্যের মালিকের কাছ থেকে বৈশিষ্ট্যটি পান
  2. একটি শাখা তৈরি করুন (যদি বৈশিষ্ট্যটি 1 দিনের বেশি হয়)
  3. এটি একটি শাখায় প্রয়োগ করুন
  4. আমার শাখায় প্রধান শাখা থেকে পরিবর্তনগুলি মার্জ করুন (পশ্চাৎ মার্জ করার সময় দ্বন্দ্ব হ্রাস করতে)
  5. আমার শাখাটি আবার প্রধান শাখায় মার্জ করুন

কখনও কখনও মার্জ করার ক্ষেত্রে সমস্যা ছিল তবে সাধারণভাবে আমি এটি পছন্দ করেছি।

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

সুতরাং প্রশ্নটি কি আমাদের আজকাল শাখা ব্যবহার করা উচিত?


2
আমি নিশ্চিত যে এটি এর জন্য সঠিক প্ল্যাটফর্ম, তবে হ্যাঁ, আমি শাখা করব। তবে সম্ভবত আপনার কিছু
ফিচারসেটগুলি

1
মার্জ করার জন্য তাদের মতো আরও ভাল কৌশল দরকার বলে মনে হচ্ছে।
b01

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

আমি যুক্তি দেব যে শাখাগুলি সিআইকে আরও সহজ করে তুলবে ...
টিডামাররা

7
দয়া করে একাধিক স্ট্যাক এক্সচেঞ্জ সাইটে একই পোস্ট ভারব্যাটিম ক্রস পোস্ট করবেন না।
অ্যাডাম লিয়ার

উত্তর:


64

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

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

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

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

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

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


1
আপনি যদি আপনার নতুন শাখায় অযাচিত প্রতিশ্রুতিগুলি উল্টে দেন তবে আপনি যখন এতে মার্জ হয়ে যাবেন তখন তা তাদের মাস্টার শাখায় বিপরীত হয় না? অবাঞ্ছিত পরিবর্তনগুলির আগে আমি ব্যক্তিগতভাবে একটি বিন্দু থেকে শাখা করব এবং নতুন শাখায় আমি যে পরিবর্তনগুলি নির্ভর করি তা চেরি-বাছাই করব।
অ্যান্টনি

@ অ্যান্থনি সম্ভবত, আপনি মার্জ করার আগে আপনার ইতিহাসটি (রিভার্টগুলি মুছুন) পরিষ্কার করবেন। ইতিহাস রচনার বিরুদ্ধে কেউ আপনার পদ্ধতি অনুসরণ করা ভাল।
idbrii

আপনি যদি ব্রাঞ্চিং এবং ইতিহাসের পুনর্লিখন করেন তবে কেন গিটকে মোটেই ব্যবহার করবেন?
এভারটন

80

প্রশ্নটি কি আমাদের আজকাল শাখা ব্যবহার করা উচিত?

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

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

রেফারেন্স

  • http://msdn.microsoft.com/en-us/library/aa730834%28v=vs.80%29.aspx

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

  • http://www.cmcrossroads.com/bradapp/acme/branching/

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

  • http://www.codinghorror.com/blog/2007/10/software-branching-and-parallel-universes.html

    ... বেশিরভাগ সোর্স কন্ট্রোল সিস্টেমে আপনি শতভাগ শাখা তৈরি করতে পারেন যা কিছুই পারফরম্যান্স সমস্যা ছাড়াই; আপনার যে সমস্ত শাখাগুলির সম্পর্কে সত্যই উদ্বিগ্ন হওয়া দরকার সেগুলি ট্র্যাক করার মানসিক ওভারহেড ... শাখা একটি জটিল জন্তু। শাখা করার কয়েক ডজন উপায় রয়েছে এবং আপনি সঠিকভাবে বা অন্যায় করছেন কিনা তা সত্যিই কেউ আপনাকে বলতে পারে না ...

  • http://www.lostechies.com/blogs/derickbailey/archive/2010/02/24/branching-strategies-when-to-branch-and-merge.aspx

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

  • http://www.snuffybear.com/ucm_branch.htm
    এখানে তালিকাভুক্ত অন্যান্য রেফারেন্স দেওয়া নোট, লেখকের দাবি যে "এই নিবন্ধটি সফ্টওয়্যার ইঞ্জিনিয়ারিং প্রকল্পগুলিতে ব্যবহৃত তিনটি মূল শাখা মডেলকে বর্ণনা করে " ন্যায়সঙ্গত বলে মনে হয় না। ব্যবহৃত পরিভাষা বিস্তৃত দেখায় না ( EFIX , মডেল -1,2,3 ইত্যাদি)।

  • http://svn.haxx.se/users/archive-2007-10/att-0101/SCMBranchingModels-talkback.pdf
    রেফারেন্স শাখা কৌশলগুলি যোগাযোগের ক্ষেত্রে অসুবিধার একটি আকর্ষণীয় উদাহরণ উপস্থাপন করে।

  • http://simpleprogrammer.com/2010/06/04/simple-branching-strategy-part-1-back-to-basics/
    ... এটিকে সরল রাখুন। ট্রাঙ্ক থেকে সরাসরি কাজ করা আমার মতে সবচেয়ে ভাল পন্থা।  
     
    এটি যখন আমার স্ক্রিনে প্রকৃতপক্ষে টাইপ করা হয় তখন এটি প্রায় ধর্মবিরোধের মতো মনে হয়, তবে আপনি যদি আমার সাথে এক মুহুর্তের জন্য সহ্য করেন তবে আমি কেবল আপনাকেই প্রদর্শন করব না কেন আমি মনে করি এটি কেন একটি চপল প্রক্রিয়ার জন্য অপরিহার্য বলে মনে হয়, তবে আমি আপনাকে প্রদর্শন করব কীভাবে এটিকে কাজ করার জন্য ...  
     
    ... যদি আমার যুক্তিগুলি একটি দৃ argument় যুক্তির উপর ভিত্তি করে করা হয় তবে এটি ক্রমাগত সংহতকরণের মান হবে। আমি সিআই এর মান এবং অতীতে সেরা অনুশীলনগুলি সম্পর্কে ব্লগ করেছি । আমি সিআই এর বেশ বড় বড় উকিল ...  
     
    ... আপনাকে এখানে নিজেকে সত্যিই একটি প্রশ্ন জিজ্ঞাসা করতে হবে: "আপনার জটিল ব্রাঞ্চিং এবং মার্জ করার কৌশলটি আপনি যে সমস্ত ওভারহেডের সাথে নিয়ে আসছেন তা কি সত্যিকারের মূল্য যা আরও সাধারণ কৌশলটির অস্তিত্বের মধ্যে নেই?" ...  
     
    .. .আর কৌশল আমি অতীতে কার্যকরভাবে ব্যবহার করেছি এবং সময়ের সাথে সাথে বিকাশ করেছি। আমি সংক্ষেপে এখানে সংক্ষেপে করব।

    • প্রত্যেকে ট্রাঙ্ক বন্ধ কাজ করে।
    • শাখা আপনি কোড প্রকাশ যখন।
    • যখন আপনাকে ইতিমধ্যে প্রকাশিত কোডের জন্য বাগ ফিক্স তৈরি করতে হবে তখন একটি রিলিজ বন্ধ করবে।
    • প্রোটোটাইপ জন্য শাখা।
      ...
  • http://www.codelathe.com/blog/index.php/2009/07/02/a-svn-branching-strategy-that-works/
    ... অবশেষে, মনে রাখবেন যে কোনও আদর্শ শাখা এবং মার্জ করার কৌশল নেই। এটি আপনার অনন্য বিকাশের পরিবেশের উপর নির্ভর করে ...

  • http://blog.perforce.com/blog/?cat=62
    ... সবচেয়ে খারাপ পরিস্থিতিটি হ'ল আপনি একটি "শব্দার্থক মার্জ" সমস্যাটি প্রবর্তন করেন, যেখানে একটি স্বয়ংক্রিয় সংযুক্তির ফলাফলটি ভুল, তবে ঠিক আছে এবং সংকলিত অতীতকে লুকিয়ে রাখে পরীক্ষা, সম্ভবত গ্রাহক-দৃশ্যমান বাগ হিসাবে যথেষ্ট দীর্ঘকাল বেঁচে থাকা। Eek!  
     
    চোটে অপমান যুক্ত করা, কারণ তারা আরও বেশি সময় ধরে সনাক্ত থেকে বাঁচতে পারে, অর্থাতৃত মার্জ সমস্যাগুলি পরে সংশোধন করা আরও শক্ত, যেহেতু পরিবর্তনটি আরম্ভ করে এমন বিকাশকারীর মনে পরিবর্তন নতুনভাবে নেই যিনি পরিবর্তনের সূচনা করেছিলেন। (পরিবর্তনের পরে খুব শীঘ্রই পরিবর্তনগুলি মার্জ করা ভাল ide

  • https://stackoverflow.com/questions/34975/branching-strategies
    সম্প্রদায়ের সদস্যরা বিভিন্ন শাখার কৌশল ব্যবহার করে বিভিন্ন প্রকল্পে বিভিন্ন অভিজ্ঞতা ভাগ করে নেন। "সেরা" বা "সবচেয়ে খারাপ" বিষয়ে সম্মত সম্মতি নেই।

  • http://www.stickyminds.com/s.asp?F=S16454_COL_2
    মূলত http://oreilly.com / ক্যাটাগল / প্র্যাকটিক্যাল্পেরফোর্স / চ্যাটার / ch07.pdf এ উপস্থাপিত সামগ্রীর সংক্ষিপ্তসার

    • http://www.stickyminds.com/s.asp?F=S16511_COL_2
      ... কখন এবং কীভাবে শাখা করবেন সিদ্ধান্ত নেওয়ার জন্য তিনটি সাধারণ পন্থা রয়েছে:
      • আপনি যখন "বৈশিষ্ট্য সম্পূর্ণ" থাকবেন তখন রিলিজ শাখা তৈরি করুন এবং এই কোড লাইনে শেষ মুহূর্তের সমস্যাগুলি ঠিক করার পরিকল্পনা করছেন। এই ক্ষেত্রে, সফ্টওয়্যার কনফিগারেশন ম্যানেজমেন্ট প্যাটার্নগুলিতে বর্ণিত হিসাবে রিলিজ শাখাটি আসলেই একটি "রিলিজ-প্রিপ কোড লাইন" , যেহেতু আপনি আশা করেন যে এখনও কাজ শেষ হবে।
      • সক্রিয় বিকাশের লাইনের বাইরে কাজ করে চূড়ান্ত সংহতকরণ কাজ এড়াতে আপনার কাজের স্টাইলটি পরিবর্তন করুন।
      • একটি কার্য শাখা তৈরি করে এবং সেই কাজটি প্রকাশের পরে সক্রিয় উন্নয়ন লাইনে মার্জ করে নতুন কাজের জন্য শাখা।
        ... শাখার জন্য যুক্তি হ'ল একটি রিলিজের শেষে কোডটি বিচ্ছিন্ন করা যাতে এটি স্থিতিশীল হয়। ব্রাঞ্চিংয়ের মাধ্যমে বিচ্ছিন্নতা প্রায়শই একটি মানের সমস্যার মুখোশ দেয় যা পণ্য প্রকাশের আগে সমান্তরাল স্ট্রিমগুলি বজায় রাখার অতিরিক্ত খরচে নিজেকে প্রকাশ করে। ব্রাঞ্চিং সহজ। বরং এটি যে শাখাগুলির মধ্যে যে পরিবর্তনগুলি কঠিন তা কীভাবে পরিবর্তিত হয় তা বোঝার একত্রীকরণ এবং জ্ঞানীয় ওভারহেড, সুতরাং শাখা প্রশস্তকরণ এবং মার্জিংয়ের ব্যয়কে হ্রাস করে এমন একটি প্রক্রিয়া চয়ন করা গুরুত্বপূর্ণ ...
  • http://nvie.com/posts/a-successful-git-branching-model/ গিট-ওরিয়েন্টেড কৌশল।
    ... আমরা উত্স / মাস্টারকে প্রধান শাখা হিসাবে বিবেচনা করি যেখানে হেডের উত্স কোড সর্বদা উত্পাদন-প্রস্তুত অবস্থার প্রতিফলন করে ।  
     
    আমরা উত্স / বিকাশকে প্রধান শাখা হিসাবে বিবেচনা করি যেখানে হেডের উত্স কোড সর্বদা পরবর্তী রিলিজের জন্য সর্বশেষ বিতরণ করা বিকাশের পরিবর্তনগুলি সহ একটি রাষ্ট্রকে প্রতিফলিত করে। কেউ এটিকে "সংহতকরণ শাখা" বলবেন would এখান থেকে রাতের যে কোনও স্বয়ংক্রিয় বিল্ডগুলি তৈরি করা হয় ....

  • http://svnbook.red-bean.com/en/1.5/svn.branchorses.html
    ... প্রকল্পের নীতিগুলি যখন কোনও বৈশিষ্ট্য শাখা তৈরি করা উপযুক্ত তখন ঠিক সেই বিষয়ে ব্যাপকভাবে পরিবর্তিত হয়। কিছু প্রকল্প কখনও বৈশিষ্ট্য শাখা ব্যবহার করে না: প্রতিশ্রুতি / ট্রাঙ্ক একটি বিনামূল্যে জন্য। এই সিস্টেমের সুবিধাটি হ'ল এটি সহজ — ব্রাঞ্চিং বা মার্জ করার বিষয়ে কারওই শেখার দরকার নেই। অসুবিধাটি হ'ল ট্রাঙ্ক কোডটি প্রায়শই অস্থির বা অব্যবহৃত থাকে। অন্যান্য প্রকল্পগুলি শাখাগুলি একটি চূড়ান্তভাবে ব্যবহার করে: কোনও পরিবর্তন কখনও ট্রাঙ্কে সরাসরি প্রতিশ্রুতিবদ্ধ হয় না। এমনকি সবচেয়ে তুচ্ছ পরিবর্তনগুলি একটি স্বল্প-কালীন শাখায় তৈরি করা হয়, সাবধানে পর্যালোচনা করা হয়েছে এবং ট্রাঙ্কে একীভূত করা হয়েছে। তারপরে শাখাটি মুছে ফেলা হয়। এই সিস্টেমটি সর্বদা একটি ব্যতিক্রমী স্থিতিশীল এবং ব্যবহারযোগ্য ট্রাঙ্কের গ্যারান্টি দেয় তবে প্রচুর ব্যয় করেপ্রক্রিয়া ওভারহেড  
     
    বেশিরভাগ প্রকল্পগুলি রাস্তার মাঝামাঝি পদ্ধতির গ্রহণ করে। তারা সাধারণত জোর দেয় যে / ট্রাঙ্ক সংকলন করে এবং সর্বদা রিগ্রেশন পরীক্ষা পাস করে। ফিচার শাখা কেবল তখনই প্রয়োজন যখন পরিবর্তনের জন্য বিপুল সংখ্যক অস্থিতিশীল কমিটগুলির প্রয়োজন হয়। থাম্বের একটি ভাল নিয়মটি এই প্রশ্নটি জিজ্ঞাসা করা: যদি বিকাশকারীরা কয়েক দিন বিচ্ছিন্ন হয়ে কাজ করে এবং তারপরে একসাথে বৃহত পরিবর্তন সম্পাদন করে (যাতে / ট্রাঙ্কটি কখনই অস্থিতিশীল হয় না), পর্যালোচনা করা কি খুব বড় পরিবর্তন হবে? যদি এই প্রশ্নের উত্তর "হ্যাঁ" হয় তবে পরিবর্তনটি একটি বৈশিষ্ট্য শাখায় বিকাশ করা উচিত। বিকাশকারী যেমন শাখায় বর্ধিত পরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ, সেগুলি সহজেই পিয়ারদের দ্বারা পর্যালোচনা করা যেতে পারে।  
     
    পরিশেষে, কাজের অগ্রগতির সাথে সাথে ট্রাঙ্কের সাথে কীভাবে একটি বৈশিষ্ট্য শাখাটিকে "সিঙ্ক" এ রাখা যায় তার সমস্যা রয়েছে। যেমনটি আমরা আগেই বলেছি, সপ্তাহে বা মাস ধরে একটি শাখায় কাজ করার একটি বড় ঝুঁকি রয়েছে; ট্রাঙ্কের পরিবর্তনগুলি pourালাওভাবে অব্যাহত রাখতে পারে যেখানে উন্নয়নের দুটি লাইন এত বেশি পৃথক হয় যে এটি শাখাকে আবার ট্রাঙ্কে একীভূত করার চেষ্টা করা একটি দুঃস্বপ্ন হয়ে উঠতে পারে।  
     
    নিয়মিত শাখায় ট্রাঙ্কের পরিবর্তনগুলি মার্জ করে এই পরিস্থিতিটি সর্বোত্তমভাবে এড়ানো যায়। একটি নীতি আপ করুন: সপ্তাহে একবার, শাখায় গত সপ্তাহের মূল্য ট্রাঙ্কের পরিবর্তনগুলি মার্জ করুন ...

  • http://thedesignspace.net/MT2archives/000680.html
    ... অ্যালভিস সিভিএস টিউটোরিয়ালটির এই বিভাগটি গ্রহগ্রন্থ ওয়েবসাইটের পল গ্লেজেনের নিবন্ধের উপর ভিত্তি করে: গ্রহন এবং সিভিএসের সাথে শাখা করা , এবং শর্তাদির অধীনে তার অনুমতিতে ব্যবহৃত হয় ইপিএল লাইসেন্স। আমি তার সংস্করণে যে পরিবর্তনগুলি করছি তা হ'ল মূলত এটি আরও ধাপে ধাপে চিত্র এবং ব্যাখ্যার সাথে আরও প্রসারিত করা এবং এটি আমার নিজের শিক্ষানবিশ টিউটোরিয়ালগুলির সাথে এটি আরম্ভ করে এবং ডিজাইনারদের কাছে আরও অ্যাক্সেসযোগ্য করার চেষ্টা করে integ অভিজ্ঞ বিকাশকারীরা সম্ভবত পলের সংস্করণ থেকে কাজ করতে পছন্দ করবেন ...

  • http://learnsoftwareprocesses.com/2007/12/29/common-branching-strategies/
    ... এখানে কিছু সাধারণ ব্রাঞ্চিং মডেল রয়েছে:  

    1. শাখা-দ্বারা-প্রকাশের মডেল: সর্বাধিক সাধারণ শাখার কৌশল হ'ল পণ্য প্রকাশের সাথে শাখাগুলি সারিবদ্ধ করা। একটি শাখা একক রিলিজের জন্য সমস্ত সফ্টওয়্যার বিকাশ সম্পদ ধারণ করে। কখনও কখনও আপডেটগুলি এক রিলিজ থেকে অন্য রিলিজ হওয়া প্রয়োজন তবে এগুলি সাধারণত কখনও একত্রিত হয় না। একটি রিলিজ অবসর নেওয়ার পরে শাখাগুলি বন্ধ করা হবে।  
    2. প্রচার প্রতি শাখা: অন্য খুব সাধারণ পদ্ধতির মধ্যে শাখাগুলি সফ্টওয়্যার সম্পদ প্রচারের স্তরের সাথে সারিবদ্ধ করা। একটি নির্দিষ্ট বিকাশ সংস্করণ একটি পরীক্ষা শাখায় ব্রাঞ্চ করা হয়, যেখানে সমস্ত ইন্টিগ্রেশন এবং সিস্টেম পরীক্ষা করা হয়। আপনি যখন পরীক্ষা শেষ করেন, সফ্টওয়্যার বিকাশ সম্পদগুলি উত্পাদন শাখায় ব্রাঞ্চ হয় এবং শেষ পর্যন্ত মোতায়েন করা হয়।  
    3. কার্য প্রতি শাখা: ওভারল্যাপিং কাজগুলি (বা ক্রিয়াকলাপ) এবং উত্পাদনশীলতার ক্ষতি এড়াতে আপনি এগুলি একটি পৃথক শাখায় বিচ্ছিন্ন করতে পারেন। মনে রাখবেন যে এগুলি স্বল্প-মেয়াদী শাখা যা টাস্কটি শেষ হওয়ার সাথে সাথে মার্জ করা উচিত, অন্যথায় প্রয়োজনীয় সংযুক্তির প্রচেষ্টা প্রথমে তাদের তৈরির উত্পাদনশীলতার সুবিধাগুলি ছাড়িয়ে যেতে পারে।  
    4. উপাদান প্রতি শাখা: আপনি প্রতিটি শাখা সিস্টেম আর্কিটেকচারের সাথে সারিবদ্ধ করতে পারেন। এই কৌশলটিতে, আপনি পৃথক উপাদানগুলি (বা সাবসিস্টেমগুলি) বন্ধ করে দিয়েছেন। তারপরে একটি উপাদান বিকাশকারী প্রতিটি টিম সিদ্ধান্ত নেয় যে তাদের কোডটি কখন পুনরায় ডেভলপমেন্ট লাইনে সংহত করতে হবে যা ইন্টিগ্রেশন শাখা হিসাবে কাজ করে। যদি সিস্টেম আর্কিটেকচারটি স্থানে থাকে এবং স্বতন্ত্র উপাদানগুলির সুবিন্যস্ত ইন্টারফেস থাকে তবে এই কৌশলটি ভালভাবে কাজ করতে পারে। আপনি শাখাগুলিতে উপাদানগুলি বিকাশ করার বিষয়টি সফ্টওয়্যার বিকাশের সম্পদের উপর আরও সূক্ষ্ম নিয়ন্ত্রণ নিয়ন্ত্রণ করতে সক্ষম করে।  
    5. প্রযুক্তি প্রতি শাখা: সিস্টেমের আর্কিটেকচারের সাথে সামঞ্জস্য করা আরেকটি শাখা কৌশল। এই ক্ষেত্রে শাখাগুলি প্রযুক্তি প্ল্যাটফর্মগুলিতে সংযুক্ত করা হয়। সাধারণ কোডটি একটি পৃথক শাখায় পরিচালনা করা হয়। শাখাগুলিতে পরিচালিত সফ্টওয়্যার বিকাশের সম্পদের অনন্য প্রকৃতির কারণে তারা সম্ভবত কখনও মার্জ হয় না ...
  • http://msdn.microsoft.com/en-us/library/bb668955.aspx
    ... শাখা পরিচালনা এবং মার্জিং গাইডলাইনগুলির সংক্ষিপ্তসার জন্য এই গাইডের "উত্স নিয়ন্ত্রণ নির্দেশিকা" তে শাখা পরিচালনা এবং মার্জিং গাইডলাইনগুলি দেখুন। ... শাখা করার সময়, নিম্নলিখিতটি বিবেচনা করুন:

    • আপনার ডেভেলপমেন্ট টিমকে একই সেটগুলির একই সংকলনে কাজ করার প্রয়োজন না হলে শাখা করবেন না। আপনি যদি এ সম্পর্কে অনিশ্চিত হন তবে আপনি কোনও বিল্ডকে লেবেল করতে পারেন এবং পরবর্তী সময়ে সেই বিল্ড থেকে একটি শাখা তৈরি করতে পারেন। শাখা মার্জ করা সময়সাপেক্ষ এবং জটিল হতে পারে, বিশেষত যদি তাদের মধ্যে উল্লেখযোগ্য পরিবর্তন হয় changes
    • আপনার শাখাগুলি কাঠামো গঠন করুন যাতে আপনার ক্রমবর্ধমান অংশের পরিবর্তে কেবল শ্রেণিবদ্ধ (শাখা গাছের উপরে এবং নীচে) বরাবর মার্জ করা উচিত। শ্রেণিবিন্যাস জুড়ে বিস্তৃত হওয়ার জন্য আপনাকে একটি ভিত্তিহীন মার্জ ব্যবহার করা দরকার, যার জন্য আরও ম্যানুয়াল দ্বন্দ্বের সমাধানের প্রয়োজন।
    • শাখার শ্রেণিবিন্যাস শাখা পিতা বা মাতা এবং শাখা সন্তানের উপর ভিত্তি করে থাকে যা ডিস্কের উত্স কোডের শারীরিক কাঠামোর চেয়ে আলাদা হতে পারে। আপনার মার্জগুলির পরিকল্পনা করার সময়, ডিস্কের শারীরিক কাঠামোর চেয়ে লজিক্যাল ব্রাঞ্চের কাঠামো মনে রাখবেন।
    • খুব গভীরভাবে শাখা করবেন না। যেহেতু প্রতিটি সংশ্লেষ কার্যকর করতে এবং দ্বন্দ্বগুলি সমাধান করতে সময় লাগে, একটি গভীর শাখা কাঠামোর অর্থ শিশু শাখায় পরিবর্তনগুলি মূল শাখায় প্রচার করতে খুব দীর্ঘ সময় নিতে পারে। এটি নেতিবাচকভাবে প্রকল্পের সময়সূচিগুলিকে প্রভাবিত করতে পারে এবং বাগগুলি ঠিক করার সময় বাড়িয়ে তুলতে পারে।
    • একটি উচ্চ-স্তরের শাখা এবং কনফিগারেশন এবং উত্স ফাইল অন্তর্ভুক্ত।
    • সময়ের সাথে সাথে আপনার শাখা কাঠামোটি বিকশিত করুন।
    • মার্জ করার জন্য এক বা একাধিক বিকাশকারীকে মার্জটি কার্যকর করতে এবং দ্বন্দ্বগুলি সমাধান করতে হবে। মার্জড উত্সটি অবশ্যই পুরোপুরি পরীক্ষা করা উচিত কারণ খারাপ সংযুক্তির সিদ্ধান্ত নেওয়া অস্বাভাবিক নয় যা বিল্ডটি অস্থিতিশীল করতে পারে।
    • শাখার শ্রেণিবিন্যাস জুড়ে একত্রিত হওয়া বিশেষত কঠিন এবং আপনাকে অনেকগুলি দ্বন্দ্বকে ম্যানুয়ালি হ্যান্ডেল করা প্রয়োজন যা অন্যথায় স্বয়ংক্রিয়ভাবে পরিচালনা করা যেতে পারে।  
      শাখা তৈরি করা হবে কিনা তা সিদ্ধান্তে হ্রাস করা যেতে পারে যে রিয়েল টাইমে সংঘাতের সংশ্লেষের ব্যয়টি শাখার মধ্যে সংঘাতের মিশ্রণের ওভারহেড ব্যয়ের চেয়ে বেশি কিনা ...
  • http://kashfarooq.wordpress.com/2009/11/23/bazaar-branching-strategy-with-a-subversion-trunk/

    • http://kashfarooq.wordpress.com/2010/12/16/bazaar-branching-strategy-with-a-subversion-trunk-revised/
    • http://kashfarooq.wordpress.com/2009/11/02/using-bazaar-feature-branches-with-a-subversion-trunk/
    • http://kashfarooq.wordpress.com/2009/09/08/bazaar-or-git-moving-away-from-sversvers//
      ... এই সাবভার্সন অভিযোগগুলির কোনও পরিচিত বলে মনে হচ্ছে?
      • আপনাকে এলোমেলোভাবে নির্দেশ দেওয়া হয়েছে যে "আপনার আপডেট চালানো দরকার"। তারপরে আপনি একটি আপডেট করেন - যা সম্পূর্ণ হতে যুগে যুগে লাগে। এবং তারপরে, অবশেষে, আপনি দেখতে পাচ্ছেন যে ডাউনলোড করার দরকারের কোনও পরিবর্তন নেই।
      • আপনাকে এলোমেলোভাবে নির্দেশ দেওয়া হয়েছে যে "আপনার ক্লিনআপ চালানো দরকার"।
      • আপনার বিশাল সংযুক্তির সমস্যা রয়েছে। উদাহরণস্বরূপ, আপনি কোনও শ্রেণীর নামকরণের জন্য রিসার্পার ব্যবহার করেন এবং এর মধ্যে অন্য কেউ the শ্রেণিকে আপডেট করেছেন। তারপরে আপনি ভয়ঙ্কর গাছের সংঘাতের ত্রুটি (কাঁপুন) দেখবেন। বা আরও খারাপ, আপনি একটি সম্পূর্ণ নেমস্পেস এবং ফোল্ডারটির নাম পরিবর্তন করে (ডাবল কাঁপানো)। এখন আপনি সত্যিই বেদনার জগতে রয়েছেন।
      • আপনার মার্জগুলি আরও বেশি ম্যানুয়াল হয়ে থাকে। আপনাকে ঘন ঘন উইনমার্জ ব্যবহার করতে হবে কারণ সাবভারশনটি কোনও ক্লু পায়নি।
      • আপনি প্রায়শই টার্টোইজের অপেক্ষায় থাকছেন আপডেট / কোনও কিছুর জন্য আপডেট / পরীক্ষা করার জন্য।  
         
        আমার ইউএসবি পেনড্রাইভে একটি সাবভার্সন সংগ্রহস্থল রয়েছে ory আমি গাছের সংঘাত পেয়েছি এবং এর সাথে সমস্যাগুলিকে একীভূত করি এবং আমিই একমাত্র ব্যবহারকারী!  
         
        মূল সমস্যাটি হ'ল ...  
         
    • "subversion sucks" পরিচিত শোনায়। জোয়েল এবং লিনাস শোনার সময় ?

  • বিবর্তিত সিস্টেমের ক্ষেত্রে মুক্তি বিচ্ছিন্নতা কৌশল কৌশল জন্য সেরা অনুশীলনের আলোচনা http://social.msdn.microsoft.com/forums/en/tfsversioncontrol/thread/f127676c-8f05-410c-9a30-0eb43a26a9fa

  • http://branchingguidance.codeplex.com/
    "মাইক্রোসফ্ট টিম ফাউন্ডেশন সার্ভার ব্র্যাঞ্চিং গাইডেন্স" - বিভিন্ন প্রকল্পের জন্য প্রস্তাবিত সুপারিশযুক্ত বিশাল এবং বিস্তারিত নথি: এইচটিএমএল সংস্করণ এখানে । প্রমাণ করে যে মাইক্রোসফ্ট এক-আকারের-ফিট-অল পদ্ধতির আর্ট ব্রাঞ্চিং কৌশলগুলিতে বিশ্বাস করে না।

  • https://stackoverflow.com/questions/597707/best-branching-strategy-when-doing-continuous-integration
    আপনি যখন অবিচ্ছিন্ন ইন্টিগ্রেশন করতে চান তখন ব্যবহার করার জন্য সেরা শাখা কৌশল কী? ... উত্তরটি আপনার দলের আকার এবং আপনার উত্স নিয়ন্ত্রণের গুণমান এবং সঠিকভাবে জটিল পরিবর্তন সেটগুলিকে মার্জ করার দক্ষতার উপর নির্ভর করে ...

  • http://codicesoftware.blogspot.com/2010/03/branching-strategies.html
    ... সিভিএস এবং এসভিএন সম্পূর্ণ ব্রাঞ্চিং / মার্জ কৌশলকে নিরুৎসাহিত করছে যেহেতু তারা সম্পূর্ণরূপে এটি করতে অক্ষম ছিল ... ... সরল নিয়ম: আপনার প্রয়োগ করা প্রতিটি নতুন বৈশিষ্ট্য বা বাগফিক্সের জন্য একটি টাস্ক শাখা তৈরি করুন ... এটি এসভিএন / সিভিএস ব্যবহারকারীদের জন্য ওভারকিলের মতো শোনাতে পারে তবে আপনি জানেন যে কোনও আধুনিক এসসিএম আপনাকে একটি সেকেন্ডে শাখা তৈরি করতে দেবে, তাই আসল ওভারহেড নেই।  
     
    গুরুত্বপূর্ণ দ্রষ্টব্য: আপনি যদি এটি মনোযোগ সহকারে দেখেন তবে আপনি দেখতে পাবেন যে আমি টাস্ক শাখাগুলি ধনী-মানুষ চেঞ্জলিস্ট হিসাবে ব্যবহার করার বিষয়ে কথা বলছি ...

  • http://publib.boulder.ibm.com/infocenter/cchelp/v7r0m1/index.jsp?topic=/com.ibm.rational.c
    ियरcase.cc_proj.doc/c_bntr_plnbrstrat.htm ... শাখা নীতি বিকাশের দ্বারা প্রভাবিত হয় প্রকল্পের উদ্দেশ্যগুলি এবং কোড বেসের বিবর্তন নিয়ন্ত্রণের জন্য একটি প্রক্রিয়া সরবরাহ করে। যুক্তিযুক্ত ক্লিয়ারকেস সংস্করণ নিয়ন্ত্রণ ব্যবহার করে এমন সংস্থাগুলির মতো শাখা নীতিমালার অনেকগুলি প্রকরণ রয়েছে। তবে আরও কিছু মিল রয়েছে যা সর্বোত্তম অনুশীলনের সাধারণ আনুগত্যকে প্রতিফলিত করে ...

  • http://blogs.open.collab.net/svn/2007/11/branching-strat.html
    ... সাবভার্সন মডেল (বা সাধারণ ওপেন সোর্স মডেল আরও নির্ভুলভাবে) অস্থির ট্রাঙ্ক মডেলটিতে প্রদর্শিত হচ্ছে যা .. ।

  • http://en.wikedia.org/wiki/Trunk_%28software%29
    সফ্টওয়্যার বিকাশের ক্ষেত্রে ট্রাঙ্কটি সংশোধন নিয়ন্ত্রণের অধীনে একটি ফাইল গাছের নামবিহীন শাখা (সংস্করণ) বোঝায় । ট্রাঙ্কটি সাধারণত এমন একটি প্রকল্পের ভিত্তি হিসাবে বোঝানো হয় যেখানে উন্নতি হয়। যদি বিকাশকারীরা ট্রাঙ্কে একচেটিয়াভাবে কাজ করে থাকেন তবে এতে সর্বদা প্রজেক্টের সর্বশেষতম কাটিয়া-প্রান্ত সংস্করণ থাকে তবে এটি সম্ভবত সবচেয়ে অস্থির সংস্করণও হতে পারে। আরেকটি পদ্ধতির হ'ল ট্রাঙ্কের বাইরে একটি শাখা বিভক্ত করা, সেই শাখায় পরিবর্তনগুলি প্রয়োগ করা এবং শাখাটি স্থিতিশীল এবং কাজ করে প্রমাণিত হওয়ার পরে পরিবর্তনগুলি আবার ট্রাঙ্কে একীভূত করা। বিকাশ মোড এবং প্রতিশ্রুতি উপর নির্ভর করেনীতি ট্রাঙ্কে সর্বাধিক স্থিতিশীল বা সর্বনিম্ন স্থিতিশীল বা কোনও-মধ্যে-সংস্করণ থাকতে পারে।  
     
    প্রায়শই প্রধান বিকাশকারী কাজটি ট্রাঙ্কে সঞ্চালিত হয় এবং স্থিতিশীল সংস্করণগুলি ব্রাঞ্চ হয় এবং মাঝে মাঝে বাগ-ফিক্সগুলি শাখা থেকে ট্রাঙ্কে মিশে যায়। যখন ভবিষ্যতের সংস্করণগুলির বিকাশ ট্রাঙ্কবিহীন শাখায় করা হয় তখন এটি সাধারণত এমন প্রকল্পগুলির জন্য করা হয় যা প্রায়শই পরিবর্তন হয় না, বা যেখানে ট্রাঙ্কে অন্তর্ভুক্তির জন্য প্রস্তুত না হওয়া পর্যন্ত কোনও পরিবর্তন বিকাশ হতে অনেক সময় নেয় বলে আশা করা হয় .. ।

  • http://www.mcqueeney.com/roller/page/tom/20060919
    ... কোলাবনেট 30 আগস্ট, 2006 দ্বারা পরিচালিত সাবভার্সন সেরা অভ্যাসগুলির উপর একটি ওয়েবিনারের এই নোটগুলি । ... দুটি সাংগঠনিক কৌশল: অস্থির ট্রাঙ্ক বনাম স্থিতিশীল ট্রাঙ্ক ... ... সম্ভব হলে অস্থির ট্রাঙ্কটি প্রিফার করুন ...

  • https://stackoverflow.com/questions/153812/subversion-is-trunk-really-the-best-place-for-the-main-de
    વિકાસment এসভিএন-তে, ট্রাঙ্কটি মূল বিকাশের জন্য প্রস্তাবিত স্থান এবং আমি এই সম্মেলনটি ব্যবহার করি আমার সমস্ত প্রকল্পের জন্য। তবে এর অর্থ হ'ল ট্রাঙ্কটি কখনও কখনও অস্থির হয়, এমনকি এমনকি ভাঙাও হয় ... ... "শাখা / দেবের মতো কিছু শাখায়" বন্য বিকাশ "করা আরও ভাল হবে না যখন বিল্ডটি যুক্তিসঙ্গতভাবে তৈরি করা হয় তখন কেবল ট্রাঙ্কে মিশে যায় merge কঠিন?

    • ... ট্রাঙ্কটি যেখানে চলমান উন্নয়ন হওয়ার কথা রয়েছে। প্রত্যেকে যদি তাদের প্রতিশ্রুতিবদ্ধ হওয়ার আগে তাদের পরিবর্তনগুলি পরীক্ষা করে থাকে তবে আপনার "ভাঙা" কোড নিয়ে আসলেই সমস্যা হবে না। থাম্বের একটি ভাল নিয়ম হল আপনি নিজের পরিবর্তনগুলি কোড করার পরে একটি আপডেট করা (রেপোগুলি থেকে সমস্ত সর্বশেষ কোড পান) do তারপরে কিছু ইউনিট পরীক্ষা করুন এবং করুন। যদি সবকিছু তৈরি হয় এবং কাজ করে তবে আপনার এটি পরীক্ষা করা ভাল হবে ...
    • ... নপ ট্রাঙ্ক সেরা জায়গা নয়। আমাদের সংস্থায় আমরা সর্বদা এই পদ্ধতির অনুসরণ করি: ট্রাঙ্কে প্রকাশের কোড রয়েছে, তাই এটি সর্বদা সংকলন করে। নতুন প্রতিটি প্রকাশ / মাইলফলক সহ আমরা একটি নতুন শাখা খুলি। যখনই কোনও বিকাশকারী কোনও আইটেমের মালিক হন, তিনি এই রিলিজ শাখায় একটি নতুন শাখা তৈরি করেন এবং পরীক্ষার পরে কেবল এটিকে একটি রিলিজ শাখায় মার্জ করে। সিস্টেম পরীক্ষা করার পরে রিলিজ শাখা ট্রাঙ্কে একীভূত করা হয়েছে ...
  • http://blog.yclian.com/2009/03/working-on-branches-and-stable-trunk.html
    ... আমি ট্রাঙ্কে কাজ করতাম কারণ যে সমস্ত প্রকল্পে আমি কাজ করেছি, তা হয় আমি তখন ছিলাম একমাত্র বিকাশকারী বা দল নিশ্চিত করেছে যে প্রত্যেকের কোড চেক-ইন স্থানীয় পরীক্ষায় উত্তীর্ণ হয়েছে। অন্যথায়, আমরা বাগ ফিক্সগুলির জন্য (আমরা এখনও) শাখা তৈরি করেছি, নতুন বৈশিষ্ট্যগুলির জন্য বৃহত কোড ইত্যাদি  
     
    2 প্রায় 2 মাস আগে, কামালের সাথে আমার একটি ছোট গিট সেশন ছিল এবং তিনি আমার সাথে গল্প / শাখার ধারণাটি ভাগ করেছিলেন । এবং আমার দলটি আরও দেব ছেলেদের সাথে বাড়তে শুরু করার সাথে সাথে আরও শাখা প্রশাখাকে উত্সাহিত করার প্রয়োজনীয়তা অনুভব করছি এবং এখন এটি একটি নিয়মে পরিণত হয়েছে। সিআই সেটআপের সাথে সংজ্ঞায়িত স্বয়ংক্রিয় পরীক্ষাগুলির সাথে একটি প্রকল্পের জন্য, একটি স্থিতিশীল ট্রাঙ্কের গ্যারান্টি দেওয়া হয় এবং এই অনুশীলনটি এটির মধ্যে খুব ভাল ফিট করতে পারে।  
     
    আমরা গিটটি ছাড়া সাবট্রিশন ব্যবহার করি না কারণ আমরা এভাবেই শুরু করেছি এবং আমরা এখনই বেশিরভাগ সময় আরামদায়ক (বেশিরভাগ সময়) ...

  • http://www.ericsink.com/scm/scm_branches.html
    এটি সোর্স কন্ট্রোল হাওটো নামে একটি অনলাইন বইয়ের অংশ, উত্স নিয়ন্ত্রণ, সংস্করণ নিয়ন্ত্রণ এবং কনফিগারেশন পরিচালনার উপর একটি সর্বোত্তম অনুশীলন গাইড ...  
     
    ... এরিকের পছন্দের শাখা অনুশীলন করুন ... একটি "মূলত অস্থির" ট্রাঙ্ক রাখুন। ট্রাঙ্কে আপনার সক্রিয় বিকাশটি করুন, মুক্তির কাছে যাওয়ার সাথে সাথে এর স্থায়িত্ব বৃদ্ধি পায়। আপনি শিপিংয়ের পরে, একটি রক্ষণাবেক্ষণ শাখা তৈরি করুন এবং সর্বদা এটি খুব স্থিতিশীল রাখুন ...  
     
    ... পরবর্তী অধ্যায়ে আমি শাখাগুলি মার্জ করার বিষয়টিতে প্রকাশ করব ...

  • http://marc.info/?l=forrest-dev&m=112504297928196&w=2 অ্যাপাচি ফরেস্ট প্রকল্পের
    শাখা কৌশলগুলি নিয়ে আলোচনা করা থ্রেডের মেল শুরু করা হচ্ছে

    • দ্রষ্টব্য বর্তমানে প্রকল্পটি রিলিজ শাখাগুলি সহ অস্থির ট্রাঙ্ক মডেল ব্যবহার করছে বলে মনে হচ্ছে:
    • "এসভিএন-এর ট্রাঙ্কে উন্নয়নের কাজ করা হয় ... এসভিএন এর" রিলিজ শাখা "রয়েছে, যেমন, forrest_07_ ব্র্যাঞ্চ।" ( প্রকল্পের গাইডলাইন )
    • "রিলিজ প্রার্থী প্যাকেজগুলি তৈরি করা হচ্ছে ... 17. এসভিএন-এ একটি রক্ষণাবেক্ষণ শাখা তৈরি করুন ..." ( কীভাবে প্রকাশ করবেন )
  • ও'রিলি সিভিএস ব্রাঞ্চিং ডক্স: http://commons.oreilly.com/wiki/index.php/Essential_CVS/Using_CVS/ ট্যাগিং_এন্ড_ ব্রাঞ্চিং #
    বেসিক_স্টেবল

    • ... মূলত স্থিতিশীল ব্রাঞ্চিং দর্শন বলছে যে ট্রাঙ্কে এমন প্রকল্পের ডেটা থাকা উচিত যা সর্বদা মুক্তির জন্য প্রস্তুত হওয়ার কাছাকাছি থাকে ... ... এই দর্শনের আরও লেন্সিয়েন্ট তারতম্যগুলি বিকাশকারী ইউনিট-পরীক্ষার পাশ দিয়ে এমন কোনও কিছুকে মেশিন করার অনুমতি দেয় ট্রাঙ্ক। এই জাতীয় শিথিল পদ্ধতির জন্য একটি প্রকাশ প্রার্থীকে ব্রাঞ্চ করা এবং প্রকাশের আগে একটি সম্পূর্ণ QA বিশ্লেষণের মাধ্যমে রাখা দরকার ...
    • ... মূলত অস্থির দর্শন বলে যে ট্রাঙ্কের স্থায়িত্ব নির্বিশেষে সর্বশেষতম কোডটি থাকা উচিত এবং প্রকাশের প্রার্থীদের কিউএর জন্য শাখা বন্ধ করা উচিত।
       
       
      ... আরও সুক্ষ্ম প্রকরণগুলি পরীক্ষামূলক কোড, রিফ্যাক্টরিং এবং অন্যান্য বিশেষ-ক্ষেত্রে কোডের জন্য শাখা প্রশাখার অনুমতি দেয়। ট্রাঙ্কে আবার একটি শাখা মার্জ করা শাখার পরিচালকরা করেন। ...
      • নোটের উপরের নোটটি আমার করা অনুসন্ধানের কোনওটিতে উপস্থিত হয়নি (সিভিএস সম্পর্কিত নির্দেশিকা আর জনপ্রিয় নয়?)
  • এসসিএমের সেরা অনুশীলন (পারফরমেন্স নিবন্ধ)
    http://www.perfor.com/perforce/papers/bestpractices.html
    ... এসসিএম মোতায়েনের ছয়টি সাধারণ ক্ষেত্র, এবং সেই ক্ষেত্রগুলির প্রত্যেকটির মধ্যে কিছু মোটা দানাদার সেরা অনুশীলন। নিম্নলিখিত অধ্যায়গুলি প্রতিটি আইটেম ব্যাখ্যা করে ...
    ওয়ার্ক স্পেস, কোডলাইনস, শাখা, প্রচার পরিবর্তন, বিল্ডস, প্রক্রিয়া ...


37
আমি বিশ্বাস করি যে এটিই দীর্ঘতম উত্তর যে কোনও স্ট্যাকেক্সচেঞ্জ প্রশ্নে দেখেছি!
জন ফিশার

2
@JohnFisher ভাল অনুযায়ী জির , ফিরে তারপর আমি 6 ঘন্টা সংকলন এবং এইসব রেফারেন্স :) সংক্ষেপিত অতিবাহিত
মশা

2
আপনি একধরণের সংক্ষিপ্ততা অনুপস্থিত, যা নতুন বৈশিষ্ট্যগুলির জন্য নতুন শাখা ব্যবহার করবেন কিনা তা বলা উচিত। আপনার উত্তরটি বিভিন্ন নিবন্ধের লিঙ্কের সমষ্টি মাত্র - তাদের মধ্যে কয়েকটি একটি কথা বলছে, অন্যগুলি একেবারে বিপরীতভাবে বলছে। আপনার উত্তরটি বেশ দীর্ঘ, সুতরাং আমি হারিয়ে যেতে পারি।
BЈовић

3
@ বিЈовић সংক্ষিপ্তসার উত্তরের শুরুতে সরবরাহ করা হয়: 'কোনও প্রকল্পের জন্য সাধারণত "সেরা" শাখা প্রশাখার কৌশল কার্যকর হয় না। * সবচেয়ে সম্পদ সম্মত যে উৎপাদনশীল কৌশল বেছে বিশেষ প্রকল্পের সুনির্দিষ্ট 'উপর নির্ভর করে বলে মনে হচ্ছে
মশা

2
পরিপূরক পাঠ্য: গুগলের বনাম ফেসবুকের ট্রাঙ্ক ভিত্তিক বিকাশ "তাদের [গুগল এবং ফেসবুক] একীভূত ব্যথা হয় না, কারণ একটি নিয়ম হিসাবে বিকাশকারীরা শাখায় / থেকে মার্জ করে না। কমপক্ষে কেন্দ্রীয় রেপো সার্ভারে তারা নেই work ওয়ার্কস্টেশনগুলিতে , বিকাশকারীদের কাছে মার্জ করা হতে পারে / থেকে স্থানীয় শাখা, এবং rebasing যখন ধাক্কা কিছু যে কেন্দ্রীয় রেপো থেকে "সম্পন্ন" ফিরে ... "
মশা

7

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

শাখাগুলি এটি অর্জনের সহজতম উপায়।

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


5

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

আচ্ছা এটা ক্রমাগত ইন্টিগ্রেশন, একটানা বিতরণ, ইত্যাদি অনুশীলন করতে আরো কঠিন করতে না তোমার জন্য মূর্তভাবে?

যদি তা না হয় তবে আমি আপনার কাজের পদ্ধতি পরিবর্তন করার কোনও কারণ দেখতে পাচ্ছি না।

অবশ্যই, কী চলছে এবং কীভাবে বর্তমান সেরা অনুশীলনগুলি বিকশিত হয় তা অনুসরণ করা ভাল অনুশীলন। তবে আমি মনে করি না যে আমাদের আমাদের প্রক্রিয়াগুলি / সরঞ্জামগুলি / কি ছেড়ে দিতে হবে কারণ কেবল এক্স (এবং / বা ওয়াই এবং / বা জেড) বলেছেন যে তারা আর বিবর্ণ নয় :-)


অবশ্যই আছে! এটি অগ্রাধিকারের প্রশ্ন: ব্রাঞ্চিং (বৈশিষ্ট্য বিচ্ছিন্নতা) বনাম সহজ সংহতকরণ, বিতরণ ইত্যাদি
সাইবেরিয়ানগুই

1
এটি আপনি যে সিআই সরঞ্জামটি ব্যবহার করছেন সেটি কেবলমাত্র। আপনাকে কোনও শাখা থেকে বিল্ডিং এবং "ক্রমাগত বিতরণ" করতে বাধা দেয় কি?
শাদিক্স

@ শাদ্দিক্স, সাধারণত শাখা থেকে বিতরণ করা কঠিন। উদাহরণস্বরূপ, আপনি কীভাবে বৈশিষ্ট্য শাখা থেকে বিতরণ করবেন?
সাইবেরিয়ানগুই

1
সমস্যাটি কী, যদি আপনার পুরো সোর্সকোড ব্রাঞ্চ থাকে (ডিভিসিএসের মতো)?
শাদ্দিক্স

1
@ শাদ্দিক্স, আপনি যত বেশি শাখা প্রশাখা করেছেন, মার্জ করার সময় আপনি তত বেশি দ্বন্দ্ব পাবেন
সাইবেরিয়ানগুই

4

উত্তরের কি আকর্ষণীয় সেট। 20+ বছরে আমি কখনও এমন একটি প্রতিষ্ঠানে কাজ করি নি যা শাখা প্রশাখার তুচ্ছ ব্যবহারের চেয়ে বেশি করেছে (সাধারণত কেবল শাখা প্রকাশের জন্য)।

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

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


2
+1, এই গিট'র ডানগুলি অন্যান্য সংস্করণ নিয়ন্ত্রণ / সিআই সেটআপগুলির চেয়ে গিটের বিতর্কিত শ্রেষ্ঠত্ব সম্পর্কে ক্রমবর্ধমান ধর্মান্ধ হয়ে উঠছে।
ম্যাপেল_শ্যাফ্ট

3

হ্যাঁ, আপনার কোনও (কমপক্ষে মাঝারি) উন্নয়নের প্রচেষ্টা বিচ্ছিন্ন করার জন্য শাখা ব্যবহার করা উচিত। "আপনার কখন শাখা করা উচিত " দেখুন ।

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


2

আপনার একেবারে শাখা ব্যবহার করা উচিত। যে শক্তি আছে একটি সংখ্যা।

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

খুব কঠিন কখনও একটি অজুহাত হয় না। এটি সঠিকভাবে করতে আরও সর্বদা চেষ্টা করা উচিত।


2
আমি এটিকে নিম্নোক্ত করতে চাইছি না কারণ আমি শাখা প্রশাখার বিরোধী কিন্তু আপনি পরামর্শ দিচ্ছেন যে সেগুলি সমস্ত সময় ব্যবহার করা উচিত।
ম্যাপেল_শ্যাফ্ট

তিনি কোথায় বলেছিলেন, তিনি এডিট করেছিলেন নাকি কিছু?
b01

স্বল্পকালীন শাখাগুলির জন্য আপনার শাখা দেখতে আপনার নিজস্ব স্থানীয় সিআই সেটআপ করুন (2-5 দিন) যা বেশ ওভারহেড হতে পারে। সেখানে দেওয়া হয়েছে যে কাজ
মশা

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

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

2

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

বৈশিষ্ট্যগুলির জন্য আপনার শাখা থাকলেও আমি আপনাকে মাস্টার শাখায় সমস্ত রিফ্যাক্টরিংগুলির 'ব্যাকপোর্ট' তৈরি করার এবং শাখাকে কেবল নতুন বৈশিষ্ট্যগুলির জন্য রাখার জন্য অনুরোধ করব।

  • ব্যাকপোর্ট রিফ্যাক্টরিংস

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

  • বৈশিষ্ট্য স্যুইচ ব্যবহার করুন

2

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

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

ব্রাঞ্চিং এবং মার্জ করা শক্ত। বিশেষত যদি আপনার এমন কোনও ব্যবসা থাকে যা নিয়মিত তার মন পরিবর্তন করে এবং রোলব্যাকের দাবি করে etc.

এই বাক্যটি আপনার জীবন বাঁচাতে পারে: এসসিএম-এ যা আছে তা আপনার নির্মিত শিল্পকর্মগুলির মতো নয়!

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

সেটা এসসিএমের কাজ নয়। এসসিএম একটি গৌরবযুক্ত ফাইল সার্ভার। আপনার এসসিএম থেকে কোন ফাইলগুলি আপনার বিল্ডে যায় তা নির্ধারণের কাজটি আপনার বিল্ড টুলিংয়ের অন্তর্ভুক্ত।

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

এই সম্পর্কে অনেক কান্নাকাটি ও হাত কাঁপবে। কি iffery, এবং সাধারণ ক্রন্দন। ফাইল রিপোজিটরির মতো সহজ কিছুকে ঘিরে আবেগের স্তরটি এমনই, যতই চালাক matter

তবে আপনার উত্তর আছে।


1

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

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


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

1
@ বি0১, বেশ কিছুটা জায়গা রয়েছে। প্রয়োজনীয়তা পিছনে পিছনে যায় এবং ক্র্যাকের কোনও এডিএইচডি বাচ্চার চেয়ে দ্রুত পরিবর্তন করতে পারে এমন কেউই নিখুঁত নকশার সাথে আসতে পারে না। অন্যান্য সময় আপনি ডিজাইনের উন্নতি করতে লিগ্যাসি কোডটি রিফ্যাক্টর চেষ্টা করে শেষ করেন এবং এই পরিস্থিতি সময়ে সময়ে আসে। এটি কোনও দলের সবচেয়ে খারাপ সমস্যা নয়, এবং আমি যে জায়গাগুলিতে কাজ করেছি তার চেয়ে অনেক ভাল চিৎকার, এমনকি সভায় রিফ্যাক্টরিং করার পরামর্শ দিলে আপনাকে অস্পৃশ্যদের বাইরে যাওয়ার মতো একটি বেসবল ব্যাট দিয়ে পিটিয়ে মেরে ফেলা হবে।
ম্যাপেল_শ্যাফ্ট

সম্পূর্ণরূপে একমত না। যদি আপনি মানের শাখাগুলি দ্বারা বিভক্ত হন, এবং ঘন ঘন মার্জ হন (প্রতিদিন ভাল হয়) তবে আপনি প্রায় সমস্ত "ম্যানুয়াল এবং ত্রুটি-প্রবণ" মার্জগুলি এড়াতে পারেন।
পল নাথান

@ পল, আমাকে বিশ্বাস করুন যা সমস্ত প্রকল্প বা প্রযুক্তির জন্য কাজ করে না। স্ট্রুটসের মতো একটি সাধারণ এক্সএমএল কনফিগারেশন ফাইলের কথা চিন্তা করুন যেখানে প্রত্যেকে প্রত্যেকে নিজের হাতে এতে ডুব দিচ্ছে। তবে না, আপনার পথটি সর্বদা কাজ করে এবং আমি ডাউনটাতে পুরোপুরি প্রাপ্য। ধন্যবাদ।
ম্যাপেল_শ্যাফ্ট

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

1

আমি এই জাতীয় শাখা প্রকল্পের প্রস্তাব দিই:

রিলিজ - পরীক্ষা - উন্নয়ন

তারপরে বিকাশ থেকে, বিকাশকারী এবং / অথবা বৈশিষ্ট্য দ্বারা শাখা।

বিকাশকারীদের প্রত্যেকের সাথে খেলতে, এবং থেকে মার্জ করার জন্য একটি শাখা থাকে এবং তারপরে নিয়মিতভাবে - উন্নত শাখায় রূপান্তরিত হয় - আদর্শভাবে প্রতিদিন (এটি সংকলন সরবরাহ করে)।

এই কোডটি একই কোডবেসে প্রচুর বিকাশকারী এবং একাধিক প্রকল্পের সাথে সত্যই ভাল কাজ করে।


0

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

আইএমএইচও, এর উত্তর হ্যাঁ , হ্যাঁ । আমাদের এখনও শাখা প্রশাখা ব্যবহার করা উচিত।


0

আমার সংস্থার প্রক্রিয়াটি শাখাগুলির বিস্তৃত ব্যবহার করে এবং (এমন একটি প্রক্রিয়া যা কিছুটা দেখতে দেখতে) নিবিড় সংহত করে।

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


এই প্রক্রিয়াটি মনে হচ্ছে এটি ভেঙে যাবে যদি কোনও বিকাশকারী একটি শাখায় কিছু প্রাইসিসিস্টিং কোড রিফ্যাক্টর করে থাকে এবং একটি পৃথক শাখার বিকাশকারী এমন কিছু লিখেছিল যা কোডটির পুরানো সংস্করণে নির্ভর করে।
বিডিএসএল

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

হ্যাঁ তবে নতুন বৈশিষ্ট্য প্রস্তুত না হওয়া পর্যন্ত অপেক্ষা না করে রিফ্যাক্টরিংটি যেদিন সম্পন্ন হয়েছিল সেদিনই মূল লাইনে মেশানো থাকলে এটি অনেক কম বলে মনে হয়।
বিডিএসএল

@ বিডিএসএল এটি সর্বদা বিকল্প নয়; আপনার প্রয়োজন হতে পারে সর্বদা একটি "ভাল, কার্যকারী শাখা", উদাহরণস্বরূপ জরুরি বাগ ফিক্সগুলি প্রেরণ করতে। নিয়মিতভাবে বৈশিষ্ট্যটিতে মূললাইনটি মার্জ করা বিকল্প কৌশলটি সাধারণত এ-ওকে হয় এবং আপনার শাখার কৌশলটি যাই হোক না কেন আমার দৃ strong় সুপারিশ।
একক নেগেশনএলিমিনেশন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.