آموزش سورس کنترل (Source Control) قسمت 2 : انواع SC و ویژگی ها

سلام به ITPRO های عزیز. در مقاله قبلی درمورد لزوم استفاده از سورس کنترل ها صحبت شد. حال به ادامه بحث در مورد سورس کنترل ها می پردازیم. در کار های تیمی معمولا سورس کنترل را بر روی یک سرور راه اندازی می کنند و همه ماشین ها و برنامه نویسان به آن متصل می شوند و سورس برنامه را از آن دریافت می کنند.


انواع source control ها (version control System)

سورس کنترل ها انواع مختلفی دارند. و این دسته بندی به نوع پیاده سازی سورس کنترل ها بستگی دارد. سورس کنترل ها را به دو نوع اصلی تقسیم بندی می کنیم. سورس کنترل های متمرکز و سورس کنترل های توزیع شده. این تقسیم بندی بر اساس نحوه نگهداری و مدیریت سورس می باشد.


ورژن کنترل های محلی ( Local version control System)

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


Source control های متمرکز (Centralized Version Control Systems)

source controlها قسمت دوم: انواع سورس کنترل ها و خصوصیات هرکدام از آنها

در این نوع سورس کنترل ها یک سرور اصلی وجود دارد که داده های متادیتا و مدیریتی در مورد سورس ها در آن نگهداری می شود و هر برنامه نویسی که درخواست سورس را بدهد پروژه یا قسمتی از پروژه که برای او وجود ندارد یا ورژن آن قدیمی است برای او ارسال می شود. ولی هیچ داده مدیریتی برای او ارسال نمی شود و همه داده های مدیریتی و ورژن های قدیمی و تاریخچه بر روی سرور نگهداری می شود. برای مثال TFS یک سورس کنترل متمرکز است. این نوع سورس کنترل کمک بسیاری به برنامه نویسی می کند.

همچنین قابلیت‌های ویژه ای مانند single checkout را نیز ارائه می‌دهد. به عمل گرفتن سورس از سرور سورس کنترل checkout می‌گوییم. حال single checkout به این معنی است که اجازه دهیم که در یک زمان تنها یک کاربر بر روی یک فایل کار کند. یعنی وقتی که یک کاربر در حال کار بر روی یک فایل از پروژه است آن فایل برای برنامه نویسان و کاربران دیگر در حالت قفل باشد تا وقتی که برنامه نویسی که بر روی فایل مورد نظر کار می‌کرد کار خود را به اتمام برساند و تغییرات را check in کند. به اعمال تغییرات انجام شده بر روی سرور check in می گوییم.

این قابلیت در TFS یا SVN وجود دارد. زیرا که آن‌ها از نوع سورس کنترل متمرکز می‌باشند. یکی از مشکلاتی که این نوع version control ها دارند این است که یک نقطه مرکزی دارند. حال اگر سرور سورس کنترل به هر دلیلی از کار بیفتد عملاً سورس کنترل دیگر کارایی ندارد و نمی‌توان از آن استفاده کرد و در این حالت اگر کاربر بخواهد فایلی را از سورس کنترل checkout کند یا بخواهد فایلی را check in کند نمی‌تواند این کار را بکند و در‌واقع تیم بیکار می شود.

سیستم های کنترل سورس توزیع شده (Distributed Version Control Systems)

source controlها قسمت دوم: انواع سورس کنترل ها و خصوصیات هرکدام از آنها

برای حل مشکلاتی که برای سورس کنترل های متمرکز گفتیم سورس کنترل های توزیع شده به وجود آمدند. از سورس کنترل هایی که توزیع شده هستند می‌توان Git , Mercurial, Bazaar ,Darcs را نام برد. دراین نوع سورس کنترل ها وقتی که برنامه نویسان عمل checkout را انجام می‌دهند فقط سورس پروژه را دریافت نمی‌کنند بلکه یک کپی آینه وار از کل فایل‌ها دریافت می‌کنند هم فایل‌های پروژه و هم فایل‌های مدیریتی سورس کنترل و تاریخچه پروژه را دریافت می کنند.

با این کار اگر حتی سرور اصلی سورس کنترل هم از کار بیفتد و یا از بین برود باز مشکلی پیش نمی‌آید زیرا که همه کلاینت ها یک کپی از کل فایل‌ها دارند و در صورت بروز مشکل یکی از این نسخه ها جایگزین نسخه سرور شوند. یکی از قابلیت‌هایی که در این سیستم‌های سورس کنترل وجود دارد این است که کلاینت ها را می‌توان در گروه‌های مختلف قرار داد که همزمان با هم بر روی پروژه کار کنند. معروف ترین سورس کنترل توزیع شده Git می باشد.

git یک سورس کنترل اوپن سورس است که می توان آن را به راحتی بر روی یک سیستم معمولی هم راه اندازی کرد. git با ابزار های برنامه نویسی بسیاری سازگار است برای مثال اگر شما جاوا کار می کنید نرم افزار intellij خود به صورت درونی گیت را پشتیبانی می کند و می تواند به راحتی و به طور کامل با آن ارتباط داشته باشد. و یا اگر شما با تکنولوژی دات نت کار می کنید در ویژوال استودیو 2015 به بعد به صورت درونی گیت برای کنترل پروژه قرار داده شده است. به شکلی که وقتی شما یک پروژه را می سازید خود ويژوال استودیو برای آن یک گیت محلی در نظر می گیرد.

با همه این حالات اگر شما بخواهید فایل های خود را خارج از محیط IDE در گیت قرار دهید و با یک سرور گیت ارتباط داشته باشید نیز می توانید از انواع متنوع ابزار های ویژوال و کنسولی استفاده کنید. البته رابط اصلی گیت کنسول است و شما باید دستورات را تایپ نمایید ولی می توانید از ابزار های ویژوال نیز استفاده کنید. یک سرور معروف گیت که اوپن سورس نیز می باشد و پروژه های بسیاری بر روی آن قرار دارد گیت هاب (github) می باشد که پروژه های بسیاری بر روی آن قرار دارند. در این مطلب به انواع سورس کنترل ها پرداختیم. در مطلب بعدی بیشتر وارد سورس کنترل ها خواهیم شد و آنها را شرح می دهیم ITPRO باشید


نویسنده: مهدی عادلی فر
منبع: Itpro
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.
#سورس_کنترل_های_توزیع_شده #آموزش_گیت #آموزش_tfs #سورس_کنترل_های_متمرکز #استفاده_از_سورس_کنترل #برنامه_نویسی_تیمی #استفاده_از_version_control #انواع_سورس_کنترل
عنوان
1 آموزش سورس کنترل (Source Control) قسمت 1 : Source Control چیست؟ رایگان
2 آموزش سورس کنترل (Source Control) قسمت 2 : انواع SC و ویژگی ها رایگان
3 آموزش سورس کنترل (Source Control) قسمت 3 : عملیات عمومی در git رایگان
4 آموزش سورس کنترل (Source Control) قسمت 4 : عملیات عمومی در TFS رایگان
زمان و قیمت کل 0″ 0
0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....