معرفی
Mercurial یک سامانه کنترل نسخه توزیعشده است که تغییرات فایلهای پروژه را ثبت میکند. هر توسعهدهنده میتواند نسخهای محلی و کامل از مخزن و تاریخچه آن داشته باشد. به همین دلیل، ثبت تغییرات و بررسی تاریخچه به اتصال دائمی به سرور نیاز ندارد. مستندات رسمی Mercurial این مدل کار و فرمانهای آن را توضیح میدهد: مستندات Mercurial.
برای کار با Mercurial از رابط خط فرمان hg استفاده میشود. برای نمونه، فرمان hg clone نسخهای محلی از مخزن ایجاد میکند، hg commit تغییرات را در تاریخچه محلی ثبت میکند و hg pull تغییرات مخزن راهدور را دریافت میکند. جزئیات این فرمانها در راهنمای رسمی hg آمده است. راهنمای hg.
مفاهیمی مانند مخزن، شاخه، ادغام و همگامسازی در Mercurial و Git مشترکاند، اما فرمانها و برخی روشهای کار با آنها تفاوت دارند. Subversion نیز یک ابزار کنترل نسخه است که برخلاف Mercurial و Git، عمدتا بر پایه مدل مخزن مرکزی کار میکند. Mercurial در پروژههایی مانند مخزن mozilla-central بهکار رفته است.
برای شروع یادگیری کنترل نسخه، Git میتواند انتخاب عملیتری باشد. البته این پیشنهاد با توجه به وضعیت بازار کار ایران مطرح میشود و بهتر است آن را با آگهیهای شغلی و ابزارهای مورد استفاده در پروژههای مدنظر خود تطبیق دهید. یادگیری Mercurial زمانی اولویت پیدا میکند که قصد همکاری با تیم یا مشارکت در پروژهای را داشته باشید که از این ابزار استفاده میکند.
ویژگیهای کلیدی
برای آشنایی بهتر با این ابزار، توجه به موارد زیر میتواند مفید باشد.
-
کنترل نسخه توزیعشده
هر clone، یعنی نسخه محلی مخزن، تاریخچه پروژه را دارد. ثبت تغییرات و مشاهده تاریخچه میتواند بدون اتصال به سرور انجام شود.
-
رابط خط فرمان hg
فرمانهایی مانند hg clone، hg commit، hg pull و hg merge عملیات روزمره دریافت کد، ثبت تغییرات، همگامسازی و ادغام را انجام میدهند.
-
مدیریت تغییرات و ادغام
Mercurial اختلاف میان نسخهها را نمایش میدهد و برای ادغام تغییرات شاخهها و رسیدگی به تعارضها فرمان و ابزار ارائه میکند.
-
پشتیبانی از افزونهها
برخی قابلیتها با افزونهها فعال میشوند؛ برای مثال bookmark یک نشانگر سبک برای اشاره به یک تغییر ثبتشده در تاریخچه است.
-
دریافت گزینشی فایلها
افزونه sparse امکان sparse checkout، یعنی محدود کردن فایلهای دریافتشده در نسخه محلی، را برای مخزنهای بزرگ فراهم میکند.
کاربردها
در ادامه، مهمترین موارد این بخش به تفکیک معرفی شدهاند.
-
همکاری در پروژهای با مخزن Mercurial
اگر کد منبع سازمان یا پروژه متنباز با Mercurial نگهداری میشود، برای دریافت کد، ثبت تغییرات، ارسال patch و ادغام کار اعضای تیم به آن نیاز دارید. patch فایل یا مجموعهای از تغییرات قابلارسال است.
-
نگهداری پروژههای قدیمی
تیمهایی که فرایند توسعه و مخزنهای خود را بر پایه Mercurial ساختهاند، ممکن است برای ادامه نگهداری پروژه از همان ابزار استفاده کنند.
-
کار آفلاین روی تغییرات
توسعهدهنده میتواند در نسخه محلی commit بسازد و تاریخچه را بررسی کند، سپس پس از دسترسی به سرور تغییرات را همگامسازی کند.
ابزارهای جایگزین
اگر این ابزار پاسخگوی نیاز شما نبود، گزینههای زیر را بررسی کنید.
پرسشهای رایج درباره Mercurial
اگر درباره این ابزار پرسشی دارید، ممکن است پاسخ آن را در میان موارد زیر پیدا کنید.
آیا Mercurial همان Git است؟
خیر. هر دو سامانه کنترل نسخه توزیعشده هستند و مفاهیم مشترکی دارند، اما فرمانها، جریانهای کاری و اکوسیستم آنها یکسان نیست.
برای ورود به بازار کار ایران Mercurial یاد بگیرم یا Git؟
اگر هنوز کنترل نسخه یاد نگرفتهاید، Git معمولاً نقطه شروع عملیتری است. Mercurial را وقتی یاد بگیرید که آگهی، پروژه آموزشی، تیم یا مخزن هدف شما مشخصاً از آن استفاده میکند.
دستور اصلی Mercurial چیست؟
بیشتر فرمانهای Mercurial با hg آغاز میشوند؛ برای نمونه hg status وضعیت فایلها را نشان میدهد و hg commit تغییرات انتخابشده را ثبت میکند.
آیا میتوان مخزن Mercurial را به Git منتقل کرد؟
بله. پیش از مهاجرت، تاریخچه، شاخهها، برچسبها، فایلهای نادیدهگرفتهشده و فرایند همکاری تیم را در یک نسخه آزمایشی بررسی کنید. مستندات رسمی Mercurial راهنمای افزونه convert را ارائه میدهد.