মূল পার্থক্যটি হ'ল (যেমনটি ইতিমধ্যে অন্যান্য প্রতিক্রিয়াতে বলা হয়েছিল) সিভিএস হ'ল (পুরানো) কেন্দ্রীয় সংস্করণ নিয়ন্ত্রণ ব্যবস্থা, যখন গিট বিতরণ করা হয়।
আপনি যদি একক বিকাশকারী, একক মেশিনে (একক অ্যাকাউন্ট) সংস্করণ নিয়ন্ত্রণ ব্যবহার করেন তবে গিট এবং সিভিএসের মধ্যে কয়েকটি পার্থক্য রয়েছে:
সংগ্রহস্থল স্থাপন করা হচ্ছে । .git
আপনার প্রকল্পের শীর্ষ ডিরেক্টরিতে ডিরেক্টরিতে গিট স্টোরের সংগ্রহস্থল ; সিভিএসের জন্য বিভিন্ন প্রকল্পের (মডিউল) সংস্করণ নিয়ন্ত্রণ তথ্য সংরক্ষণের জন্য কেন্দ্রীয় স্থান সিভিএস্রুট স্থাপন করা প্রয়োজন। ব্যবহারকারীর জন্য এই নকশার পরিণতি হ'ল সংস্করণ নিয়ন্ত্রণে বিদ্যমান উত্সগুলি আমদানি করা গিটের মধ্যে "গিট আর এন্ড অ্যান্ড গিট অ্যাড। & গিট কমিট" এর মতোই সহজ, যদিও এটি সিভিএসে আরও জটিল ।
পারমাণবিক অপারেশন । কারণ সিভিএস শুরুতে প্রতি-ফাইল আরসিএস সংস্করণ নিয়ন্ত্রণ সিস্টেমের চারপাশে স্ক্রিপ্টগুলির একটি সেট ছিল, কমিট (এবং অন্যান্য ক্রিয়াকলাপগুলি) সিভিএসে পারমাণবিক নয়; যদি ভাণ্ডারটিতে কোনও অপারেশন মাঝখানে বিঘ্নিত হয়, তবে সংগ্রহস্থলটি একটি অসামঞ্জস্য অবস্থায় ফেলে রাখা যেতে পারে। গিতে সমস্ত অপারেশনগুলি পারমাণবিক: হয় তারা পুরোপুরি সফল হয়, অথবা কোনও পরিবর্তন ছাড়াই ব্যর্থ হয়।
চেঞ্জসেটস । সিভিএসের পরিবর্তনগুলি ফাইল প্রতি হয়, যখন গিট-এ পরিবর্তন (কমিট) হয় তারা সর্বদা পুরো প্রকল্পটি উল্লেখ করে। এটি অত্যন্ত গুরুত্বপূর্ণ দৃষ্টান্তের শিফট । এর একটি পরিণতি হ'ল গিটকে ফিরিয়ে দেওয়া ( পুরোপুরি পরিবর্তনটি পূর্বাবস্থায় ফিরে আসা) বা পূর্বাবস্থায় ফিরে আসা খুব সহজ ; অন্য পরিণতি হ'ল সিভিএসে আংশিক চেকআউটগুলি করা সহজ, যখন এটি বর্তমানে গিটে অসম্ভবের পরে। পরিবর্তনগুলি প্রতি ফাইল-এ, একত্রে গোষ্ঠীভুক্ত হওয়ার কারণে সিভিএসে প্রতিশ্রুতিবদ্ধ বার্তাগুলির জন্য জিএনইউ চেঞ্জলগ ফর্ম্যাট আবিষ্কার হয়েছিল; গিট ব্যবহারকারীরা পৃথক কনভেনশন ব্যবহার করেন (এবং কিছু গিট সরঞ্জাম প্রত্যাশা করে) একক লাইন বর্ণনার (সংক্ষিপ্তকরণ) পরিবর্তনের পরে, খালি রেখার পরে, পরিবর্তনের আরও বিশদ বিবরণ অনুসরণ করে।
নামকরণ সংশোধন / সংস্করণ নম্বর । সিভিএসের পরিবর্তিত ফাইলগুলির পরিবর্তে এই সংস্করণের আরও একটি সমস্যা রয়েছে: সংস্করণ সংখ্যা (যেমন আপনি কখনও কখনও কীওয়ার্ড প্রসারণে , নীচে দেখুন) যেমন 1.4 প্রতিফলিত করে যে কত সময় প্রদত্ত ফাইলটি পরিবর্তন হয়েছে। সামগ্রিকভাবে একটি প্রকল্পের প্রতিটি সংস্করণে গিটের (প্রতিটি প্রতিশ্রুতিবদ্ধ) SHA-1 আইডি দ্বারা দেওয়া অনন্য নাম রয়েছে; সাধারণত প্রথম --৮ টি অক্ষর শোধ করার জন্য যথেষ্ট (আপনি বিতরণকৃত সংস্করণ নিয়ন্ত্রণ সিস্টেমে সংস্করণগুলির জন্য সহজ সংখ্যা স্কিম ব্যবহার করতে পারবেন না - যার জন্য কেন্দ্রীয় নম্বরকরণ কর্তৃত্বের প্রয়োজন)। সিভিএসে সংস্করণ নম্বর বা প্রতীকী নাম থাকতে পুরো প্রকল্পের রাজ্যের উল্লেখ করে আপনি ট্যাগ ব্যবহার করেন দেখতে পারেন ; আপনি যদি কিছুটির জন্য 'v1.5.6-rc2' এর মতো নাম ব্যবহার করতে চান তবে গিতেও একই কথা) একটি প্রকল্পের সংস্করণ ... তবে গিটের মধ্যে ট্যাগগুলি ব্যবহার করা সহজ।
সহজ শাখা । সিভিএসের শাখাগুলি আমার মতে অত্যধিক জটিল এবং এর সাথে মোকাবিলা করা শক্ত। পুরো সংগ্রহস্থল শাখার নাম রাখতে আপনাকে শাখাগুলি ট্যাগ করতে হবে (এবং প্রতি ফাইল হ্যান্ডলিংয়ের কারণে এটি যদি কিছুটা ক্ষেত্রে সঠিকভাবে মনে থাকে তবে এটি ব্যর্থও হতে পারে)। সিভিএসের মার্জ ট্র্যাকিং নেই এই বিষয়টি যুক্ত করুন , সুতরাং আপনাকে মার্জ এবং ব্রাঞ্চিং পয়েন্টগুলি মনে রাখতে হবে বা ম্যানুয়ালি ট্যাগ করতে হবে এবং "সিভিএস আপডেট-জে" ব্রাঞ্চগুলিকে মার্জ করার জন্য ম্যানুয়ালি সঠিক তথ্য সরবরাহ করতে হবে এবং এটি শাখা প্রশাখার জন্য তৈরি করে অপ্রয়োজনীয় হার্ড ব্যবহার করা। গিটে শাখা তৈরি এবং মার্জ করা খুব সহজ; গিট সমস্ত প্রয়োজনীয় তথ্য নিজেই মনে রাখে (সুতরাং একটি শাখা মার্জ করা "গিট মার্জ ব্রাঞ্চনাম " এর মতোই সহজ ) ... এটি করতে হয়েছিল, কারণ বিতরণ করা বিকাশ স্বাভাবিকভাবেই একাধিক শাখায় নিয়ে যায়।
এর অর্থ হ'ল আপনি বিষয় শাখা ব্যবহার করতে পারবেন , অর্থাত্ পৃথক বৈশিষ্ট্য শাখায় একাধিক ধাপে একটি পৃথক বৈশিষ্ট্য বিকাশ করুন।
ট্র্যাকিংয়ের নাম পরিবর্তন করুন (এবং অনুলিপি করুন) । ফাইলের নামগুলি সিভিএসে সমর্থিত নয়, এবং ম্যানুয়াল নামকরণের ফলে ইতিহাস দুটি ভাঙতে পারে বা অবৈধ ইতিহাসের দিকে পরিচালিত করতে পারে যেখানে আপনি নাম পরিবর্তনের আগে কোনও প্রকল্পের অবস্থা সঠিকভাবে পুনরুদ্ধার করতে পারবেন না। বিষয়বস্তু এবং ফাইলের নামের মিলের ভিত্তিতে গিট হিউরিস্টিক নামকরণ সনাক্তকরণ ব্যবহার করে (এই সমাধানটি অনুশীলনে ভালভাবে কাজ করে)। আপনি ফাইলগুলির অনুলিপি সনাক্ত করার জন্যও অনুরোধ করতে পারেন। এই যে মানে:
- নির্দিষ্ট প্রতিশ্রুতি পরীক্ষা করার সময় আপনি তথ্য পাবেন যে কোনও ফাইলের নাম পরিবর্তন করা হয়েছে,
- সঠিকভাবে মার্জ করা নতুন অ্যাকাউন্টগুলিতে নাম নেয় (উদাহরণস্বরূপ, যদি ফাইলটি কেবল একটি শাখায় পুনরায় নামকরণ করা হয়)
- "গিট দোষ", "সিভিএস এনোটেট" এর (আরও ভাল) সমতুল্য, ফাইলের সামগ্রীর লাইন-ভিত্তিক ইতিহাস দেখানোর একটি সরঞ্জাম, নামগুলি জুড়েও কোড আন্দোলন অনুসরণ করতে পারে
বাইনারি ফাইল । সিভিএসের বাইনারি ফাইলগুলির জন্য খুব সীমিত সমর্থন রয়েছে (উদাহরণস্বরূপ চিত্র), ব্যবহারকারীদের যোগ করার সময় বাইনারি ফাইলগুলি স্পষ্টভাবে চিহ্নিত করতে হবে (বা পরে "সিভিএস অ্যাডমিন" ব্যবহার করার পরে, বা র্যাপারগুলির মাধ্যমে ফাইলের নামের ভিত্তিতে স্বয়ংক্রিয়ভাবে এটি করতে হবে), এর ম্যাংলিং এড়াতে বাইনারি ফাইলটি অফ-অফ-লাইন রূপান্তর এবং কীওয়ার্ড প্রসারণের মাধ্যমে। গিট সিএনইউ পৃথক করে এবং অন্যান্য সরঞ্জামগুলি একইভাবে সামগ্রীগুলির উপর ভিত্তি করে বাইনারি ফাইল সনাক্ত করে; আপনি গিটট্রিবিউটস মেকানিজম ব্যবহার করে এই সনাক্তকরণটিকে ওভাররাইড করতে পারেন। অধিকন্তু বাইনারি ফাইলগুলি 'সেফেক্রল্ফ' -র ডিফল্ট (এবং আপনাকে সত্যিকারের বিতরণের উপর ভিত্তি করে ডিফল্টরূপে চালু করা যেতে পারে), এবং (সীমিত) কীওয়ার্ডের জন্য ডিফল্টকে ধন্যবাদ জানাতে অপরিশোধনযোগ্য ম্যাংলিংয়ের বিরুদ্ধে সুরক্ষিত গিটে সম্প্রসারণ একটি কঠোর 'অপ্ট-ইন'।
কীওয়ার্ড সম্প্রসারণ । সিভিএসের (ডিফল্টরূপে) তুলনায় গিট একটি খুব, খুব সীমিত কীওয়ার্ড সেট সরবরাহ করে। এটি দুটি সত্যের কারণেই: গিটের পরিবর্তনগুলি প্রতি ফাইলের জন্য নয়, প্রতি সংগ্রহস্থল এবং গিট অন্যান্য শাখায় স্যুইচ করার সময় বা ইতিহাসের অন্য বিন্দুতে ফিরে যাওয়ার সময় পরিবর্তিত হয়নি এমন ফাইলগুলিকে সংশোধন করা এড়ায়। আপনি যদি গিট ব্যবহার করে সংশোধন নম্বর এম্বেড করতে চান তবে আপনার বিল্ড সিস্টেমটি ব্যবহার করে এটি করা উচিত, উদাহরণস্বরূপ লিনাক্স কার্নেল উত্স এবং গিট উত্সগুলিতে জিআইটি-ভার্সন-জেন স্ক্রিপ্টের উদাহরণ following
সংশোধন প্রতিশ্রুতি । বিতরণিত ভিসিএসে যেমন প্রকাশের গিট অ্যাক্ট প্রতিশ্রুতিবদ্ধতা তৈরি থেকে পৃথক, কেউই অন্য ব্যবহারকারীদের অসুবিধে না করে ইতিহাসের অপ্রকাশিত অংশ পরিবর্তন (সম্পাদনা, পুনর্লিখন) করতে পারেন। বিশেষত যদি আপনি কমিটের বার্তায় টাইপ (বা অন্যান্য ত্রুটি), বা কোনও বাগের প্রতিশ্রুতি লক্ষ্য করেন তবে আপনি কেবল "গিট কমিট --amend" ব্যবহার করতে পারেন। সিভিএসে এটি সম্ভব নয় (কমপক্ষে ভারী হ্যাকারি ছাড়া নয়)।
আরও সরঞ্জাম । গিট সিভিএসের চেয়ে অনেক বেশি সরঞ্জাম সরবরাহ করে। আরও গুরুত্বপূর্ণ একটি হ'ল " গিট বিসেক্ট " যা একটি কমিট (পুনর্বিবেচনা) সন্ধান করতে ব্যবহার করা যেতে পারে যা বাগ প্রবর্তন করে; যদি আপনার কমিটগুলি ছোট এবং স্ব-অন্তর্ভুক্ত থাকে তবে বাগটি কোথায় তা আবিষ্কার করা মোটামুটি সহজ হওয়া উচিত।
আপনি যদি কমপক্ষে অন্য একজন বিকাশকারীর সাথে সহযোগিতা করেন তবে আপনি গিট এবং সিভিএসের মধ্যে নিম্নলিখিত পার্থক্যগুলিও দেখতে পাবেন:
অবশেষে গিট আরও অনেক সম্ভাবনার প্রস্তাব দেয় যখন বিপুল সংখ্যক বিকাশকারীদের সাথে সহযোগিতা প্রয়োজন। কোনও প্রকল্পে আগ্রহের এবং অবস্থানের বিভিন্ন পর্যায়ে সিভিএসের মধ্যে সিভিএসের মধ্যে পার্থক্য রয়েছে (সিভিএস বা গিট ব্যবহার করে সংস্করণ নিয়ন্ত্রণে):
lurker । যদি আপনি কেবলমাত্র কোনও প্রকল্পের সর্বশেষ পরিবর্তনগুলি পেতে ( আপনার পরিবর্তনের কোনও প্রচার নেই ) বা বেসরকারী উন্নয়ন (মূল প্রকল্পগুলিতে ফিরে অবদান না রেখে) আগ্রহী হন; বা আপনি বিদেশী প্রকল্পগুলি আপনার নিজের প্রকল্পের ভিত্তি হিসাবে ব্যবহার করেন (পরিবর্তনগুলি স্থানীয় হয় এবং এগুলি প্রকাশ করার কোনও অর্থ হয় না)।
গিটটি এখানে কাস্টম দক্ষ প্রোটোকলের মাধ্যমে বেনামে অজ্ঞাতনামা অবিচলিত পঠনযোগ্য অ্যাক্সেস সমর্থন করে git://
বা আপনি যদি ফায়ারওয়াল ব্লক করার পিছনে DEFAULT_GIT_PORT
(9418) থাকেন তবে আপনি সরল এইচটিটিপি ব্যবহার করতে পারেন।
সিভিএসের সর্বাধিক সাধারণ সমাধানের জন্য (যেমন আমি এটি বুঝতে পারি) কেবল পঠনের অ্যাক্সেসের জন্য অতিথি অ্যাকাউন্ট হ'ল 'পেসারভার' প্রোটোকল অন CVS_AUTH_PORT
(2401), সাধারণত "বেনামে" এবং খালি পাসওয়ার্ড সহ বলা হয়। শংসাপত্রগুলি $HOME/.cvspass
ফাইলে ডিফল্টরূপে সংরক্ষণ করা হয় , সুতরাং আপনাকে এটি কেবল একবার সরবরাহ করতে হবে; তবুও, এটি কিছুটা বাধা (আপনাকে অতিথির অ্যাকাউন্টের নাম জানতে হবে, বা সিভিএস সার্ভারের বার্তাগুলিতে মনোযোগ দিতে হবে) এবং বিরক্তি।
ফ্রিঞ্জ বিকাশকারী (পাতার অবদানকারী) । ওএসএসে আপনার পরিবর্তনগুলি প্রচারের একটি উপায় ইমেলের মাধ্যমে প্যাচগুলি প্রেরণ করা । আপনি (কম বেশি) দুর্ঘটনা বিকাশকারী, একক পরিবর্তন বা একক বাগফিক্স প্রেরণ করা হলে এটি সর্বাধিক সাধারণ সমাধান। BTW। প্যাচগুলি প্রেরণ পর্যালোচনা বোর্ডের মাধ্যমে (প্যাচ পর্যালোচনা সিস্টেম) বা অনুরূপ উপায়গুলি হতে পারে, কেবল ইমেলের মাধ্যমে নয়।
গিট এখানে এমন সরঞ্জাম সরবরাহ করে যা প্রেরক (ক্লায়েন্ট) এবং রক্ষণাবেক্ষণকারী (সার্ভার) উভয়ের জন্য এই প্রচার (প্রকাশনা) ব্যবস্থায় সহায়তা করে। ইমেলটির মাধ্যমে যারা পরিবর্তনগুলি প্রেরণ করতে চান তাদের জন্য বর্তমান গতিপ্রদর্শন সংস্করণের শীর্ষে আপনার নিজস্ব পরিবর্তনগুলি পুনরায় খেলতে " গিট রিবেস " (বা "গিট টান --রেবাস") সরঞ্জাম রয়েছে, সুতরাং আপনার পরিবর্তনগুলি বর্তমান সংস্করণের শীর্ষে রয়েছে (তাজা ), এবং " গিট ফরম্যাট-প্যাচ " কমিট বার্তা (এবং লেখক) দিয়ে ইমেল তৈরি করতে, (বর্ধিত) ইউনিফাইড ডিফর্ম ফর্ম্যাট (সহজ পর্যালোচনার জন্য প্লাস ডিফস্ট্যাট) আকারে পরিবর্তন করুন। রক্ষণাবেক্ষণকারী এই জাতীয় ইমেলটি সরাসরি " গিট অ্যাম " ব্যবহার করে সমস্ত তথ্য (কমিট বার্তা সহ) সংরক্ষণের প্রতিশ্রুতিতে পরিণত করতে পারেন ।
সিভিএস এ জাতীয় কোনও সরঞ্জাম সরবরাহ করে না: আপনি পরিবর্তনগুলি উত্পন্ন করতে "সিভিএস ডিফ" / "সিভিএস আরডিফ" ব্যবহার করতে পারেন, এবং পরিবর্তনগুলি প্রয়োগ করতে জিএনইউ প্যাচ ব্যবহার করতে পারেন, তবে যতদূর আমি জানি যে প্রতিশ্রুতিবদ্ধ প্রতিশ্রুতি প্রয়োগ করার জন্য স্বয়ংক্রিয় করার কোনও উপায় নেই। সিভিএস বলতে ক্লায়েন্ট <-> সার্ভার ফ্যাশনে ব্যবহার করা হয়েছিল ...
লেফটেন্যান্ট । আপনি যদি কোনও প্রকল্পের পৃথক অংশের (সাবসিস্টেম) রক্ষণকারী হন, বা আপনার প্রকল্পের বিকাশ যদি লিনাক্স কার্নেলের বিকাশে ব্যবহৃত "বিশ্বাসের নেটওয়ার্ক" ওয়ার্কফ্লো অনুসরণ করে ... বা আপনার নিজস্ব পাবলিক রিপোজিটরি রয়েছে, এবং আপনার পরিবর্তনগুলি প্যাচ সিরিজ হিসাবে ইমেলের মাধ্যমে প্রেরণ করতে খুব বড় প্রকাশ করতে চান , আপনি প্রকল্পের (প্রধান) রক্ষণাবেক্ষণকারীকে পুল অনুরোধ পাঠাতে পারেন ।
এটি বিতরণযোগ্য সংস্করণ নিয়ন্ত্রণ ব্যবস্থার জন্য নির্দিষ্ট সমাধান , সুতরাং অবশ্যই সিভিএস এই জাতীয় সহযোগিতার উপায়কে সমর্থন করে না। এমনকি "গিট রিকোয়েস্ট-পুল" নামে একটি সরঞ্জাম রয়েছে যা আপনার সংগ্রহশালা থেকে টানতে অনুরোধ সহ রক্ষণাবেক্ষণকারীকে প্রেরণ করতে ইমেল প্রস্তুত করতে সহায়তা করে। "গিট বান্ডিল" ধন্যবাদ আপনাকে ইমেল বা স্নিকার্নেটের মাধ্যমে পরিবর্তনের বান্ডিল প্রেরণ করেও পাবলিক ভান্ডার না করেও এই প্রক্রিয়াটি ব্যবহার করতে পারেন। গিটহাবের মতো কিছু গিট হোস্টিং সাইটের আপনার প্রকল্পে কেউ কাজ করছে (কোনও কাজ প্রকাশিত হয়েছে) তা জানানোর জন্য সমর্থন রয়েছে (শর্তিত যে তিনি একই গিট হোস্টিং সাইট ব্যবহার করেন), এবং প্রধানমন্ত্রীকে এক ধরণের পুল অনুরোধ করার জন্য।
প্রধান বিকাশকারী , অর্থাৎ এমন কেউ যিনি সরাসরি তার পরিবর্তনগুলি প্রকাশ করেন (প্রধান / নীতিগত ভাণ্ডারে)। এই বিষয়শ্রেণীতে, বিতরণ সংস্করণ নিয়ন্ত্রণ সিস্টেমের জন্য বৃহত্তর হিসাবে কেন্দ্রিয় সংগ্রহস্থলের লেখার অ্যাক্সেস সঙ্গে একাধিক বিকাশকারীদের হচ্ছে না শুধুমাত্র সম্ভব কর্মপ্রবাহ আছে (আপনি একক রক্ষণাবেক্ষণকারী যারা থাকতে পারে পাহাড় জমে ক্যানোনিকাল সংগ্রহস্থলের পরিবর্তনগুলি সঙ্গীকে একটি সেট / সাব-সিস্টেম রক্ষণাবেক্ষণকারীকে যা থেকে তিনি / সে টানুন, এবং পাতার বিকাশকারীদের বিস্তৃত পরিসীমা যারা মেইলের মাধ্যমে প্যাচগুলি মেইনটেনার / প্রজেক্ট মেলিংয়ের তালিকায় বা লেফটেন্যান্ট / সাবমেটেইনারের একজনকে প্রেরণ করেন)
গিটের সাথে আপনার পরিবর্তনগুলি প্রকাশের জন্য এসএসএইচ প্রোটোকল (এসএসএইচে জড়িত গিট প্রোটোকল), যেমন "গিট শেল" ( সুরক্ষায় সহায়তা করতে, শেল অ্যাকাউন্টগুলির অ্যাক্সেস সীমাবদ্ধ রাখতে ) বা গিটোসিসের (আলাদা শেল অ্যাকাউন্টগুলির প্রয়োজন ছাড়াই অ্যাক্সেস পরিচালনা করার জন্য) ব্যবহারের পছন্দ রয়েছে ), এবং HTTPS দ্বারা অম্রো সাধারণ HTTP প্রমাণীকরণের সাথে।
সিভিএসের সাথে কাস্টম আনইনক্রিপ্টড (প্লেইন টেক্সট) পার্সার প্রোটোকল বা আপনার পরিবর্তনগুলি প্রকাশের জন্য রিমোট শেল (যেখানে আপনার সত্যিকারের এসএসএইচ ব্যবহার করা উচিত ) এর মধ্যে একটি পছন্দ রয়েছে , যা কেন্দ্রিয়ায়িত সংস্করণ নিয়ন্ত্রণ ব্যবস্থার জন্য আপনার পরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ (কমিট তৈরি করা) বোঝায়। ঠিক আছে, আপনি এসএসএইচ ব্যবহার করে 'পার্সার' প্রোটোকলটি সুড়ঙ্গ করতে পারেন, এবং এটি স্বয়ংক্রিয়রূপে তাদের পক্ষের পক্ষের সরঞ্জামগুলি রয়েছে ... তবে আমি মনে করি না এটি যেমন গিটোসিসের মতো সহজ।
গিটের মতো সাধারণ বিতরণকৃত সংস্করণ নিয়ন্ত্রণ ব্যবস্থাগুলিতে সম্ভাব্য ওয়ার্কফ্লোগুলির বিস্তৃত নির্বাচন সরবরাহ করে। কেন্দ্রিয় সংস্করণ নিয়ন্ত্রণ ব্যবস্থা, যেমন সিভিএসের সাহায্যে আপনার প্রয়োজন অনুসারে ভান্ডারগুলিতে অ্যাক্সেসপ্রাপ্ত লোকদের মধ্যে এবং পার্থক্য নেই ... এবং সিভিএস বিনা লোকের কাছ থেকে অবদান (প্যাচগুলির মাধ্যমে) গ্রহণে সহায়তা করার জন্য কোনও সরঞ্জাম সরবরাহ করে না অ্যাক্সেস প্রতিশ্রুতিবদ্ধ।