کنترل نسخه یا کنترل منبع ( به انگلیسی: Revision control ) عبارت است از سیستمی برای کنترل و پی گیری تغییرات واحد اطلاعاتی دخیل در ایجاد یک برنامهٔ نرم افزاری. واحد اطلاعاتی مزبور می تواند شامل فایل های سورس، راهنماها، میک فایل ها، اشیاء نرم افزاری و . . . سورس کنترل به خصوص در جایی اهمیت پیدا می کند که چند برنامه نویس بخواهند روی منابع مشترکی کار کنند. در این صورت است که مفاهیمی همانند مقایسه، ترکیب، تداخل و . . . پیش می آیند که سورس کنترل باید بتواند راه حل مناسبی برای هر یک ارائه دهد. امروزه معمولاً از ابزارهای نرم افزاری برای این کار استفاده می شود. با این حال هنوز هم هستند شرکتهایی که از روش های قدیمی مانند داشتن یک فایل متن در هر پوشه، هارد کپی و . . . استفاده می نمایند.
نرم افزارهای مدیریت کد به ۲ دستهٔ distributed و centeralized تقسیم می شوند:[ ۱]
Centeralized: مانند Subversion ( svn ) / CVS که در این دسته نرم افزار یک server و تعدادی client وجود دارد. به این صورت که تمامی تغییرات در server ذخیره می شود و کاربران ( برنامه نویس ها ) با استفاده از client تغییرات جدید را اعمال/دریافت می کنند.
Distributed: مانند GIT / Bazaar در این دسته server حذف شده است و هر فرد می تواند یک server باشد و تاریخچهٔ کامل را در اختیار دارد. در این دسته تغییرات می تواند بدون در اختیار داشتن ارتباط انجام شود.
از آن جایی که SCMها کار واحدی انجام می دهند و بخش های اصلی آن ها نیز یکسان است می توان انتظار داشت که عملیات واحدی نیز انجام دهند.
• init: ساخت مخزن جدید برای ذخیرهٔ تغییرات در آن.
• checkout / pull / fetch: دریافت اطلاعات از مخزن و ساخت working tree.
• switch branch: جا به جایی میان شاخه های مختلف توسعه.
• add / delete / rename: انجام تغییرات روی پرونده هایی که SCM آن ها را پیگیری می کند.
• commit: ذخیرهٔ دسته ای از تغییرات که ممکن است در پرونده های مختلف باشد.
• status: نمایش وضعیت کنونی پرونده های پروژه.
• diff: نمایش تغییرات انجام شده.
• log: نمایش تاریخچهٔ تغییرات.
دستورهای فوق معمولاً در این نرم افزارها یکسان هستند برای نمونه در هر دو نرم افزار آپاچی ساب ورژن و گیت دستور log وجود دارد و به صورت[ ۲] svn log و[ ۳] git log مورد استفاده قرار می گیرد.
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلفنرم افزارهای مدیریت کد به ۲ دستهٔ distributed و centeralized تقسیم می شوند:[ ۱]
Centeralized: مانند Subversion ( svn ) / CVS که در این دسته نرم افزار یک server و تعدادی client وجود دارد. به این صورت که تمامی تغییرات در server ذخیره می شود و کاربران ( برنامه نویس ها ) با استفاده از client تغییرات جدید را اعمال/دریافت می کنند.
Distributed: مانند GIT / Bazaar در این دسته server حذف شده است و هر فرد می تواند یک server باشد و تاریخچهٔ کامل را در اختیار دارد. در این دسته تغییرات می تواند بدون در اختیار داشتن ارتباط انجام شود.
از آن جایی که SCMها کار واحدی انجام می دهند و بخش های اصلی آن ها نیز یکسان است می توان انتظار داشت که عملیات واحدی نیز انجام دهند.
• init: ساخت مخزن جدید برای ذخیرهٔ تغییرات در آن.
• checkout / pull / fetch: دریافت اطلاعات از مخزن و ساخت working tree.
• switch branch: جا به جایی میان شاخه های مختلف توسعه.
• add / delete / rename: انجام تغییرات روی پرونده هایی که SCM آن ها را پیگیری می کند.
• commit: ذخیرهٔ دسته ای از تغییرات که ممکن است در پرونده های مختلف باشد.
• status: نمایش وضعیت کنونی پرونده های پروژه.
• diff: نمایش تغییرات انجام شده.
• log: نمایش تاریخچهٔ تغییرات.
دستورهای فوق معمولاً در این نرم افزارها یکسان هستند برای نمونه در هر دو نرم افزار آپاچی ساب ورژن و گیت دستور log وجود دارد و به صورت[ ۲] svn log و[ ۳] git log مورد استفاده قرار می گیرد.
wiki: کنترل نسخه