সংস্করণ নিয়ন্ত্রণ সিস্টেমে রিপোজিটরি হল একটি ডাটা সংস্থানের গঠন, যা ফাইল বা ডিরেক্টরি স্ট্রাকচারের সেটের জন্য মেটাডেটা সঞ্চয় করে।[১] ব্যবহৃত সংস্করণ নিয়ন্ত্রণ ব্যবস্থা গিট বা মারকিউরিয়ালের মত, বা সাবভার্সন, সিভিএস বা পারফোর্সের মতো কেন্দ্রীভূত করা হয়েছে কিনা তার উপর নির্ভর করে, সংগ্রহস্থলে তথ্যের পুরো সেটটি প্রতিটি ব্যবহারকারীর সিস্টেমে নকল করা যেতে পারে বা একটি একক সার্ভারে রক্ষণাবেক্ষণ করা যেতে পারে।[২] একটি রিপোজিটরিতে যে মেটাডেটা থাকে তার মধ্যে অন্যান্য জিনিস ছাড়াও রয়েছে, রিপোজিটরিতে পরিবর্তনের ঐতিহাসিক রেকর্ড, কমিট অবজেক্টের সেট এবং কমিট অবজেক্টের রেফারেন্সের সেট, যেগুলোকে হেড (head) বলা হয়।
একটি রিপোজিটরির মূল উদ্দেশ্য হল ফাইলগুলির একটি সেট ও সেই ফাইলগুলিতে করা পরিবর্তনের ইতিহাস সংরক্ষণ করা।[৩] ঠিক কিভাবে প্রতিটি সংস্করণ নিয়ন্ত্রণ সিস্টেম সেই পরিবর্তনগুলিকে সঞ্চয় করে, যদিও তা ব্যাপকভাবে আলাদা হয়। উদাহরণ স্বরূপ, অতীতে সাবভার্সন ডাটাবেস ইনস্ট্যান্সের উপর নির্ভর করত কিন্তু তারপর থেকে সরাসরি ফাইল সিস্টেমে এর পরিবর্তনগুলি সংরক্ষণ করতে চলে গেছে।[৪] স্টোরেজ কৌশলগুলির এই পার্থক্যগুলি সাধারণত তাদের চাহিদার উপর নির্ভর করে বিভিন্ন দলের দ্বারা সংস্করণ নিয়ন্ত্রণের বিভিন্ন ব্যবহারের দিকে পরিচালিত করে।[৫]
সফটওয়্যার প্রকৌশলবিদ্যায় সংস্করণ নিয়ন্ত্রণ ব্যবস্থা ব্যবহার করা হয় ফাইলগুলির সেটের সংস্করণগুলির ট্র্যাক রাখতে, সাধারণত একাধিক ডেভেলপারদেরকে একটি প্রকল্পে সহযোগিতা করার অনুমতি দেওয়ার জন্য। রিপোজিটরি প্রকল্পের ফাইলগুলির ট্র্যাক রাখে, যা একটি চিত্রলেখ হিসাবে উপস্থাপিত হয়।
একটি বিতরণকৃত সংস্করণ নিয়ন্ত্রণ ব্যবস্থা কেন্দ্রীয় এবং শাখা রিপোজিটরির সমন্বয়ে গঠিত। সার্ভারে একটি কেন্দ্রীয় রিপোজিটরি বিদ্যমান। এটিতে পরিবর্তন করতে, একজন ডেভেলপার প্রথমে একটি শাখা ডিপোজিটরিতে কাজ করে এবং পূর্বে পরিবর্তনটি কমিট করতে এগিয়ে যায়।
কোড ফোর্জ একটি সংস্করণ নিয়ন্ত্রণ সিস্টেমের একটি ওয়েব ইন্টারফেস। একজন ব্যবহারকারী সাধারণত পৃষ্ঠাতেই রিপোজিটরি এবং সেগুলোর উপাদান ফাইলগুলি ব্রাউজ করতে পারেন।
যদিও ফোর্জগুলি প্রধানত সংস্করণ নিয়ন্ত্রণ ক্রিয়াকলাপগুলি সম্পাদন করতে ব্যবহৃত হয়, কিছু ফোর্জ ব্যবহারকারীদের একটি রিপোজিটরির উৎস কোড (যেমন এইচটিএমএল এবং জাভাস্ক্রিপ্ট, কিন্তু পিএইচপি নয়) আপলোড করে স্ট্যাটিক ওয়েব পৃষ্ঠাগুলি হোস্ট করার অনুমতি দেয়। এটি সাধারণত একটি সফটওয়্যার প্রকল্পের জন্য নথি বা একটি ল্যান্ডিং পাতা প্রদান করার জন্য করা হয়।
ওয়েব ডকুমেন্ট আপলোড করার জায়গা হিসাবে রিপোজিটরির ব্যবহার সংস্করণ নিয়ন্ত্রণকে একীভূত করার অনুমতি দেয়। পাশাপাশি দ্রুত সংস্করণ প্রকাশের অনুমতি দেয় কারণ এফটিপির মত প্রোটোকলের মাধ্যমে ফাইল আপলোড করার পরিবর্তে সংস্করণ নিয়ন্ত্রণ সিস্টেমের মাধ্যমে পরিবর্তনগুলি পুশ করা হয়।[৬]
এই ধরনের পরিষেবার উদাহরণগুলির মধ্যে রয়েছে গিটহাব পাতা এবং গিটল্যাব পাতা।