نرم افزار Altium Designer به عنوان قوی ترین نرم افزار طراحی انواع بردهای مدار چاپی دارای قابلیتی به نام ورژن کنترل ( Version Control ) می باشد. قابلیتی که شاید تاکنون از آن استفاده نکرده اید و یا حتی از وجود قابلیت های فوق العاده آن بی خبرید. در این آموزش می خواهیم شما را با این ویژگی نرم افزار آلتیوم دیزاینر و نحوه اضافه کردن آن به پروژه های این نرم افزار آشنا کنیم. پیش نیاز این مطلب مقاله زیر است که خواندن آن قبل از خواندن ادامه این مطلب توصیه می شود:
ورژن کنترل چیست و گیت چگونه به روند توسعه سریع محصولات الکترونیکی کمک می کند ؟
کاربرد ورژن کنترل در آلتیوم دیزاینر
یکی از بزرگترین نقات قوت موجود در محیط گرافیکی نرم افزارهای طراحی بردهای الکترونیکی، سهولت در ایجاد و اصلاح فایل ها است. یعنی بتوان روند رشد یک فایل شماتیک یا PCB را از زمان تولد ایده آن تا بلوغ پیگیری کرد. اما ذخیره کردن این تغییرات خصوصا در دیتای مربوط به طراحی های الکترونیکی دشوار است. راه حل این مشکل استفاده از سیستم های ورژن کنترل یا VCS ( مخفف Version Control System ) می باشد که روی انواع سیستم عامل ها نصب و با آن ادغام می شوند و عملیات ورژن بندی فایل ها و پوشه ها را انجام می دهند. سیستم های ورژن کنترل ابزارهای نرم افزاری هستند که نه تنها می توانند تاریخچه نسخه های مختلف سورس فایل ها را حفظ کنند، بلکه میتوان با استفاده از آن تمامی ورژن های پیشین را باز کرد و تغییرات ایجاد شده بین هر دو ورژن دلخواه را مشاهده کرد.
نرم افزار آلتیوم دیزاینر از کدام ورژن کنترل پشتیبانی می کند ؟
سیستم های ورژن کنترل می تواند به صورت کاملا مستقل از محیط گرافیکی نرم افزار های ایجاد و ویرایش فایل نظیر آلتیوم استفاده شود. آن ها معمولا با استفاده از خط فرمان به شما اجازه اضافه و ذخیره کردن فایل ها را به درون مخزن ( دیتابیس ) به نام ریپازیتوری ( Repository ) می دهند. بنابراین شما میتوانید با ابزارهای مجزایی که Git و SVN ارائه می دهند نظیر Git Bash و Tortoise SVN به طور جدا از نرم افزار آلتیوم دیزاینر کار کنید.
نرم افزار آلتیوم دیزاینر از سیستم های ورژن کنترل گیت ( Git ) و ساب ورژن ( Subversion ) پشتیبانی می کند. بخاطر پشتیبانی درون نرم افزاری از این سیستم های ورژن کنترل، دسترسی به دستورات معمول مدیریت سورس نظیر Commit ، Add و … به همراه قابلیت های اضافی Subversion نظیر ایجاد ریپازیتوری SVN درون نرم افزار آلتیوم دیزاینر فراهم شده است. در نتیجه به راحتی میتوان کلیه عملیات های مورد نیاز نظیر مقایسه میان سندهای شماتیک و PCB در دو ورژن مختلف را سریعا پیدا نمود و با استفاده از قابلیت Collaboration تعارضات میان دو ورژن حل کرد.
مقایسه ورژن کنترل Git و SVN
شکل زیر مفهوم سیستم ورژن کنترل SVN در نرم افزار آلتیوم دیزاینر را نشان می دهد که در آن پروژه اخیر ما در ورژن 5 به سر می برد و در ریپازیتوری ورژن کنترل، تمامی 5 ورژن ثبت و نگه داری شده است. ریپازیتوری SVN به علت Centralize بودن آن در مکان دیگری جدای از پوشه پروژه قرار دارد که از قسمت تنظیمات نرم افزار آلتیوم دیزاینر قابل انتخاب است. زمانی که یک پروژه در نرم افزار آلتیوم دیزاینر باز شود مخزن SVN آن به طور اتوماتیک شناسایی شده و در هر دو بخش Storage Manager Panel و Project Panel قابل مشاهده است.
شکل زیر مفهوم سیستم ورژن کنترل Git در نرم افزار آلتیوم دیزاینر را نشان می دهد که در آن به علت Distributed بودن گیت دو ریپازیتوری وجود دارد. یکی ریپازیتوری لوکال ( درون پوشه پروژه ) و دیگری ریموت ریپازیتوری اشتراکی که در هر دو آن ها تمامی 5 ورژن ثبت و نگه داری شده است. زمانی که یک پروژه در نرم افزار آلتیوم دیزاینر باز شود مخزن Git آن به طور اتوماتیک شناسایی شده و در هر دو بخش Storage Manager Panel و Project Panel قابل مشاهده است.
مخزن ذخیره اطلاعات سیستم های ورژن کنترل ( ریپازیتوری )، میتواند به دو صورت ریموت ریپازیتوری اشتراکی یا به صورت لوکال باشد. در شرکت های بزرگ که به صورت تیمی روی یک پروژه کار می کنند، معمولا از ریموت ریپازیتوری اشتراکی ( Remote shared repository ) استفاده می گردد و تمامی اعضا تیم توسط شبکه به آن متصل می شوند. برای Git ایجاد ریپازیتوری اشتراکی در خارج از نرم افزار آلتیوم دیزاینر انجام می شود. ریپازیتوری های آنلاین معروفی برای ساخت این ریموت ریپازیتوری های اشتراکی نظیر گیت هاب ( Github ) گیت لب ( Git lab ) و بیت باکت ( BitBucket ) وجود دارد که به راحتی میتوانید مخزن پروژه خود را در آن ها تعریف کنید و سپس نرم افزار آلتیوم دیزاینر را برای Push کردن به آن متصل نمایید. برای SVN ریپازیتوری های آنلاین معروفی نظیر SourceForge و VisualSVN وجود دارد که میتوانید به عنوان ریموت ریپازیتوری از آن ها استفاده کنید.
یکی دیگر از تفاوت های Git و SVN در هنگام ذخیره تغییرات در مخزن یا به اصطلاح کامیت کردن ( Commit ) می باشد. همانطور که در دو شکل اخیر هم قابل مشاهده می باشد، ورژن کنترل SVN برای کامیت کردن نیاز به اتصال به ریپازیتوری مرکزی دارد و در صورتی که به آن متصل نباشیم نمیتوان حتی تغییرات را ذخیره ( کامیت ) کرد اما در Git به علت این که دو ریپازیتوری وجود دارد، کامیت ها به راحتی ابتدا در ریپازیتوری لوکال ذخیره می شود و سپس هر زمان که به ریموت ریپازیتوری اشتراکی دسترسی داشتیم تغییرات را با دستور Push به آن ارسال می کنیم.
دسترسی به ورژن کنترل در نرم افزار آلتیوم دیزاینر
کار کردن با ورژن کنترل داخلی آلتیوم دیزاینر از طریق دو مسیر زیر امکان پذیر است :
View » Panels » Storage Manager
Project » Version Control
برای کنترل ورژن سورس پروژه های خود در نرم افزار آلتیوم دیزاینر چه از Git یا چه از SVN استفاده کنید نتیجه کار یکسان اما تنظیمات ریپازیتوری و روش ذخیره فایل ها متفاوت است. همچنین نرم افزار آلتیوم دیزاینر قابلیت مقایسه شماتیک و PCB دو ورژن مختلف ذخیره شده در نرم افزار ورژن کنترل را از طریق بخش Storage Manager می دهد. شکل زیر این پنجره را نشان می دهد:
وضعیت ورژن کنترل
همانطور که در شکل بالا هم قابل مشاهده است زمانی که ورژن کنترل وجود داشته باشد وضعیت هر فایل درون ورژن کنترل توسط نماد هایی نمایش داده می شود که این نمادها و معنی آن ها به صورت زیر است :
بدون نماد | این فایل به ورژن کنترل اضافه نشده است و نمادی ندارد. | |
No modification | این فایل با آخرین فایل موجود در ریپازیتوری منطبق است. | |
Scheduled for Addition | این فایل به ورژن کنترل اضافه شده است اما هنوز هیچ کامیتی صورت نگرفته و در نتیجه فایل در ریپازیتوری ذخیره نشده است. | |
Modified | این فایل که از قبل در ریپازیتوری کامیت شده بود تغییر کرده است و برای ذخیره تغییرات در ریپازیتوری بایستی مجددا آن را کامیت کرد. | |
Out of date | این فایل که در پوشه لوکال قرار دارد از ورژن کنونی ذخیره شده در ریپازیتوری اشتراکی عقب تر است و برای دریافت آخرین ورژن بایستی Update شود. | |
Conflict | تغییرات این فایل قبل از اینکه توسط شما کامیت شود، توسط شخص دیگری کامیت شده است و بایستی از یکی از گزینه های Update, Revert, Resolve جهت حل تعارض بوجود آمده استفاده شود. | |
Ahead of server (Git) | این فایل که در پوشه لوکال قرار دارد از آخرین ورژنی که در ریپازیتوری گیت وجود دارد جلوتر است و برای اعمال تغییرات به ریپازیتوری بایستی Push شود. | |
Scheduled for Deletion | این فایل از پیگیری ورژن کنترل حذف شده است و در کامیت بعدی از ورژن کنترل پاک خواهد شد. همچنین زمانی که این فایل از پوشه لوکال دچار تغییرنام، جابجایی یا حذف شدگی شده باشد این نماد نشان داده می شود که با دستور Update حل می شود. | |
Locked | این فایل توسط خود شخص یا شخص دیگری قفل شده است و ورژن کنترل نمی تواند آن را در صورت تغییر ذخیره کند مگر اینکه از حالت قفل خارج شود |
دیدگاهتان را بنویسید