۱۳۸۹/۰۲/۲۷

برنامه کنترل بازبینی Mercurial

در ابتدا سالروز شهادت حضرت فاطمهٔ زهرا (سلام الله علیها) را تسلیت عرض می‌کنم.

من مدتی است که از SVN برای نگهداری تاریخچه تغییرات برخی فایلهایم استفاده می‌کنم. قبلاً در این پست در مورد مشکل جابجايی Repository این برنامه نوشته بودم. اخیراً آقای خلیقی مرا با Mercurial که یک Revision Control Software توزیع شده است آشنا کرده است. SVN و Mercurial تفاوتهایی دارند که شاید مهمترین آن متمرکز بودن اولی و توزیع شده بودن دومی باشد. (برای مقایسهٔ برنامه‌های مختلف کنترل نسخه و منجمله این دو برنامه این صفحه از ویکی‌پدیا را ببینید).

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

و اما لینکهای دانلود: این Mercurial و این هم رابط گرافیکی آن.
همچنین سایت Bitbucket به صورت رایگان میزبان فایلهای شماست که دسترسی با فایلهایتان از هر جایی را میسر می‌سازد. به عنوان نمونه می‌توانید فایلهای مربوط به استیلهای فارسی مراجع در زی‌پرشین را در این قسمت از Bitbucket ببینید.

یک توضیح مختصر برای شروع به کار:
اگر رابط کاربری آنرا هم نصب کرده باشید خیلی راحت است. روی شاخه محتوی فایلهای پروژهٔ خود (مثلا myProject) ، کلیک راست کرده، از منوی TortiseHG گزینه Create Repository Here را انتخب می‌کنید. حال فایلهایی از این شاخه که می‌خواهید کنترل شوند را انتخاب نموده، از گزینه‌ها HD Add Files را انتخاب نموده و پس از آن Commit را انتخاب می‌کنید. یک توضیح (مثلا Initial Commit) نوشته و دکمه Commit را می‌زنید.
اکنون مخزن شما به صورت محلی آماده است.
پس از ایجاد حساب در bitbucket، یک مخزن مثلا با نام myProject ایجاد کنید.
روی شاخه myProject دستگاهتان کلیک راست کرده و HG Repository Explorer را انتخاب کنید. از منوی synchronize گزینه Configure path را انتخاب کنید. گزینه synchronize را انتخاب و دکمه Add را زده و مشخصات مخزن خود روی سایت را وارد کنید. حال دکمه سبز روبه بالا با یک خط بالاش (Push) را می‌زنید و فایلها به سایت متقل می‌شوند.

این همه دنگ و فنگ مربوط به اولین بار است. در سایر دفعات برای ارسال تغییرات به مخزن محلی کافیست Commit کنید و سپس برای ارسال تغییرات به سرور Push کنید.

اگر رابط کاربری را نصب نکرده‌اید با دستورات خط فرمان هم می‌شود این کار را کرد (به نقل از آقا سیدرضی):
به فرض حسابی در bitbucket ساخته‌اید؛ ابتدا در ترمینال دستور زیر را وارد کنید:
hg clone http://bitbucket.org/youraccount/myProject
در پوشه جاری شما یک پوشه با نام myProject ایجاد می‌شود. حالا تمام فایل‌های کار خود را در این پوشه جدید کپی کنید و دستورات زیر را در ترمینال اجرا کنید:
cd myProject
hg add
hg ci -m "your description for this commit (Initial Commit)"
hg push


داشتن سرور الزامی نیست. تاریخچه در خود شاخه نگهداری می‌شود.

یک کپی از مخزن را در هر جا و منجمله یک هارد اکسترنال نیز می‌توانید داشته باشید.
کافیست TortoiseHG Clone را انتخاب و مسیرهای مبدأ و مقصد را مشخص کنید تا یک کپی در مقصد ایجاد شود.
اگر در مقصد فقط می‌خواهید یک کپی از مخزن (مثلا به عنوان پشتیبان) داشته باشید گزینه do not update the new working directory را انتخاب کنید. در این حالت فایلهای مخزن شما در مقصد باز نخواهند شد، اما قابل استراج هستند.

هیچ نظری موجود نیست: