| HG(BISECT) | HG(BISECT) |
نام (NAME)
hg bisect - جستجوی دودویی در مجموعهتغییرها
خلاصه دستور (SYNOPSIS)
hg bisect [-gbsr] [-U] [-c CMD] [REV]
توضیحات (DESCRIPTION)
این دستور به یافتن مجموعهتغییرهایی (changesets) که باعث ایجاد مشکل شدهاند کمک میکند. برای استفاده، اولین مجموعهتغییری را که میدانید مشکل را بروز میدهد به عنوان بد (bad) علامتگذاری کنید، سپس آخرین مجموعهتغییری را که عاری از مشکل است به عنوان خوب (good) علامت بزنید. ابزار bisect دایرکتوری کاری شما را برای آزمایش به یک بازبینی (revision) بهروزرسانی میکند (مگر اینکه گزینه -U/--noupdate مشخص شده باشد). پس از انجام آزمایشها، دایرکتوری کاری را به عنوان good یا bad علامتگذاری کنید؛ bisect یا به مجموعهتغییر کاندید دیگری بهروزرسانی میشود و یا اعلام میکند که بازبینی معیوب را پیدا کرده است.
به عنوان یک میانبر، میتوانید از آرگومان بازبینی (revision) برای علامتگذاری یک بازبینی به عنوان good یا bad بدون نیاز به checkout کردن اولیه آن استفاده کنید.
اگر دستوری مشخص کنید، از آن برای جستجوی دودویی خودکار استفاده خواهد شد. متغیر محیطی HG_NODE شامل شناسه مجموعهتغییر در حال آزمایش خواهد بود. وضعیت خروج دستور برای علامتگذاری بازبینیها به عنوان good یا bad استفاده میشود: وضعیت ۰ به معنای good، ۱۲۵ به معنای نادیده گرفتن (skip) بازبینی، ۱۲۷ (دستور یافت نشد) موجب لغو فرآیند bisect میشود، و هر وضعیت خروج غیرصفر دیگر به معنای bad بودن بازبینی است.
چند مثال:
- شروع
جستجوی
دودویی با
بازبینی
معیوب
شناختهشده
۳۴ و
بازبینی
سالم ۱۲:
hg bisect --bad 34 hg bisect --good 12
- پیش بردن
جستجوی
جاری با
علامتگذاری
بازبینی
فعلی به
عنوان good یا bad:
hg bisect --good hg bisect --bad
- علامتگذاری
بازبینی
جاری یا یک
بازبینی
مشخص برای
نادیده
گرفته شدن
(مثلاً اگر
آن بازبینی
به دلیل
مشکل دیگری
قابل
استفاده
نباشد):
hg bisect --skip hg bisect --skip 23
- نادیده
گرفتن تمام
بازبینیهایی
که
دایرکتوریهای
foo یا bar را
تغییر
نمیدهند:
hg bisect --skip "!( file('path:foo') & file('path:bar') )" - لغو و
بازنشانی
جستجوی
جاری:
hg bisect --reset
- استفاده از
'make && make tests' برای
یافتن
خودکار
اولین
بازبینی
خراب:
hg bisect --reset hg bisect --bad 34 hg bisect --good 12 hg bisect --command "make && make tests"
- مشاهده
تمام
مجموعهتغییرهایی
که وضعیت
آنها در
جستجوی
جاری از قبل
مشخص شده
است:
hg log -r "bisect(pruned)"
- مشاهده
مجموعهتغییری
که
هماکنون
در حال
بررسی است
(بهویژه در
صورت اجرا
با -U/--noupdate مفید
است):
hg log -r "bisect(current)"
- مشاهده
تمام
مجموعهتغییرهایی
که در
جستجوی
جاری دخیل
بودهاند:
hg log -r "bisect(range)"
- حتی
میتوانید
یک نمودار
زیبا
دریافت
کنید:
hg log --graph -r "bisect(range)"
برای اطلاعات بیشتر درباره گزاره bisect() بخش hg help revisions.bisect را ببینید.
در صورت موفقیت 0 را برمیگرداند.
گزینهها (OPTIONS)
- -r, --reset
- بازنشانی وضعیت bisect
- -g, --good
- علامتگذاری مجموعهتغییر به عنوان سالم (good)
- -b, --bad
- علامتگذاری مجموعهتغییر به عنوان معیوب (bad)
- -s, --skip
- صرفنظر کردن از آزمایش مجموعهتغییر
- -e, --extend
- گسترش محدوده جستجوی دودویی
- -c,--command <CMD>
- استفاده از دستور برای بررسی وضعیت مجموعهتغییر
- -U, --noupdate
- عدم بهروزرسانی به هدف