ডিভিসিএসগুলি কি অবিচ্ছিন্ন একীকরণকে নিরুৎসাহিত করে?


34

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

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

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

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

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


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

3
খুব ভাল প্রশ্ন।
মাইকেল ব্রাউন

1
@ ডেলানান: ধরে নিন উভয় দলই প্রতিদিন বেশ কয়েকবার প্রতিশ্রুতিবদ্ধ, তবে কাজটি শেষ হয়ে গেলে গিট ছেলেরা কেবল এই প্রতিশ্রুতিগুলি একসাথে ঠেলে দেয়।
রিচার্ড ডিঙ্গওয়াল

2
আমি মনে করি আপনি পাইপের ভুল প্রান্তটি দেখছেন, আপনি সমস্যাগুলি পান, আপনি সম্পূর্ণ না হওয়া পর্যন্ত ধাক্কা না দিয়ে নয়, তবে বিকাশের সময় আপনি নিয়মিত
টানছেন

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

উত্তর:


26

দাবি অস্বীকার: আমি আটলাসিয়ান এর পক্ষে কাজ করি

ডিভিসিএস ততক্ষণ অবিচ্ছিন্ন সংহতিকে নিরুৎসাহিত করে না যতক্ষণ না বিকাশকারী নিয়মিতভাবে তাদের নিজস্ব শাখায় দূরবর্তীভাবে চাপ দেয় এবং সিআই সার্ভার সেটআপ থাকে যাতে এটি পরিচিত সক্রিয় শাখা তৈরি করে।

DVতিহ্যগতভাবে ডিভিসিএস এবং সিআইয়ের সাথে দুটি সমস্যা রয়েছে:

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

বাঁশগুলিতে, আমরা বিল্ড সার্ভারকে নতুন শাখা সনাক্ত করার সক্ষমতা প্রবর্তন করেছি কারণ তারা বিকাশকারীরা তৈরি করেছেন এবং স্বয়ংক্রিয়ভাবে শাখার জন্য বিল্ড কনফিগারেশন মাস্টারের জন্য বিল্ড কনফিগারেশনকে ভিত্তি করে সেটআপ করে (সুতরাং আপনি যদি মাস্টারস বিল্ড কনফিগার পরিবর্তন করেন তবে এটি শাখার কনফিগারেশনেও পরিবর্তন আনবে পরিবর্তন প্রতিফলিত করতে)।

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

যাইহোক, যদি আপনি আরও শিখতে আগ্রহী হন তবে আমার ব্লগ পোস্টটি "ধারাবাহিক সংহতকরণের সাথে বৈশিষ্ট্য শাখা কার্যকর করা" দেখুন


14

আমার ছোট দলটি বছর দু'বছর আগে একটি ডিভিসিএসে স্যুইচ করেছে, এবং আমার সংস্থার বাকী কয়েক মাস আগে মামলা অনুসরণ করেছে। আমার অভিজ্ঞতা:

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

বিল্ড সার্ভারটি সমস্ত নামী শাখা তৈরি করে তাই প্রতিটি প্রতিশ্রুতিবদ্ধ ব্যক্তির নিজস্ব বিল্ড সার্ভার কাজ থাকে?

কোড রিভিউর কি এই দৃশ্যে গুরুতর বাধা হয়ে উঠছে না?
অ্যান্ড্রেস এফ।

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

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

13

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

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

দেখে মনে হয় মার্টিন ফোলার নিজের সাইটে এটি লিখেছিলেন

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

বিকাশকারীরা ভিসিএস নির্বিশেষে এখনও দায়িত্বে রয়েছে।


প্রকল্পগুলি কি একটি সাধারণ লক্ষ্যকে জোর দিয়েছিল বা বিকাশকারীদের নির্দিষ্ট, সংযোগ বিচ্ছিন্ন লক্ষ্যবস্তুতে কাজ করতে হয়েছিল?

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

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

অবশ্যই, আমরা স্ক্রাম ব্যবহার করি

1
আমি আপনার ধারাবাহিক সরবরাহের সংজ্ঞাটি খুঁজছিলাম (এখনও কিছু শালীন কিছু খুঁজে পাচ্ছি না, আপনি আমাকে কিছু উল্লেখ করতে পারলে আমি প্রশংসা করব), এবং এটি পেয়েছি: ধারাবাহিক

10

আপনার যুক্তিটি ভিত্তি করা আইডিয়াটি খুব নড়বড়ে, নরমভাবে বলার মতো। এটি দল / পরিচালনা / প্রক্রিয়ার বিষয় যা বিকাশকারীরা কাজটি শেষ না হওয়া পর্যন্ত অপেক্ষা করতে পারে

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

বলুন, মার্চুরিয়ালের মতো বিতরণ করা ভিসিএসের জন্য, আপনি সহজেই ঘন ঘন একত্রীকরণের জন্য শক্তিশালী সুপারিশ পেতে পারেন :

প্রথমত, প্রায়শই মার্জ! এটি সবার জন্য মার্জ করা সহজ করে তোলে এবং আপনি দ্বন্দ্বগুলি (যা প্রায়শই বেমানান ডিজাইনের সিদ্ধান্তগুলিতে নিহিত থাকে) এর সম্পর্কে জানতে পারেন ...

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

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

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

উপরে দেওয়া হয়েছে, এটি ডিভিসিএসের ক্রমাগত একীকরণকে নিরুৎসাহিত করার সঠিক উত্তর বলে মনে হচ্ছে ? হবে মু

ভিসিএস বিতরণ করা হচ্ছে বা না তা এতে যথেষ্ট প্রভাব ফেলবে না।


1
+1 আমি আপনাদের সাথে একমত হই যে সমস্যাটি সমাধানের মূল ব্যবস্থাপনাই ম্যানেজমেন্ট। তবে, আমাদের অবশ্যই স্বীকার করতে হবে যে ডিভিসিএসে এমন কিছু আছে যা ধারাবাহিক সংহতিকে নিরুৎসাহিত করে। আসলে, ডিসিভিএসের অন্যতম প্রধান বৈশিষ্ট্য সেই আচরণকে উত্সাহিত করে।

1
@ পিয়েরে 303 হতে পারে - আমি একরকমও সে রকম বোধ করি তবে এটি তাত্পর্যপূর্ণ। যেমনটি আমি লিখেছি, আমি দলটিকে ডিভিসিএসের সাথে পাগলের মতো একীকরণ করতে দেখেছি এবং অন্যদিকে, আমি সর্বাধিক "বিচ্ছিন্নতাবাদী" প্রকল্পে কাজ করেছি (এবং এটি ছিল একটি দুঃস্বপ্ন) কেন্দ্রীয় ভিসিএসের সাথে। অনুভূতির জন্য এত, তত্ত্বের পক্ষে এতটা ...
gnat

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

10

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

গিট / গিটারিয়াসের সাথে কখনও এই সমস্যা হয়নি।

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

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

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

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


তারা কেন সরাসরি ট্রাঙ্ক প্রতিশ্রুতিবদ্ধ হবে? আমি মনে করি এটি আপনার সমস্যা ছিল
gbjbaanb

1
@gbjbaanb কারণ এটি হ'ল theতিহ্যবাহী সিভিএসের কাজ করার পদ্ধতি, কারণ এটি হ'ল theতিহ্যবাহী সেন্ট্রালাইজড রেপো প্রতিমা। এসভিএন ব্যবহারকারীরা সাধারণত প্রাক্তন সিভিএস ব্যবহারকারী হন এবং এসভিএন-তে শাখা এবং মার্জ করা কেবল সিভিএসের তুলনায় সামান্য ভাল; যা সঠিক হওয়া অসম্ভব বেদনাদায়ক / পরের। সমস্ত এসভিএন শপগুলির মধ্যে 99% এর মধ্যে 99% কার্যপ্রবাহের কেস কারণ সরঞ্জাম এবং গোষ্ঠী মনে করে।

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

4

বিল্ড সার্ভারগুলি সস্তা। আপনার সিআই সার্ভারটি সম্পর্কে আপনার জানা সমস্ত শাখাগুলি চয়ন করুন।

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


এবং যদি আপনি এমন কিছু প্রতিশ্রুতিবদ্ধ করতে চান যা ভেঙে পড়ে headতবে কোনও সহকর্মীকে সহায়তা করে বা কোনও সহকর্মী আপনাকে সহায়তা করতে পারে তার জন্য প্রয়োজন হয়? আপনি আপনার সহকর্মীর কাছে একটি আলাদা এবং ইমেল তৈরি করতে পারেন তবে কোনওভাবে এটি সঠিক মনে হয় না।
আরজান

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

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

1
সিআই সার্ভারটি কোনও ব্যক্তিগত শাখা সম্পর্কে এটি না বলা পর্যন্ত স্বয়ংক্রিয়ভাবে জানতে পারবে না। আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা আলাদা ক্লাবের সিআই-তে তাদের শাখাগুলি চান কিনা তা বেছে নেওয়ার জন্য পৃথক পৃথক ব্যক্তিরা। (কোনও অলৌকিক সমাধান নেই)
ptyx

সুতরাং সিআইয়ের সমস্ত শাখাগুলি বাছাই করা উচিত নয়, আপনি কেবল সিআইতে চান। আমার কাছে এটি একটি পার্থক্য। তবুও, আমি মনে করি আপনি কী বলতে চাইছেন তা আমি বুঝতে পেরেছি, সুতরাং +1
আরজান

4

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

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

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

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

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


3

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


2

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


1

উত্তর হ্যাঁ, এবং না উভয়ই।

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

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

(এবং যদি আপনার এসভিএন ব্যবহারকারীরা প্রতি রাতে প্রতিশ্রুতিবদ্ধ না হয় তবে তাদের বলুন - এটি হুবহু একই সমস্যা)।


0

গিট অবিচ্ছিন্ন একীকরণ আটকাচ্ছে না। আপনার ট্রাঙ্ক ভিত্তিক ওয়ার্কফ্লো।

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

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

  • বিরতি বৈশিষ্ট্যগুলি যথেষ্ট কম যা কোনও এক বা দু'দিনের বেশি বিকাশে লাগবে না।
  • প্রতিটি বৈশিষ্ট্য একটি বেসরকারী শাখায় তৈরি করা হয়।
  • বিকাশকারীরা ব্যক্তিগত শাখায় প্রায়শই সংহত করে (git fetch origin; git merge master )। এইভাবে কাজ করার সময় আমি সাধারণত দিনে অনেকবার এটি করি।
  • বিকাশকারী যখন মার্জ এবং পর্যালোচনার জন্য শাখা জমা দেয়, সিআই সার্ভার একটি স্বয়ংক্রিয় বিল্ড করে। মার্জ কেবল তখনই ঘটে যখন এটি পাস হয়।

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


-1

@Jdunay এর মতো দুর্দান্ত প্রযুক্তিগত সমাধান রয়েছে, তবে আমাদের কাছে এটি একটি জনগণের ইস্যু - একইভাবে এমন একটি পরিবেশকে উত্সাহিত করা যেখানে লোকেরা প্রায়শই এসএনএন প্রতিশ্রুতিবদ্ধ হয় তা একটি জনগণের সমস্যা issue

আমাদের জন্য যা কাজ করা হয়েছে তা হ'ল: (বর্তমানে সক্রিয় দেব শাখার সাথে 'মাস্টার' প্রতিস্থাপন করুন)

  1. মাস্টার থেকে ঘন ঘন একত্রীকরণ / রিবেসগুলি
  2. প্রায়শই পর্যাপ্ত চাপ দেয় মাস্টারকে
  3. এমন কিছু বিষয় সম্পর্কে সচেতনতা যা কিছুটা রিফ্যাক্টরিংয়ের মতো জাহান্নামকে একীভূত করে এবং যোগাযোগের মাধ্যমে এটিকে প্রশমিত করে। উদাহরণ স্বরূপ:

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