ورژن کنترل سیستمی است که تغییرات روی یک یا چند فایل را بررسی می کند. یک پروژه نرم افزاری را تصور کنید. تعداد زیادی برنامه نویس فایلهایی را ایجاد می کنند، تغییر می دهند و حتی حذف می کنند! با بزرگ شدن پروژه، بررسی اینکه چه کسی، در چه زمانی و روی چه فایلی، چه تغییری داده است، کار دشواری خواهد بود!

حتی بدتر، اگر بخواهید تغییرات اعمال شده توسط یک برنامه نویس را روی نسخه اصلی اعمال کنید، بدون استفاده از ورژن کنترل کار دشواری خواهید داشت! ولی با استفاده از ورژن کنترل، هر یک از افراد تیم شما، یک کپی از سورس برنامه را خواهند داشت و هر زمان که لازم باشد می توان، آن نسخه را با نسخه اصلی نرم افزار ادغام (Merge) کرد.

آیا به Version Control نیاز دارید؟

فرض کنید میخواهید تغییری در سورس برنامه اعمال کنید ولی نمیدانید به درستی کار خواهد کرد یا خیر. راه حل اول این است که کد های فعلی را کامنت کنید! سپس تغییرات را اعمال کرده و اگر درست نبود، به راحتی کد های قبلی را (که کامنت کرده بودید) بر گردانید. با ورژن کنترل دیگر به این مدل کامنت کردن ها لازم ندارید! زیرا می توانید نسخه های مختلفی از سورس کد خود را داشته باشید و هر گاه کار به جا های باریک کشید! نسخه قبلی را بر گردانید.

ورژن کنترل برای همه!

ورژن کنترل فقط برای برنامه نویسان کاربرد ندارد. فرض کنید شما یک طراح گرافیک هستید! سفارشی جدید دریافت می کنید و آن را انجام میدهید. پس از تحویل به مشتری، از شما درخواست می شود تغییری در پروژه بدهید. آیا آن تغییر را روی نسخه فعلی انجام می دهید؟ قطعا خیر! چون ممکن است تغییر مناسب نباشد و بخواهید به نسخه قبل بر گردید. راه حل اول این است که یک کپی از فایل تهیه کنید و تغییرات را روی آن انجام دهید. بسیار خوب، راه حل مناسبی است. ولی اگر تعداد و حجم تغییرات زیاد بود چطور؟ اگر بخواهید دو مورد از تغییرات (که هر کدام در کپی جداگانه ای انجام شده اند) روی نسخه فعلی اعمال کنید چطور؟ کپی جدیدی ایجاد می کنید؟! ورژن کنترل به شما کمک می کند نسخه های مختلفی از یک یا چند فایل داشته باشید و هر زمان بخواهید می توانید به نسخه مورد نظر بروید.

به تصویر زیر توجه کنید:

Version Control

شاید تا الان برای داشتن نسخه های مختلف از یک فایل، آن را کپی و نام مناسبی برای آن انتخاب می کردیم. خیلی وقت ها به خاطر سپردن تغییرات اعمال شده در هر فایل سخت بود و آن را فراموش می کردیم. شاید برای بالا بردن دقت، هر فایل را فشرده می کردیم و به انتهای نام آن، تاریخ و شرح کوتاهی از تغییر را اضافه می کردیم. و … . اگر از این مدل نامگذاری ها خسته شده اید، پس به ورژن کنترل سلام کنید!

شاید بخواهیم روی یک فایل متنی کار کنیم. مثل یک کتاب یا سورس کد یک نرم افزار. اگر بخواهیم تغییرات دو نسخه مختلف را بررسی کنیم، با روش های قبلی تقریبا غیر ممکن بود. ولی با ورژن کنترل تغییرات به راحتی قابل بررسی هستند.

سیستم کنترل ورژن یا VCS (Version Control System) تمامی مشکلات مطرح شده در بالا را حل میکند.

حال میدانید VCS چیست و چه مشکلات بزرگی را حل می کند. در قسمت بعد با انواع ورژن کنترل ها آشنا خواهید شد.