| RAD-PATCH(1) | Radicle CLI Manual | RAD-PATCH(1) |
نام (NAME)
rad-patch - مدیریت وصلههای رادیکال (Radicle)
خلاصه دستور (SYNOPSIS)
rad patch [<option>...]
rad patch list [--all|--merged|--open|--archived|--draft]
[<option>...]
rad patch show <patch-id> [<option>...]
rad patch diff <patch-id> [--revision <revision-id>]
[<option>...]
rad patch archive <patch-id> [--undo] [<option>...]
rad patch update <patch-id> [<option>...]
rad patch checkout <patch-id> [<option>...]
rad patch delete <patch-id> [<option>...]
rad patch redact <revision-id> [<option>...]
rad patch ready <patch-id> [--undo] [<option>...]
rad patch review <patch-id> [<option>...]
rad patch edit <patch-id> [<option>...]
rad patch set <patch-id> [<option>...]
rad patch comment <revision-id> [<option>...]
rad patch label <patch-id> [<option>...]
git push rad HEAD:refs/patches
توضیحات (DESCRIPTION)
دستور patch در رادیکال برای مدیریت مجموعهتغییرات (changesets) در مخازن رادیکال (Radicle) به کار میرود.
اگرچه بسیاری از عملیات با استفاده از rad patch قابل انجام است، اما برخی کارهای مرتبط با وصله مستقیماً از طریق git انجام میشوند. برای نمونه، باز کردن یک وصله معمولاً با استفاده از git push انجام میشود، در حالی که ادغام یک وصله با ترکیبی از git merge و git push صورت میپذیرد.
برای ممکن ساختن این امر، رادیکال همراه با یک برنامه کمکی با نام git-remote-rad عرضه میشود که توسط git هنگام عملیات push و fetch با ریموتهای رادیکال فراخوانی میگردد.
دستورها (COMMANDS)
بدون هیچ آرگومانی، دستور rad patch به طور پیشفرض دستور list را اجرا کرده و فهرست وصلههای باز مخزن جاری را نمایش میدهد.
show
نمایش اطلاعات مربوط به وصله مشخصشده.
<patch-id>
--patch, -p
--verbose, -v
diff
خروجی تفاوت (diff) وصله با استفاده از ابزار مقایسه رادیکال.
<patch-id>
--revision, -r <revision-id>
edit
ویرایش دیدگاه (comment) یک نگارش وصله. برای ویرایش عنوان یا توضیحات وصله، <patch-id> را ارسال کنید. برای ویرایش دیدگاه مربوط به یک نگارش، <revision-id> همان نگارش را بدهید.
<revision-id>
--message, -m [<string>]
list
فهرست کردن وصلهها در مخزن جاری. حالت پیشفرض --open است.
--all
--archived
--merged
--open
--draft
--authored
--author <did>
ready
علامتگذاری یک وصله به عنوان آماده بررسی. این کار وضعیت وصله را از draft به open تغییر میدهد.
--undo
review
بررسی یک وصله. اعلام پذیرش یا رد یک نگارش وصله به همراه ارسال دیدگاه.
--revision, -r <revision-id>
--patch, -p
--hunk <index>
--accept
--reject
--unified, -U <n>
--delete, -d
--message, -m [<string>]
archive
بایگانی کردن یک وصله.
--undo
set
تنظیم آپاستریم شاخه جاری روی ارجاع یک وصله. این کار شاخه شما را به گونهای پیکربندی میکند که عملیات push باعث بهروزرسانی وصله مشخصشده شود.
<patch-id>
update
بهروزرسانی یک وصله به HEAD فعلی مخزن. این یک دستور سطح پایین است که تنها زمانی باید استفاده شود که استفاده از git push rad امکانپذیر نباشد.
--message, -m [<string>]
--no-message
checkout
رفتن روی یک وصله مشخص با ایجاد شاخهای که به راس (head) وصله اشاره دارد. این کار معادل git checkout -b <name> و سپس اجرای rad patch set <patch-id> است. به طور پیشفرض، نام شاخه شامل شناسه وصله (Patch ID) خواهد بود.
--revision <id>
--name <string>
--force, -f
comment
ثبت دیدگاه روی یک نگارش وصله، به همراه امکان پاسخ به دیدگاهی موجود.
<revision-id>
--message, -m <string>
--reply-to <comment-id>
باز کردن وصله (OPENING A PATCH)
برای باز کردن یک وصله، ابتدا تغییراتی در رونوشت کاری خود، معمولاً روی یک شاخه ویژگی (feature branch)، ایجاد میکنیم. برای نمونه:
$ git checkout -b fix/option-parsing ... edit some files ... $ git commit -a -m "Fix option parsing"
هنگامی که تغییرات ما برای پیشنهاد شدن به عنوان وصله آماده شد، آنها را از طریق git به یک ارجاع ویژه در ریموت rad که برای باز کردن وصلهها به کار میرود (refs/patches) میفرستیم (push):
$ git push rad HEAD:refs/patches ✓ Patch 90c77f2c33b7e472e058de4a586156f8a7fec7d6 opened ...
سپس رادیکال ویرایشگر شما را باز میکند تا بتوانید عنوان و توضیحات وصله را ویرایش کنید. اطمینان حاصل کنید که متغیر EDITOR یا VISUAL در محیط شما تنظیم شده باشد (برای جزئیات بیشتر به environ(7) مراجعه کنید). پس از پایان، کافی است ویرایشگر را ذخیره کرده و ببندید. در صورت موفقیت، وصله باز شده و شناسه آن در خروجی چاپ میشود. سپس میتوانید با استفاده از زیردستور show متادیتای وصله را نمایش دهید:
$ rad patch show 90c77f2
توجه داشته باشید که نیازی به استفاده از شناسه کامل وصله نیست؛ یک پیشوند یکتا و بدون ابهام از آن نیز کار میکند.
رادیکال میتواند از هر کامیت گیت یک وصله ایجاد کند. تنها کافی است HEAD را با نام شاخه یا هش کامیتی که قصد پیشنهاد وصله برای آن را دارید جایگزین کنید. برای نمونه:
$ git push rad d39fe32387496876fae6446daf3762aacf69d83b:refs/patches
پس از باز شدن وصله، متوجه خواهید شد که رادیکال آپاستریم شاخه شما را روی چیزی شبیه به rad/patches/90c77f2c33b7e472e058de4a586156f8a7fec7d6 تنظیم کرده است. این بدان معناست که شاخه شما اکنون به وصله جدید مرتبط شده است و هرگونه push از این شاخه منجر به بهروزرسانی وصله خواهد شد. برای اطلاعات بیشتر به بخش بعدی درباره بهروزرسانی وصله مراجعه کنید.
توجه داشته باشید که با استفاده از گزینه push به صورت -o patch.draft هنگام باز کردن وصله، امکان ایجاد یک وصله پیشنویس (draft) نیز وجود دارد. برای گزینههای بیشتر به زیردستور ready مراجعه کنید.
گزینهها (OPTIONS)
هنگام باز کردن یک وصله، گزینههای متعددی را میتوان با استفاده از گزینههای git push مشخص کرد. این کار از طریق پرچم -o یا --push-option انجام میشود؛ به عنوان مثال -o patch.draft. فهرست کامل گزینهها در ادامه آمده است:
sync, no-sync
sync.debug
patch.draft
patch.branch[=<name>]
patch.message=<message>
patch.base=<oid>
برای اطلاعات بیشتر درباره گزینههای ارسال، به git-push(1) مراجعه کنید.
بهروزرسانی وصله (UPDATING A PATCH)
برای بهروزرسانی یک وصله، تغییرات را به صورت محلی اعمال کرده و ارسال (push) میکنیم:
$ git commit --amend $ git push --force ✓ Patch 90c77f2 updated to revision d0018fcc21d87c91a1ff9155aed6b4e57535566b ...
توجه داشته باشید که این کار تنها در صورتی کار میکند که آپاستریم شاخه جاری به درستی تنظیم شده باشد. این کار در زمان باز شدن وصله از روی شاخهای فاقد آپاستریم، به طور خودکار انجام میپذیرد. در مثال بالا، به دلیل اصلاح (amend) کامیت، از گزینه --force استفاده کردیم. این یک رویه معمول پس از بازبینی و اعمال اصلاحات روی وصله است.
اگر آپاستریم شاخه روی ارجاع وصله، یعنی rad/patches/<id> تنظیم نشده باشد، میتوانید با دستور rad patch set <id> آن را تنظیم کنید.
همانند باز کردن وصله، از شما خواسته میشود دلیل بهروزرسانی وصله را در ویرایشگر خود وارد کنید. پس از اتمام، فایل را ذخیره کرده و ببندید؛ یا برای صرفنظر از این مرحله، آن را خالی رها کنید.
همچنین امکان تغییر پایه (base) وصله در هنگام بهروزرسانی وجود دارد. کافی است از گزینه push به صورت patch.base مطابق توضیحات بخش باز کردن وصله (OPENING A PATCH) استفاده کنید.
بررسی و دریافت وصله (CHECKING OUT A PATCH)
هنگام کار با وصلههای ارسالشده توسط همتایان (peers)، معمولاً دریافت و بررسی کد (checkout) در یک شاخه اختصاصی بسیار کاربردی است. با دریافت وصله، میتوانید کد را بررسی کرده، تستها را اجرا کنید و حتی بهروزرسانیهای پیشنهادی خود را برای وصله ارائه دهید. زیردستور checkout برای همین هدف استفاده میشود:
$ rad patch checkout 90c77f2
رادیکال در صورت لزوم شاخه جدیدی ایجاد کرده و راس وصله را دریافت میکند. از آنجا، میتوانید با اجرای git-push بهروزرسانی وصله را منتشر کنید یا به بررسی کد بپردازید.
ادغام وصله (MERGING A PATCH)
پس از اینکه وصلهای آماده ادغام شد، نگهدارنده مخزن کافی است از دستور git-merge(1) روی شاخه "master" استفاده کند و از طریق git آن را ارسال نماید. برای نمونه، اگر وصله 26e3e56 آماده ادغام باشد، مراحل به این صورت خواهد بود:
$ rad patch checkout 26e3e56 ✓ Switched to branch patch/26e3e56 $ git checkout master $ git merge patch/26e3e56 $ git push rad ✓ Patch 26e3e563ddc7df8dd0c9f81274c0b3cb1b764568 merged To rad://z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi f2de534..d6399c7 master -> master
در مراحل بالا، ابتدا وصله را در یک شاخه دریافت کردیم، آن شاخه را در شاخه master ادغام نمودیم و سپس آن را به ریموت rad ارسال کردیم.
فهرست کردن وصلهها (LISTING PATCHES)
برای فهرست کردن وصلهها، دستور rad patch را اجرا کنید. به طور پیشفرض، این کار تنها وصلههای باز را نشان میدهد. برای فهرست کردن تمامی وصلهها، از جمله مواردی که ادغام یا بایگانی شدهاند، گزینه --all را اضافه کنید.
نویسندگان (AUTHORS)
تیم رادیکال (The Radicle Team)
| 2026-08-28 | rad 1.0.0 |