কেন সকলেই কেন কেন্দ্রীয়ভাবে গিট ব্যবহার করে?


289

আমি সংস্করণ নিয়ন্ত্রণের জন্য আমার অতীত দুটি সংস্থায় গিট ব্যবহার করেছি। এটি আমি শুনেছি যা দেখে মনে হয় যে প্রায় 90% সংস্থাগুলি অন্যান্য সংস্করণ নিয়ন্ত্রণ সিস্টেমের উপর গিট ব্যবহার করে।

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

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

আমার প্রশ্নগুলি হ'ল:

  1. অনুশীলনে গিটের জন্য লোকেরা কেন বিতরণ ওয়ার্কফ্লো ব্যবহার করে না?
  2. আধুনিক সংস্করণ নিয়ন্ত্রণের জন্য বিতরণ পদ্ধতিতে কাজ করার দক্ষতা কি গুরুত্বপূর্ণ, বা এটি কেবল দুর্দান্ত লাগছে?

সম্পাদন করা

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


31
আমি ঠিক একইভাবে অনুভব করি এবং এটি বুঝতে পারি না।
স্নুপ

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

43
আমি শুরু থেকেই মোটামুটি নির্দিষ্ট টরভাল্ডসের উদ্দেশ্যে একটি "সত্যের উত্স" লিনাক্স কার্নেলের সংগ্রহস্থল রাখি।
স্টিভেন বার্নাপ

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

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

উত্তর:


257

আহা, কিন্তু আসলে আপনি হয় Git একটি বিকেন্দ্রীভূত পদ্ধতিতে ব্যবহার!

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

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

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

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

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


15
এসভিএন মার্জগুলি কেবল বিরোধী পরিবর্তনের সাথে জড়িত বিকাশকারীকে প্রভাবিত করে। একটি প্রতিশ্রুতিবদ্ধতা এটিকে রেপোতে পরিণত করে, দ্বন্দ্বগুলি সমাধান না হওয়া পর্যন্ত কোনও বিরোধী সংহতকরণ রেপোতে যেতে পারে না (আপনি একটি পৃথক শাখা / পথের সমান্তরালেও প্রতিশ্রুতি দিতে পারেন, তবে বাস্তবে এটি এখন বিরোধ করে না?)
বেন ভয়েগ্ট

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

17
@ বেনভয়েট ওহ, এটি ঠিক আছে বন্ধ করে দেওয়া কাজ। মনে রাখবেন আপনি svn upচেক ইন করার আগে আপনাকে রেপোতে আপ-টু ডেট থাকতে হবে others অন্যরা যখন আপনি মার্জ সংঘাতগুলি সমাধান করার চেষ্টা করছেন এবং যখন আপনি মার্জ কোন্দলের আরও একটি সেট দেন ... আপনি তা বন্ধ করে রেখেছেন অথবা আপনি আপনার বিচক্ষণতা যা বাকি তা হারাবেন।
মাইকেল হ্যাম্পটন

21
না, লোকেরা আপনার কার্যপ্রবাহকে বাধাগ্রস্থ না করে অবশ্যই যে শাখায় থেকে আপনি পরিবর্তনগুলি মার্জ করছেন তাতে অবশ্যই প্রতিশ্রুতিবদ্ধ রাখতে পারেন।
বেন ভয়েগট

29
বেন ঠিক আছে। একটি এসভিএন রেপো সঠিকভাবে পরিচালিত হয়েছে এবং এমন একটি দল যা ব্যবহার করে সঠিকভাবে সফ্টওয়্যার বিকাশ করতে পারে তার দ্বারা ব্যবহৃত, কার্যকরভাবে কখনই ট্রাঙ্কে সংহত বিবাদগুলির উচিত নয়। আপনি কেবল তখনই পেয়ে যাবেন যখন কেউ কিছু ভুল করেছে এবং তাকে বহিষ্কার করা দরকার (: পি)। আপনি লোকদের কীভাবে তাদের সরঞ্জামগুলি ব্যবহার করবেন সে সম্পর্কে শিক্ষিত করতে হবে না তখন ইনবি 4 এটি সহজ। হ্যাঁ, ভাল, এসভিএন-এর চেয়ে গিট সম্পর্কে আরও অনেক কিছু শেখানোর আছে!
অরবিট

118

যখন আপনার বিল্ড সার্ভার (আপনি হয় , সিআই ব্যবহার ঠিক আছে?) একটি বিল্ড তৈরি করে, যেখানে এটি থেকে টান করে? অবশ্যই, একটি ইন্টিগ্রেশন বিল্ড আপনি যুক্তি করতে পারেন "একটি সত্য রেপো" প্রয়োজন হয় না তবে অবশ্যই একটি বিতরণ বিল্ড (যেমন আপনি গ্রাহককে যা দেন) তা করে।

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

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

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


2
সামগ্রিকভাবে ভাল উত্তর, তবে আমি দৃ pretty়ভাবে নিশ্চিত যে কন্টিনিউজ ইন্টিগ্রেশন হওয়ার আগে গিট ব্যাপকভাবে ব্যবহৃত হয়েছিল; আমাদের দল সিআই ব্যবহার করে, যাইহোক, পরীক্ষার জন্য ধন্যবাদ: ডি।
গার্ডেনহেড

5
@ গার্ডেনহেড: আপনি বিষয়টিটি মিস করেছেন: যদি ইন্টিগ্রেশনটি ম্যানুয়ালি তৈরি করে তবে একই যুক্তি হ'ল। "সিআই" হ'ল গিটের চেয়ে অনেক পুরানো প্রক্রিয়াটির জন্য একটি স্বয়ংক্রিয়করণ।
ডক ব্রাউন

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

9
কারণ লিনাক্স কার্নেলের কোনও "সত্যিকারের বিল্ড" নেই। যেহেতু প্রত্যেকে এগুলি নিজেরাই তৈরি করে, তাই লিনাসের রেপো অন্য কারও চেয়ে প্রচলিত নয়। যদি আপনি এমন কোনও পণ্য বিক্রি করেন যা এত ভাল কাজ করে না।
মাইলস বুদেনেক

2
@ সুপেরবেস্ট: গিট ডিজাইনের অনেক কিছুই (বিটকিপারের চারপাশে তৈরি ছিল)। লিনাক্স-বিটকিপার বিতর্কিত হওয়ার পরে গিট তৈরি হয়েছিল।
হোসাইম

40

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

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

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

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

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


7
তারা প্রযুক্তিগতভাবে সমতুল্য, সামাজিকভাবে সমতুল্য নয়।
কৌতূহলীনি

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

1
"প্রয়োজনীয় কিছু করার জন্য স্থানীয়ভাবে অবশ্যই একটি সম্পূর্ণ ইতিহাস [...] থাকতে হবে" - সত্য নয়; আধুনিক ডিএসসিএমগুলি আংশিক রেপো সমর্থন করে (বিজেআর পদে "অগভীর চেকআউট", গিট শর্তে "অগভীর ক্লোনস")।
চার্লস ডাফি

27

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

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

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

এটি বলার জন্য পুরানো শোনার ঝুঁকিতে, আপনি কী জানেন যে এটি আপনার পক্ষে কত সহজ।


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

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

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

4
@ গার্ডেনহেড: ভাল, নিজেকে ভাগ্যবান বিবেচনা করুন যে আপনি কোনও উত্তরাধিকার প্রকল্পে আটকে নেই, পুরানো সফটওয়্যার বিকাশকারীরা যারা আপনাকে কাজ করার পুরানো পদ্ধতিটি বলছেন তা ঠিক আছে ... কখনও কখনও আপনি সাহায্য করতে পারেন না তবে তারা ঠিক বলে মনে করেন খুশি যে তাদের কোনও নতুন প্রযুক্তি শেখার দরকার নেই!
বাম দিকের বাইরে

1
@ গ্রেডেনহেড আপাতদৃষ্টিতে প্রকল্পগুলি একটি সুন্দর উন্মাদ হারে প্রকাশ করা হচ্ছে। আপনি যদি একটি দুর্দান্ত কাজ খুঁজে পেতে সক্ষম হতে চান তবে শেখা চালিয়ে যাওয়ার ক্ষমতা প্রয়োজনীয়।
ওয়েন ওয়ার্নার

19

আমি মনে করি আপনার প্রশ্নটি সর্বদা সংযুক্ত মনস্থির থেকে আসে । অর্থাত্ কেন্দ্রীয় 'সত্য' সিআই সার্ভার সর্বদা (বা কাছে সর্বদা কাছে) উপলব্ধ near যদিও এটি বেশিরভাগ পরিবেশে সত্য, আমি কমপক্ষে একটিতে কাজ করেছি যা এ থেকে অনেক দূরে ছিল।

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

"সত্যের কেন্দ্রীয় উত্স" হ'ল একটি আর্মি বেসের একটি মেশিন, একটি সমস্ত-সিন্ডারব্লক আন্ডারগ্রাউন্ড উইন্ডোলেস রুমে (চাঙ্গা ভবন, ইয়াদ-ইয়াদ)। যে মেশিন এছাড়াও কোনো ইন্টারনেট সংযোগ ছিল।

পর্যায়ক্রমে, গিট রেপো সহ (আমাদের সমস্ত কোড পরিবর্তনযুক্ত) একটি ড্রাইভকে সেনা ঘাঁটিতে পরিবহণ করা (শারীরিকভাবে) কারও কাজ হবে - যা কয়েকশ কিলোমিটার দূরে ছিল, তাই আপনি কল্পনা করতে পারেন।


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

এছাড়াও, আপনি যদি লিনাক্স কার্নেলের স্কেলটিতে কিছু বিবেচনা করেন ... বিকাশকারীরা কেবল লিনাসকে নিজের কাছে টানতে অনুরোধ পাঠান না। এটি মূলত রেপোর একটি শ্রেণিবিন্যাস - যার প্রত্যেকটি / কারও / কোনও দলের কাছে "কেন্দ্রীয়" ছিল।

গিটের সংযোগ বিচ্ছিন্ন প্রকৃতির অর্থ এটি এমন পরিবেশে ব্যবহার করা যেতে পারে যেখানে সংযুক্ত মডেল উত্স-নিয়ন্ত্রণ সরঞ্জামগুলি ( যেমন একটি হিসাবে এসভিএন) ব্যবহার করা যায়নি - বা সহজে ব্যবহার করা যায়নি।


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

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

18

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


14

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

নির্দিষ্ট অফিসিয়াল রিলিজ দিয়ে কংক্রিট পণ্য তৈরি করার সময় এটি খুব সাধারণ ব্যবহারের ঘটনা নয়, তবে এফ / ওএসএস বিশ্বে এটি আদর্শ, ব্যতিক্রম নয়।


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

@ লুয়ান এই সম্পর্কে কিছুক্ষণ চিন্তা করার পরে, আমি বুঝতে পেরেছি আপনি ঠিক বলেছেন। আমি শব্দটি কিছুটা বদলে ফেলেছি - এই পার্থক্যটি কি আরও ভালভাবে ধারণ করে?
ফ্লফি

@ ফ্লাফি আমার কাছে ভাল লাগছে;)
লুয়ান

9

কেন সবাই কেন কেন্দ্রীয়ভাবে গিট ব্যবহার করেন?

আমরা কখনই দেখা করি নি, আপনি সবাই বলে কীভাবে আসে? ;)

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

নিশ্চিত যে অনেক লোক এটি সিভিএস বা এসভিএন এর মতো কেন্দ্রীভূত ব্যবহার করতে পারে। তবে অন্য বৈশিষ্ট্যটি ভুলে যাবেন না যে অন্তর্নিহিতভাবে একটি বিতর্কিত ভিসিএস নিয়ে আসে: সমস্ত অনুলিপি কম-বেশি "সম্পূর্ণ" হয় (সমস্ত শাখা এবং সম্পূর্ণ ইতিহাস উপলব্ধ) এবং সমস্ত শাখা কোনও সার্ভারের সাথে সংযুক্ত না করে চেক আউট করা যায়।

আমি আমার মতে এটি অন্য একটি বৈশিষ্ট্য যা ভুলে যাওয়া উচিত নয়।

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

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

গিটের সাথে বাক্স থেকে বেরিয়ে আসা অন্যান্য বৈশিষ্ট্য:

  • ক্রিপ্টোগ্রাফিকভাবে সাইন কমিট করে
  • রিবাজিং (পুনঃক্রম এবং স্কোয়াশ কমিট করে; সম্পাদনা করে, কেবল বার্তাটিই নয়)
  • চেরি পিকিং
  • ইতিহাস দ্বিখণ্ডিত
  • স্থানীয় শাখা এবং স্ট্যাশিং পরিবর্তন (উইকিপিডিয়ায় "তাক" বলা হয়)

উইকিপিডিয়ায় এই তিনটি সারণীও দেখুন - সংস্করণ নিয়ন্ত্রণ সফ্টওয়্যারটির তুলনা :

আবার, সম্ভবত বিকেন্দ্রীভূত পদ্ধতি এমন বৈশিষ্ট্য নয় যা এটি ব্যবহার করে।

  1. অনুশীলনে গিটের জন্য লোকেরা কেন বিতরণ ওয়ার্কফ্লো ব্যবহার করে না?

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

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

  1. বিতরণ পদ্ধতিতে দক্ষতার কাজটি কি আধুনিক সংস্করণ নিয়ন্ত্রণের জন্যও গুরুত্বপূর্ণ ...

সর্বদা হিসাবে: এটি প্রয়োজনীয়তার উপর নির্ভর করে।

কোনও বিন্দু প্রযোজ্য হলে বিকেন্দ্রীভূত ভিসিএস ব্যবহার করুন:

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

আরও কিছু আছে তবে চারটি যথেষ্ট হওয়া উচিত।

... না কি খুব সুন্দর লাগছে?

অবশ্যই এটি দুর্দান্ত লাগছে - নতুনদের জন্য।


svn initকোনও সময়ে এসভিএন লাভ হয়নি?
ইমিবিস

5

নমনীয়তা একটি অভিশাপ পাশাপাশি আশীর্বাদ is এবং হিসাবে গীত অত্যন্ত নমনীয়, এটা প্রায় সবসময় পর্যন্ত খুব টিপিক্যাল পরিস্থিতির জন্য নমনীয়। বিশেষত, বেশিরভাগ গিট প্রকল্পগুলি লিনাক্স নয়।

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

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


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

1
নন-গাছকে অনুমতি দেওয়া "তাত্ত্বিক নমনীয়তা" নয়। নিজেকে কেবলমাত্র "গাছে" সীমাবদ্ধ করুন এবং আপনি কখনই আপনার পরিবর্তনগুলিতে মার্জ করতে পারবেন না, এভাবে আপনার পুরো ভিসিএসকে কিছুটা অর্থহীন less
ওয়াইল্ডকার্ড

2
@ উইল্ডকার্ড: গাছগুলিতে মার্জ করা মোটেও সমস্যা নয়, কেন এমন হবে? আপনি অবশ্যই এলোমেলো নোডের মধ্যে অবশ্যই পিতামাতা / সন্তানের মধ্যে একীভূত করতে পারবেন না।
এমসাল্টার

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

2
@ উইল্ডকার্ড: এমসাল্টাররা বলেছিলেন যে সংগ্রহস্থলগুলি সাধারণত গাছ হিসাবে সংযুক্ত থাকে , কমিটগুলি তা নয়। তিনি বলছেন যে রেপোসের সাধারণত একটিমাত্র "আপস্ট्रीम" রিমোট থাকে যা তারা চাপায় (বা কাছে টানতে অনুরোধ জারি করে)। এটি সত্য বা না তা নিয়ে আমার কোনও পরিসংখ্যান নেই, তবে একত্রীকরণের প্রতিশ্রুতিবদ্ধ কতজন পিতা-মাতার সাথে এটি করা কিছুই করা থেকে এটি সম্পূর্ণ আলাদা দাবি।
স্টিভ জেসোপ

4

ব্যবসায়িক যুক্তি একটি কেন্দ্রিয়ায়িত সার্ভারকে পুরস্কৃত করে। প্রায় সব বাস্তব ব্যবসায়িক পরিস্থিতিতে, একটি কেন্দ্রীয় সার্ভার কর্মপ্রবাহের একটি মৌলিক বৈশিষ্ট্য।

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

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


3

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

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

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


"আমি নিজের কম্পিউটারে, বা আমার সংস্থার সরবরাহিত ল্যাপটপে চালাচ্ছি da - কারণ অন্য কিছু বাদ দিয়ে, আমার ল্যাপটপে কোনও পরিষেবা চালানোর অর্থ Iাকনাটি বন্ধ করার পরে পরিষেবাটি অনুপলব্ধ! DynDNS একাধিক অবস্থানের সাথে সহায়তা করতে পারে (কিছুটা হলেও আপনি এখনও কোনও NAT এর পিছনে আটকা পড়ে যেতে পারেন) তবে এটি আপনার নেটওয়ার্ক কার্ডটি শক্তিশালীকরণে সহায়তা করে না ...
স্টিভ জেসপ

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

2

জটিলতা:

কেন্দ্রীয় সংগ্রহস্থল সহ, একটি সাধারণ কাজের প্রবাহ হতে পারে

branch off from the central master branch
change the code
test
possibly go back to changing the code
commit
merge any new changes from the central master branch
test
possibly go back to changing the code
merge changes into the central master branch and push

ও (1) এর বিকাশকারীর সংখ্যার সাথে সম্পর্কিত জটিলতা।

পরিবর্তে যদি প্রতিটি বিকাশকারীর নিজস্ব নিজস্ব শাখা থাকে তবে এটি বিকাশকারী 0:

branch off from master branch 0
merge from master branch 1
...
merge from master branch N-1
change the code
test
possibly go back to changing the code
commit
merge any changes from master branch 0
merge any changes from master branch 1
...
merge any changes from master branch N-1
test
possibly go back to changing the code
merge changes into master branch 0

পিয়ার-টু-পিয়ার পদ্ধতির নাম হ'ল (এন)।

সমন্নয়:

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


আপনি যদি ভোটে নামতে চলেছেন তবে আপনি কেন দয়া করে একটি মন্তব্য করতে পারেন?
থিওডোর নরভেল

না যে আমি ডাউনভোটদের মনে করি। আমি শুধু জানতে চাই যে উত্তরটি কোনওভাবে ভুল কিনা।
থিওডোর নরভেল

1

সরল:

সংস্থাগুলি কেন্দ্রিয়ায়িত কর্মপ্রবাহ সহ সংস্থাগুলি।

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

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

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


-2

হতে পারে কারণ তিনি পে-রোল প্রসেসিং কেন্দ্রীভূত, তাই আমরা বেতন পেতে চাইলে আমাদের একজন কেন্দ্রীয় ব্যক্তিকে খুশি রাখতে হবে।

হতে পারে এটি কারণ আমরা একটি পণ্য তৈরি করছি, তাই গ্রাহকদের জন্য আমাদের সফ্টওয়্যারটির একটি মাস্টার কপি প্রয়োজন।

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

সম্ভবত এটি কারণ বাগের ডাটাবেসটি কেন্দ্রীভূত, এবং অবশ্যই কোডটির সাথে সিঙ্কে রাখতে হবে

কেন্দ্রীভূত হওয়া দুর্দান্ত, যতক্ষণ না সমস্যা হয়… ..

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

নেটওয়ার্ক ডাউন থাকলে রিপোসিটরির স্থানীয় কপির সাথে মার্জ ইত্যাদি করতে সক্ষম হবেন, তবে বিতরণ ব্যবস্থার প্রয়োজন নেই; এটির জন্য কেবল এমন একটি সিস্টেম দরকার যা সমস্ত ডেটার স্থানীয় কপি রাখে। একইভাবে উড়ন্ত ইত্যাদি সহ কোডে চেক করার সাথে

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

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