| HG(CLONE) | HG(CLONE) |
نام (NAME)
hg clone - ایجاد یک نسخه کپی (همتاسازی) از یک مخزن موجود
خلاصه دستور (SYNOPSIS)
hg clone [گزینه]... مبدأ [مقصد]
توضیحات (DESCRIPTION)
ایجاد یک نسخه کپی از یک مخزن موجود در یک پوشه جدید.
چنانچه نام پوشه مقصد مشخص نشود، به صورت پیشفرض نام پایه (basename) مبدأ استفاده خواهد شد.
مکان مخزن مبدأ به فایل .hg/hgrc در مخزن جدید اضافه میشود تا به عنوان مقصد پیشفرض برای دریافتهای بعدی (pull) به کار رود.
تنها مسیرهای محلی و نشانیهای ssh:// به عنوان مقصد پشتیبانی میشوند. برای مقصدهای ssh:// هیچ دایرکتوری کاری یا فایل .hg/hgrc در سمت سرور دوردست ایجاد نخواهد شد.
اگر مخزن مبدأ دارای نشانکی به نام «@» باشد، آن بازبینی به طور پیشفرض در مخزن جدید بررسی و واکشی (checkout) خواهد شد.
برای واکشی یک نگارش خاص از -u/--update استفاده کنید، یا از -U/--noupdate برای ایجاد یک کلون بدون دایرکتوری کاری بهره ببرید.
برای دریافت تنها زیرمجموعهای از مجموعهتغییرها (changesets)، یک یا چند شناسه بازبینی را با -r/--rev یا شاخهها را با -b/--branch مشخص نمایید. کلون حاصل فقط شامل مجموعهتغییرهای تعیینشده و اجداد آنها خواهد بود. این گزینهها (یا ساختار 'clone src#rev dest') به معنای اعمال خودکار --pull هستند، حتی برای مخازن مبدأ محلی.
در حالت عادی همتاسازی (clone)، سرور دوردست دادههای مخزن را به یک قالب تبادل استاندارد تبدیل کرده و سمت دریافتکننده این دادهها را به قالب ذخیرهسازی محلی خود ترجمه میکند. گزینه --stream حالت کلون متفاوتی را فعال میسازد که فایلهای مخزن را با حداقل پردازش از سرور کپی میکند. این کار بار پردازشی پردازنده (CPU) را چه در سمت سرور و چه در مبدأ محلی به شکل محسوسی کاهش میدهد. با این حال، معمولاً حجم دادههای منتقلشده را ۳۰ تا ۴۰ درصد افزایش میدهد. این روش در شرایطی که پهنای باند و نرخ تبادل ورودی/خروجی (I/O) بالا باشد، بهویژه برای مخازن بزرگ، به کلون بسیار سریعتری منجر میشود. یکی از آثار جانبی کلون استریم این است که تنظیمات و الزامات ذخیرهسازی سرور عیناً در سمت محلی اعمال میشوند؛ بنابراین یک کلاینت جدید ممکن است قالب قدیمی یا ناکارآمد سرور را به ارث ببرد یا یک کلاینت قدیمی مرکوریال نتواند از یک سرور دوردست مدرن کلون بگیرد.
- یادداشت
- مشخص کردن یک برچسب (tag) شامل مجموعهتغییر برچسبخورده خواهد بود، اما مجموعهتغییری که حاوی خود برچسب است را شامل نمیشود.
به منظور افزایش کارایی، هر زمان که مبدأ و مقصد روی یک سیستمفایل قرار داشته باشند، از پیوندهای سخت (hardlinks) استفاده میشود (توجه داشته باشید که این موضوع فقط بر روی دادههای مخزن اعمال میشود، نه بر روی دایرکتوری کاری). برخی از فایلسیستمها مانند AFS پیوند سخت را به شکل نادرست پیادهسازی میکنند اما خطایی گزارش نمیدهند. در این موارد، از گزینه --pull برای جلوگیری از ایجاد پیوند سخت استفاده کنید.
مرکوریال دایرکتوری کاری را به اولین بازبینی منطبق از این فهرست بهروزرسانی میکند:
- a.
- تهی (null) اگر از -U استفاده شده باشد یا مخزن مبدأ فاقد مجموعهتغییر باشد
- b.
- چنانچه از . -u استفاده شود و مخزن مبدأ محلی باشد، اولین والد دایرکتوری کاری مخزن مبدأ
- c.
- مجموعهتغییر تعیینشده با -u (اگر نام شاخه باشد، به معنای آخرین سرشاخه آن شاخه است)
- d.
- مجموعهتغییر مشخصشده با -r
- e.
- بالاترین سرشاخه تعیینشده با -b
- f.
- بالاترین سرشاخه مشخصشده با ساختار url#branch
- g.
- بازبینی نشانهگذاریشده با نشانک «@» (در صورت وجود)
- h.
- بالاترین سرشاخه شاخه پیشفرض (default)
- i.
- آخرین
تغییر
ثبتشده (tip)
هنگام همتاسازی از سرورهایی که پشتیبانی میکنند، مرکوریال ممکن است دادههای از پیش تولیدشده را از یک آدرس اعلامشده توسط سرور یا درون همان استریم دریافت کند. در این صورت، هوکهای فعال روی مجموعهتغییرها ممکن است بیش از یک بار اجرا شوند.
مثالها:
- همتاسازی
یک مخزن
دوردست در
پوشهای
جدید به نام
hg/:
hg clone https://www.mercurial-scm.org/repo/hg
- ایجاد یک
کلون محلی
سبک:
hg clone project/ project-feature/
- کلون از
مسیر مطلق
روی سرور ssh
(به اسلش
دوگانه دقت
فرمایید):
hg clone ssh://user@server//home/projects/alpha
- انجام کلون
استریم
همزمان با
واکشی
نگارش مشخص:
hg clone --stream http://server/repo -u 1.5
- ایجاد یک
مخزن بدون
مجموعهتغییرهای
بعد از یک
بازبینی
خاص:
hg clone -r 04e544 experimental/ good/
- کلون (و
ردیابی) یک
شاخه
نامگذاریشده
خاص:
hg clone https://www.mercurial-scm.org/repo/hg#stable
برای جزئیات بیشتر درباره تعیین نشانیها به مستندات آنلاین مرکوریال مراجعه کنید.
در صورت موفقیت مقدار ۰ برمیگرداند.
گزینهها (OPTIONS)
- -U, --noupdate
- کلون شامل یک دایرکتوری کاری خالی خواهد بود (صرفاً خود مخزن).
- -u, --updaterev <REV>
- بازبینی، برچسب یا شاخه مورد نظر برای دریافت و بررسی.
- -r, --rev <REV[+]>
- عدم همتاسازی همه چیز؛ صرفاً گنجاندن این مجموعهتغییر و اجداد آن.
- -b, --branch <BRANCH[+]>
- عدم همتاسازی همه چیز؛ صرفاً گنجاندن مجموعهتغییرهای این شاخه و اجداد آنها.
- --pull
- استفاده از پروتکل pull جهت کپی کردن متادیتا.
- --uncompressed
- نام مستعار برای --stream (منسوخشده).
- --stream
- همتاسازی با حداقل پردازش دادهها.
- -e, --ssh <CMD>
- تعیین دستور ssh مورد استفاده.
- --remotecmd <CMD>
- تعیین دستور hg جهت اجرا در سمت سرور دوردست.
- --insecure
- عدم
اعتبارسنجی
گواهی
امنیتی
سرور
(نادیده
گرفتن
تنظیم web.cacerts).
گزینههای علامتگذاریشده با [+] میتوانند چندین بار تعیین شوند.