مقاله :: source controlها قسمت دوم: انواع سورس کنترل ها و خصوصیات هرکدام از آنها
درخواست های ارتباط
جستجو
لیست دوستان من
صندوق پیام
همه را دیدم
  • در حال دریافت لیست پیام ها
صندوق پیام
رویدادها
همه را دیدم
  • در حال دریافت لیست رویدادها
همه رویدادهای من
تخفیف های وب سایت
همه تخفیف ها

عضویت در

کانال تلگرام

توسینسو

اطلاعات مطلب
مدرس/نویسنده
مهدی عادلی فر
امتیاز: 152684
رتبه:5
140
197
294
1521
مهدی عادلی، بنیان گذار TOSINSO. کارشناس ارشد نرم افزار کامپیوتر از دانشگاه صنعتی امیرکبیر و #C و جاوا و اندروید کار می کنم. در زمینه های موبایل و وب و ویندوز فعالیت دارم و به طراحی نرم افزار و اصول مهندسی نرم افزار علاقه مندم. پروفایل کاربر

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

تاریخ 22 ماه قبل
نظرات 0
بازدیدها 512
سلام به 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
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.
برچسب ها
ردیف عنوان
1 Source control ها قسمت اول: معرفی source controlها و لزوم استفاده از آنها
2 source controlها قسمت دوم: انواع سورس کنترل ها و خصوصیات هرکدام از آنها
3 Source control ها قسمت سوم: عملیات عمومی سورس کنترل Git
4 Source control ها قسمت چهارم: عملیات عمومی سورس کنترل TFS
دوره مجموعه کل دوره
مطالب مرتبط

در حال دریافت اطلاعات

نظرات
هیچ نظری ارسال نشده است

    برای ارسال نظر ابتدا به سایت وارد شوید