| HG-IMPORT(1) | صفحات راهنمای پارچ | HG-IMPORT(1) |
نام (NAME)
hg-import - ایمپورت یک یا چند پچ متنی به مخزن Mercurial
خلاصه دستور (SYNOPSIS)
hg import [OPTION]... PATCH...
توضیحات (DESCRIPTION)
ایمپورت فهرستی از پچها و ثبت (commit) جداگانه هر یک از آنها (مگر اینکه --no-commit مشخص شده باشد).
برای خواندن یک پچ از ورودی استاندارد (stdin)، از «-» به عنوان نام پچ استفاده کنید. اگر یک نشانی وب (URL) مشخص شده باشد، پچ از آنجا بارگیری خواهد شد.
عملیات ایمپورت ابتدا تغییرات را روی دایرکتوری کاری اعمال میکند (مگر اینکه --bypass مشخص شده باشد)؛ در صورت وجود تغییرات ذخیرهنشده، فرآیند ایمپورت متوقف خواهد شد.
از --bypass برای اعمال و ثبت مستقیم پچها در مخزن، بدون دستکاری دایرکتوری کاری استفاده کنید. بدون --exact ، پچها بر روی بازبینی والد دایرکتوری کاری اعمال خواهند شد.
میتوانید یک پچ را مستقیماً از پیام ایمیل ایمپورت کنید. حتی پچهای پیوستشده نیز پشتیبانی میشوند (برای استفاده از بخش بدنه، نوع آن باید text/plain یا text/x-patch باشد). سرآیندهای From و Subject پیام ایمیل به عنوان ثبتکننده و پیام ثبت پیشفرض استفاده میشوند. تمام بخشهای متنی text/plain بدنه پیش از اولین diff، به پیام ثبت افزوده میشوند.
اگر پچ ایمپورتشده توسط دستور hg export ایجاد شده باشد، نام کاربر و توضیحات موجود در پچ بر مقادیر سرآیندها و بدنه پیام اولویت دارند. مقادیر دادهشده در خط فرمان با -m/--message و -u/--user نیز بر تمام این مقادیر اولویت خواهند داشت.
اگر --exact مشخص شده باشد، دستور import دایرکتوری کاری را پیش از اعمال هر پچ به والد آن بازبینی منتقل کرده و در صورتی که شناسه مجموعه تغییرات حاصل با شناسه ثبتشده در پچ متفاوت باشد، عملیات را لغو میکند. این کار در برابر مشکلات گوناگون قالبهای پچ و سیستمهای ایمیل در انتقال دادهها یا متادیتای مرکوریال محافظت میکند. برای انتقال بدون اتلاف اطلاعات، دستور hg bundle را ببینید.
از --partial استفاده کنید تا مطمئن شوید حتی در صورت شکست اعمال برخی از بخشها (hunks)، یک مجموعه تغییرات از پچ ساخته خواهد شد. بخشهایی که اعمال آنها با شکست مواجه شود، در فایلی با نام <target-file>.rej نوشته میشوند. سپس تعارضها را میتوان پیش از اجرای دستور hg commit --amend جهت بهروزرسانی مجموعه تغییرات ایجادشده، به صورت دستی حل کرد. این گزینه برای این است که امکان ایمپورت پچهای ناقص بدون از دست رفتن متادیتای مربوطه (نویسنده، تاریخ، توضیحات و...) فراهم شود.
- نکته (Note)
- هنگامی که هیچ بخشی بدون خطا اعمال نشود، دستور hg import --partial یک مجموعه تغییرات خالی ایجاد کرده و فقط متادیتای پچ را ایمپورت میکند.
با -s/--similarity ، مرکوریال تلاش میکند تغییر نامها و کپیها را در پچ مشابه دستور hg addremove شناسایی کند.
با تنظیم گزینه پیکربندی ui.patch میتوان از برنامههای پچ خارجی برای اعمال پچ استفاده کرد. برای ابزار داخلی پیشفرض، مقدار تقریب (fuzz) نیز از طریق patch.fuzz قابل تنظیم است. برای اطلاعات بیشتر درباره فایلهای پیکربندی و نحوه استفاده از این گزینهها، دستور hg help config را ببینید.
برای فهرستی از قالبهای معتبر برای -d/--date ، دستور hg help dates را ببینید.
مثالها (EXAMPLES)
- ایمپورت یک
پچ سنتی از
یک وبسایت
و تشخیص
فایلهای
تغییر نام
یافته:
hg import -s 80 http://example.com/bugfix.patch
- ایمپورت یک
مجموعه
تغییرات از
سرور hgweb:
hg import https://www.mercurial-scm.org/repo/hg/rev/5ca8c111e9aa
- ایمپورت
تمام
پچهای
موجود در یک
فایل mbox
یونیکسی:
hg import incoming-patches.mbox
- ایمپورت
پچها از
ورودی
استاندارد
(stdin):
hg import -
- تلاش برای
بازیابی
دقیق یک
مجموعه
تغییرات
خروجیگرفتهشده
(همیشه
امکانپذیر
نیست):
hg import --exact proposed-fix.patch
- استفاده از
ابزار
خارجی برای
اعمال پچی
که برای
ابزار
داخلی
پیشفرض
بیش از حد
غیردقیق
است:
hg import --config ui.patch="patch --merge" fuzzy.patch
- تغییر
مقدار
پیشفرض
تقریب (fuzz) از ۲
به مقدار
ملایمتر ۷:
hg import --config ui.fuzz=7 fuzz.patch
در صورت موفقیت مقدار 0 و در صورت موفقیت نسبی مقدار 1 بازگردانده میشود (گزینه --partial را ببینید).
گزینهها (OPTIONS)
- -p,--strip <NUM>
- گزینه حذف پیشوند مسیر دایرکتوریها برای پچ. این گزینه همان معنای گزینه متناظر در دستور patch را دارد (پیشفرض: 1).
- -b,--base <PATH>
- مسیر پایه (منسوخشده)
- --secret
- استفاده از فاز مخفی (secret phase) برای ثبت تغییرات
- -e, --edit
- باز کردن ویرایشگر متن برای ویرایش پیامهای ثبت
- -f, --force
- صرفنظر کردن از بررسی وجود تغییرات ثبتنشده و بلاتکلیف (منسوخشده)
- --no-commit
- فقط بهروزرسانی دایرکتوری کاری بدون ثبت (commit) تغییرات
- --bypass
- اعمال پچ بدون دستکاری دایرکتوری کاری
- --partial
- ثبت تغییرات حتی در صورت شکست در اعمال برخی بخشها
- --exact
- لغو عملیات در صورت اعمال پچ همراه با اتلاف داده
- --prefix <DIR>
- اعمال پچ روی یک زیردایرکتوری
- --import-branch
- استفاده از هرگونه اطلاعات شاخه موجود در پچ (به همراه --exact به طور خودکار فعال است)
- -m,--message <TEXT>
- استفاده از متن مشخصشده به عنوان پیام ثبت
- -l,--logfile <FILE>
- خواندن پیام ثبت از یک فایل
- -d,--date <DATE>
- ثبت تاریخ مشخصشده به عنوان تاریخ کامیت
- -u,--user <USER>
- ثبت کاربر مشخصشده به عنوان ثبتکننده
- -s,--similarity <SIMILARITY>
- حدس زدن فایلهای تغییر نام یافته بر اساس میزان شباهت (0<=s<=100)
نامهای مستعار (ALIASES)
patch