سیستم کنترل ورژن (VCS) چیست؟
یکی از مهم ترین مفاهیم دنیای برنامه نویسی، سیستم کنترل ورژن نام دارد که برنامه نویسان باید با آن آشنایی داشته باشند. در ادامه این مطلب قصد داریم انواع سیستم های کنترل ورژن (VCS) را مورد بررسی قرار دهیم، پس با ما همراه باشید.
سیستم کنترل ورژن چیست؟
سیستم کنترل ورژن به انگلیسی Version Control System به سیستم هایی مدیریت فرآیندی گفته می شوند که تغییرات ثبت شده در یک یا مجموعه ای از فایل ها را در گذر زمان حفظ می کنند. هر تغییر به عنوان یک نسخه یا ورژن نگهداری خواهد شد و کاربران نیز می توانند در آینده به یک ورژن خاص دسترسی داشته باشند. یکی از محبوب ترین سیستم های کنترل ورژن گیت هاب است.
VCS در برخی اوقات با نام سیستم کنترل تجدید نظر (RCS) نیز شناخته می شود که به عنوان یک اپلیکیشن جداگانه و مستقل به فعالیت می پردازد. اپلیکیشن های Spreadsheet نظیر مایکروسافت اکسل و برنامه های واژه پرداز نظیر مایکروسافت وُرد مجهز به مکانیزم کنترل ورژن هستند. به طور کلی سیستم کنترل ورژن یا کنترل تجدید نظر دارای ویژگی های منحصر بفرد زیر هستند :
- با استفاده از این سیستم، تاریخچه به روز تمام مستندات و فایل ها در دسترس است.
- با استفاده از VCS به هیچ سیستم ذخیره سازی نیاز نخواهید داشت.
- مخازن موجود در این سیستم را می توان بر اساس نیاز شبیه سازی کرد. این قابلیت در شرایط حذف تصادفی و شکست بسیار کمک کننده است.
- کنترل ورژن شامل سیستم برچسب (Tag) است که در بازشناسی بین نسخه های آلفا، بتا و دیگر ورژن های منتشر شده اسناد مختلف بسیار موثر خواهد بود.
- برنامه نویسان می توانند با استفاده از این سیستم، تغییرات اعمال شده بر روی کدها را ردیابی کنند.
انواع مختلف سیستم ورژن کنترل
سیستم ورژن کنترل دارای 3 نوع مختلف است که در ادامه هر یک را مورد بررسی قرار خواهیم داد.
1- سیستم کنترل ورژن محلی (Local)
این نوع از سیستم کنترل ورژن امکان پیگیری فایل ها در سیستم های محلی (Local Systems) را در اختیار برنامه نویسان قرار می دهد. این رویکرد بسیار متداول و ساده است و در عین حال در معرض خطاهای بسیاری قرار دارد به گونه ای که احتمال نوشتن تصادفی فایل های اشتباه بسیار بالا خواهد بود.
2- سیستم کنترل ورژن متمرکز (Centralized)
در این نوع از سیستم ورژن کنترل، تمام تغییرات فایل ها تحت نظر یک سرور متمرکز پیگیری می شوند. این سرور متمرکز شامل اطلاعات فایل های ورژن شده و لیست کاربرانی است که فایل ها را از آن مکان مرکزی مورد بررسی قرار می دهند.
3- سیستم کنترل ورژن توزیع شده (Distributed)
سیستم کنترل ورژن توزیع شده برای رفع اشکالات نوع متمرکز وارد میدان شد. کاربران می توانند مخازن را به همراه سوابق کامل شبیه سازی کنند، اگر یک سرور به هر دلیلی از بین رود، هر کدام از مخارن کاربران را می توان در سرور کپی کرد که در بازیابی آن بسیار کمک کننده خواهد بود. در حقیقت هر نمونه شبیه سازی شده (Clone) به عنوان یک بک آپ کامل از کل دیتا به شمار می رود.
اطلاحات رایج سیستم کنترل ورژن
-
مخزن (Repository)
مخزن را می توان به عنوان قلب تپنده VCS در نظر گرفت. مخزن یک مکان مرکزی تعریف شده است که توسعه دهندگان یا برنامه نویسان در آن فعالیت کرده و کدهای خود را ذخیره می کنند، مخازن و همچنین تاریخچه کار آنها را نیز ذخیره خواهد کرد. در سیستم کنترل ورژن، مخازن از طریق یک شبکه قابل دسترس هستند؛ این شبکه همانند یک سرور و ابزار کنترل ورژن عمل می کنند. در برقراری یک ارتباط موفق، کاربران می توانند تغییرات خود را ذخیره یا بازیابی کنند.
-
صندوق (Trunk)
صندوق را می توان به عنوان یک دایرکتوری در نظر گرفت که تمام فرآیند توسعه در آن انجام می شود؛ تمام بررسی ها نیز توسط توسعه دهندگان صورت خواهد گرفت.
-
برچسب ها (Tags)
برچسب ها تصاویر کلی از یک پروژه در اختیار برنامه نویسان قرار می دهند. عملیات توسعه تگ ها به برنامه نویسان اجازه می دهد تا اسامی توصیفی و به یاد ماندنی را در نسخه های خاص موجود در مخازن نگهداری کنند.
-
شاخه ها (Branches)
شاخه های یک مخزن همانند شاخه های یک درخت هستند و عملیات ساخت شاخه ها یک نسخه از توسعه را شبیه سازی می کنند. در حقیقت زمانی که فرآیند توسعه منشعب (Fork) باشد، آنگاه می توان گفت که این فرآیند سودمند بوده است.
-
کپی در حال کار (Working Copy)
این اصطلاح در واقع یک تصویر کلی از مخزن است که توسعه دهندگان به صورت فعالانه بر روی آن کار می کنند و هر کدام دارای یک نسخه کپی در حال کار مخصوص به خود است و تغییرات آن در مخزن اصلی با یکدیگر ادغام خواهند شد. نسخه کپی در حال کار را می توان به عنوان یک محیط کار خصوصی در نظر گرفت که توسعه دهنگان فعالیت های خود را به صورت سیستماتیک و مستقل از دیگران در آن ذخیره خواهند کرد.
-
تغییرات کامیت (Commit Changes)
ارجاع کردن کدها (Committing) به فرآیند ذخیره سازی تغییرات از نسخه کپی در حال کار به سرور مرکزی گفته می شود. پس از ارجاع موفق، تغییرات در دسترس کل اعضای تیم قرار خواهد گرفت و بقیه توسعه دهندگان می توانند از طریق بازیابی این تغییرات، نسخه کپی خود را به روز رسانی کنند. کامیت یک عملیات تجزیه ناپذیر است به گونه ای که در نهایت به موفقیت یا عقبگرد ختم خواهد شد. همچنین توسعه دهندگان هرگز نمی توانند یک کامیت نیمه تمام را مشاهده کنند.
محبوب ترین ابزارهای سیستم های ورژن کنترل
1- ابزار SVN
ابزار SVN یا همان Apache Subversion یکی از کاربردی ترین نرم افزارهای ورژن کنترل محسوب می شود. این ابزار از نوع سیستم کنترل ورژن متمرکز و توزیع شده است که با مجوزهای منبع باز همکاری می کند.
2- ابزار Git
گیت یک سیستم کنترل ورژن توزیع شده به شمار می رود که با هدف تقویت عملکرد و سرعت طراحی شده است. این ابزار به صورت منبع باز در دسترس توسعه دهندگان قرار دارد و توسط تمام سیستم عامل های موجود پشتیبانی می شود.
3- ابزار Mercurial
نرم افزار Mercurial یک سیستم کنترل تجدید نظر توزیع شده است که به صورت رایگان و منبع باز در اختیار توسعه دهندگان قرار دارد. این ابزار به علت ویژگی های خاصی که دارد، همواره انتخاب اول توسعه دهندگان محسوب می شود. برخی از خصوصیات منحصربفرد این نرم افزار عبارتند از:
- یادگیری و استفاده بسیار آسان
- حجم بسیار کم
- مقیاس پذیری بسیار عالی
- سفارشی سازی ساده
خط فرمان و رابط کاربری ابزار Mercurial به سادگی قابل فهم است. قابلیت های این ابزار محدود به چند پروژه نیست بلکه ایجاد تغییرات و شاخه ها و اتصال آنها به شاخه اصلی، مهم ترین ویزگی آن به شمار می رود. علاوه بر این بهترین گزینه برای برنامه نویسی با زبان هایی مانند پایتون و PHP محسوب می شود.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.