সরলিকৃত গিট প্রবাহের জন্য কীভাবে বিকাশ শাখা থেকে মুক্তি পাবেন


20

একটি ধারাবাহিকভাবে বিকশিত ওয়েব প্রকল্পে (পণ্য নয়) আমাদের কাছে বর্তমানে গিট প্রবাহের উপর ভিত্তি করে নিম্নলিখিত শাখার কৌশল রয়েছে :

  • শাখা বিকাশ: সর্বশেষ কার্যকরী সংস্করণ
  • মাস্টার শাখা: সংস্করণ প্রকাশিত / প্রকাশিত সংস্করণ
  • বৈশিষ্ট্য শাখা: বিকাশ বৈশিষ্ট্য
  • হটফিক্স শাখা: প্রকাশিত সংস্করণে জরুরি বাগগতি ix

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

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

আমার লক্ষ্য

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

আমার নিম্নলিখিত সীমাবদ্ধতা রয়েছে:

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

যেখানে আমি স্থানান্তরের বিষয়ে নিশ্চিত নই:

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

4
দেখে মনে হচ্ছে একদিকে আপনি বলেছেন যে আপনার ডিইভি শাখার দরকার নেই তবে আপনি কেন সত্যই এটি প্রয়োজন তা ব্যাখ্যা করার জন্য এগিয়ে যান। বৈশিষ্ট্যযুক্ত শাখাগুলি যা সপ্তাহ ধরে বেঁচে থাকে সেই দীর্ঘকাল ধরে ডাইভার্জ করার পরে মাস্টারটিতে মার্জ হওয়া খুব কঠিন হবে difficult আপনি কি নিশ্চিত যে আপনি DEV কে সরিয়ে দিতে চান?
ডেভ সোয়ারস্কি

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

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

1
@ ফ্যাবিয়ানশ্মেঙ্গলার আপনি দেব শাখাটি সরাতে চান এমন আসল কারণ কী? জিনিসগুলি পরিকল্পনার মতো না চললে আপনার কেসগুলির জন্য এটি দরকার বলে মনে হচ্ছে।
এভিআই

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

উত্তর:


6

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

  • নতুন উন্নয়ন destabilizes উৎপাদন - রিগ্রেশন মার্জ পর দেখা developমধ্যেmaster
  • উত্পাদনকে স্থিতিশীল করা ভবিষ্যতের বিকাশকে ধীর করে দেয় - developমার্জ করার জন্য এটি যথেষ্ট ভাল করার জন্য আপনাকে স্থিতিশীল করতে হবেmaster

ড্রপিং developসাহায্য করবে না (অনেক) - আপনি সমস্যাটি সরিয়ে দিচ্ছেন না, আপনি কেবল developসমস্যার বিশেষ অংশটি স্থানান্তর করছেন master

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

এখানে চিত্র বর্ণনা লিখুন

দয়া করে মনে রাখবেন যে আমি কেবল উপরের চিত্রটিতে প্রকাশিত শাখাগুলি উল্লেখ করছি, ট্রাঙ্কে কী ঘটছে তা নয়।

এটি আপনার পক্ষে কীভাবে কাজ করবে:

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

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

এখন কী প্রবেশ করছে তা দেখুন master(যা বর্তমান releaseশাখাটি বন্ধ করে দেওয়া বিন্দুর অতীতে ), আপনার কাছে দুটি বিকল্প রয়েছে:

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

আপনি যদি এই পদ্ধতির পছন্দ করেন তবে আপনি আজ যেখান থেকে এসেছেন সেখান থেকে আপনি এখানে কীভাবে যাবেন:

  • একটি রিলিজ নামকরণ কৌশল স্থাপন করুন:
    • একই নামের সাথে আপনার চলমান প্রকাশের শাখা থাকতে পারে না
    • আপনি পুনঃনির্মাণ করতে পারবেন না বা কোনও প্রডাকশন রিলিজ শাখা সিঙ্ক করতে পারবেন না
  • নামকরণের কৌশলটি অনুসরণ করে অবিলম্বে একটি releaseXশাখা টানুনmaster
  • itsোকা বাধা দেওয়া বন্ধ করুন develop, তারা শীঘ্রই সরাসরি যাবেন master
  • একত্রীকরণ developমধ্যেmaster
  • বিকাশকারীদের তাদের কর্মক্ষেত্রগুলির masterপরিবর্তে পুনরায় চালু করতে নির্দেশ দিন develop
  • কমিটের masterজন্য উন্মুক্ত
  • developআপনি চাইলে মুছুন (বা এটিকে স্থায়ীভাবে লক / কেবলমাত্র পড়ার জন্য উল্লেখের জন্য রেখে দিন)

বিস্তারিত পরামর্শের জন্য আপনাকে ধন্যবাদ। আমি এখনও নিশ্চিত নই যে রিলিজ শাখাগুলি পণ্য বিকাশের বাইরে একটি ভাল ধারণা, তবে আমি এটি পুনর্বিবেচনা করব, এটি এই প্রকল্পটির জন্য
অর্থপূর্ণ

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

আমি সেই চিত্রটি সনাক্ত করেছি :)
পল_এইচ

11

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

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

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


5

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

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

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

রিলিজ থেকে মার্জ করা বৈশিষ্ট্যগুলি সরিয়ে ফেলা গিটের সাথে করা বেশ কঠিন। এটির জন্য সর্বোত্তম প্রক্রিয়াটি হবে git revertমার্জ কমিটে ব্যবহার করা। কিন্তু এটি এই বৈশিষ্ট্যগুলি / পরিবর্তনগুলি ফিরে পাওয়া প্রায় অসম্ভব করে তোলে এবং ইতিহাস সমস্ত বিবর্ণ হয়ে যায়।

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


2

ওয়েল @ ড্যান-কর্নিলিস্কু এটি আপনার নির্দিষ্ট সমস্যার জন্য ভাল বলেছে, তবে ট্রাঙ্ক-ভিত্তিক বিকাশের জন্য আরও সাধারণ ক্ষেত্রে (ধারাবাহিক বিতরণ, চর্বিযুক্ত এন্টারপ্রাইজ এবং দ্য ডিওপস হ্যান্ডবুকে উল্লিখিত) এখানে তৈরি করা হয়েছে: https ://trunkbasedde વિકાસment.com/

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