[h=1][/h] امروزه تقریبا هر پروژه حتی نسبتا کوچکی هم از یک سیستم کنترل ورژن بهره می بره. مدت ها بود که از سیستم SVN برای کنترل ورژن برنامه هام استفاده می کردم و خیلی از عملکردش هم راضی بودم. اما مدتی پیش که با سیستم Mercurial آشنا شدم، خیلی سریع با چند دقیقه مطالعه قانع شدم که با این سیستم خیلی راحتتر و تمیزتر می تونم روی برنامه هام کنترل داشته باشم. مزایای سیستم Mercurial، از دید من: عدم وجود فولدرها و فایلهای svn در همه جای پروژه: برای من همیشه آزار دهنده بود که برای ایجاد و یا خروجی گرفتن از یک پروژه تحت کنترل ورژن Svn، باید از Import یا Export استفاده کنم. در سیستم Mercurial، شما یک فولدر با نام hg. و یک فایل با نام hgIgnore. در ریشه پروژه دارید. همین! امکان ایجاد Conflict های کمتر: به علت روش خاصی که Mercurial برای نگهداری Commit های شما استفاده می کنه، (در واقع میشه اون رو به نوعی شبیه به حافظه تصویری دونست) امکان ایجاد Conflict به نسبت سیستم SVN کمتر میشه. امکان Commit های یکجا: با سیستم Mercurial این امکان وجود داره که به یک Repository روی سیستم خود، Commit کرد و با یک بار اتصال به اینترنت، تمام Commit ها یا Commit های مورد نظرتون (یک مزیت دیگه!) رو به مخزن اصلی انتقال داد. مزایای Mercurial نسبت به GIT: به علت اینکه در مورد GIT اطلاعات زیادی ندارم، به اطلاعاتی که شرکت Google در این آدرس داده اکتفا می کنم: GIT، به علت وجود امکانات و فرمانهای بیشتر سطح یادگیری دشوارتری داره. راهنماهای Mercurial به نظر کاملتر از GIT هستند. GIT، وابستگی زیادی به Linux نشون میده. راه رسمی راه اندازی اون تحت لینوکس، استفاده از cygwin هست که خیلی با یک نرم افزار خوب تحت ویندوز فاصله داره. Mercurial، تحت Python نوشته شده و براحتی تحت ویندوز، لینوکس، Max OS X و … اجرا میشه. (البته باید اشاره کنم بنا بر اطلاعات من، با اومدن msysGit، این مساله برطرف شده) GIT یک سیستم بسیار قدرتمند هست و شما می تونید هر کاری که بخواهید رو با اون انجام بدید. اما این مساله می تونه خطرناک هم باشه. به عنوان مثال، استفاده از git-push –force می تونه باعث از دست دادن revision های موجود در مخزن بشه. در حالیکه سیستم Mercurial حالتی پشته ای داره. [h=4]راهنمای استفاده از سیستم Mercurial در CodePlex:[/h] سایت CodePlex، علاوه بر SVN، اجازه استفاده از سیستم Mercurial رو هم به شما میده. برای ایجاد پروژه جدید تحت سیستم کنترل ورژن Mercurial، مطالب زیر رو مطالعه کنید: اگر تا الان از سیستم کنترل ورژن SVN استفاده می کردید، لطفا تفاوت های زیر رو در نظر داشته باشید: در سیستم Mercurial، شما ابتدا یک کپی (Clone) از مخزن کد به صورت محلی (Locally) تهیه می کنید. این کپی شامل سورس برنامه + کل تاریخچه Commit های شما هست. در حقیقت، شما از هر چیزی که در سایت CodePlex می بینید، یک کپی روی سیستم خودتون تهیه می کنید. “Check In” کردن شما، یعنی در حقیقت Commit کردن به همان Local Repository (یا مخزن موجود روی سیستم خود شما). بعد از یک یا چند با Check In کردن، شما می تونید تغییراتتون رو Push کنید. یعنی تغییرات مورد نظرتون رو روی مخزن اصلیِ روی CodePlex اِعمال کنید. بنابراین، هر شخصی می تونه یک Clone از مخزن روی CodePlex تهیه کنه، تغییراتش رو روی Local Repository اِعمال کنه (Commit) و همینطور تمامی تغییرات رو یکجا از مخزن اصلی دریافت کنه (به این عمل Pull گفته میشه). اما فقط اعضای تیم پروژه هستند که می تونن تغییرات رو Push کنند روی مخزن اصلی در CodePlex. برای اینکه مشخص کنید چه فایلهایی رو نمی خواید در سیستم کنترل ورژن داشته باشید، می تونید از فایل hgIgnore. استفاده کنید. شما هم می تونید از Regex استفاده کنید و هم به طور کلی (Glob) مشخص کنید که چه الگوهایی نباید در سیستم کنترل ورژن قرار بگیرند. برای استفاده از سیستم Mercurial: برنامه های TortoiseHg (مشابه TortoiseSVN برای سیستم Mercurial) و VisualHG (مشابه VisualSVN برای Mercurial) رو دریافت و نصب کنید. اگر تمایل دارید سیستم Mercurial رو به صورت سیستم کنترل ورژن پیش فرض روی ویژوال استودیو داشته باشید: ویژوال استودیو رو باز کنید، گزینه های Tools->Options رو انتخاب کنید. مطمئن بشید که گزینه Show All Settings، تیک خورده. از سمت چپ، گزینه Source Control رو انتخاب کنید و از لیست موجود، گزینه VisualHG رو انتخاب کنید. حالا در صورتیکه پروژه ای رو که تحت سیستم کنترل ورژن Mercurial هست در ویژوال استودیو باز کنید، می تونید از داخل ویژوال استودیو، کنترل کاملی روی نسخه در حال کارتون داشته باشید. یک پروژه جدید در CodePlex ایجاد کنید. (اول عضو بشید، بعد Login کنید و به صفحه اصلی رفته و گزینه Create New Project رو انتخاب کنید. در قسمت Source Control، گزینه Mercurial رو انتخاب کنید. بقیه قسمتها و مراحل رو به دلخواه پر کنید. بعد از اتمام، به صفحه اصلی پروژه ایجاد شده برید و به قسمت Source Code رفته و روی گزینه Mercurial در قسمت Source Code کلیک کنید. مقدار Clone URL رو کپی کنید. روی سیستم خودتون یک فولدر خالی ایجاد کنید.داخل فولدر شده و کلیک راست کنید. از منوی TortoiseHG، گزینه Clone رو انتخاب کنید. در قسمت Source Path، آدرس Clone URL که کپی کرده بودید رو وارد کنید. بعد از اتمام، می بینید که در فولدر شما، یک فولدر با نام hg. ایجاد شده. به این فولدر دست نزنید. حالا می تونید فایها و فولدرهاتون رو بدون هیچ عمل دیگهای صرفا با کپی کردن اضافه کنید. بعد از اتمام کپی، کلیک راست کنید و روی گزینه Hg Commit کلیک کنید. فایلهایی رو که می خواهید Commit کنید انتخاب کنید و روی دکمه Commit کلیک کنید. با این کار، تغییرات شما روی Local Repository، اِعمال میشند. با کلیک راست بر روی هر فایلی و انتخاب گزینه Ignore، صفحه جدید باز میشه که می تونید از طریق اون، مشخص کنید چه الگوهایی برای اضافه شدن به سیستم مورد نظر شما نیستند. مرحله آخر، انتقال این فایلها به مخزن CodePlex هست. یک جای خالی کلیک راست کنید و گزینه Hg Workbench رو انتخاب کنید. در این صفحه می تونید روی گزینه Push کلیک کنید تا اطلاعاتتون به مخزن اصلی در CodePlex منتقل شه. در مقالات بعدی در مورد استفاده های Mercurial، استفاده از ویژگی ایجاد Fork و مطالب جالب دیگه در این زمینه صحبت خواهم کرد. به نقل از Devzone.ir