| jj-split(1) | General Commands Manual | jj-split(1) |
نام (NAME)
jj-split - تقسیم یک بازبینی به دو بخش
خلاصه دستور (SYNOPSIS)
jj split [-i|--interactive] [-R|--repository] [--ignore-working-copy] [--tool] [--no-integrate-operation] [-r|--revision] [--ignore-immutable] [-o|--onto] [-A|--insert-after] [--at-operation] [-B|--insert-before] [--debug] [--color] [-m|--message] [--editor] [--quiet] [--no-pager] [-p|--parallel] [--config] [--config-file] [-h|--help] [FILESETS]
توضیحات (DESCRIPTION)
تقسیم یک بازبینی به دو بخش
یک [ویرایشگر تفاوت] را روی تغییرات موجود در بازبینی باز میکند. سمت راست تفاوت را طوری ویرایش کنید تا حاوی محتوایی باشد که میخواهید در کامیت اول قرار گیرد. به محض اینکه ویرایشگر را ببندید، بازبینی شما به دو کامیت تقسیم خواهد شد.
[ویرایشگر تفاوت]: https://docs.jj-vcs.dev/latest/config/#editing-diffs
بهطور پیشفرض، تغییرات انتخابشده در کامیت اصلی باقی میمانند و تغییرات باقیمانده به یک کامیت فرزند جدید منتقل میشوند:
L L'
| |
K (split) => K" (remaining)
| |
J K' (selected)
|
J
با گزینهٔ --parallel/-p، دو بخش بهجای والد و فرزند، به کامیتهای همسطح (sibling) تبدیل میشوند:
L' L / \ | K' | (selected) K (split) => | K" (remaining) | \ / J J
با گزینههای -o، -A یا -B، تغییرات انتخابشده در یک کامیت جدید در مکان مشخصشده استخراج میشوند، در حالی که تغییرات باقیمانده در جای خود باقی میمانند:
M M'
| |
L L'
| |
K (split) => K' (remaining, stays here)
| |
J J'
|
K" (selected, inserted before J with -B J)
اگر تغییری که تقسیم میکنید دارای توضیحات بوده باشد، از شما خواسته میشود که برای هر کامیت یک توضیح وارد کنید. اگر تغییر فاقد توضیحات بوده باشد، کامیت دوم توضیحی دریافت نخواهد کرد و فقط برای کامیت اول از شما توضیح خواسته میشود.
تقسیم یک کامیت خالی پشتیبانی نمیشود، زیرا همین نتیجه را میتوان با استفاده از jj new به دست آورد.
گزینهها (OPTIONS)
- -i, --interactive
- انتخاب تعاملی بخشهایی که باید تقسیم شوند
اگر هیچ مجموعه فایلی مشخص نشود، این حالت پیشفرض است.
- --tool <NAME>
- مشخص کردن ویرایشگر تفاوت مورد استفاده (به معنای --interactive است)
- -r, --revision <REVSET> [default: @]
- بازبینی مورد نظر برای تقسیم
- -o, --onto <REVSETS>
- بازبینی(هایی) که تغییرات انتخابشده روی آن(ها) بازپایهریزی (rebase) میشوند (میتواند برای ایجاد یک کامیت ادغام تکرار شود)
تغییرات انتخابشده را بر اساس بازبینی(های) ارائهشده در یک کامیت جدید استخراج میکند. تغییرات باقیمانده در مکان کامیت اصلی باقی میمانند.
- -A, --insert-after <REVSETS>
- بازبینی(هایی) که تغییرات بعد از آن(ها) درج میشوند (میتواند برای ایجاد یک کامیت ادغام تکرار شود)
تغییرات انتخابشده را در یک کامیت جدید که پس از بازبینی(های) مشخصشده درج میشود، استخراج میکند. تغییرات باقیمانده در مکان کامیت اصلی باقی میمانند.
- -B, --insert-before <REVSETS>
- بازبینی(هایی) که تغییرات پیش از آن(ها) درج میشوند (میتواند برای ایجاد یک کامیت ادغام تکرار شود)
تغییرات انتخابشده را در یک کامیت جدید که پیش از بازبینی(های) مشخصشده درج میشود، استخراج میکند. تغییرات باقیمانده در مکان کامیت اصلی باقی میمانند.
- -m, --message <MESSAGE>
- توضیحات تغییری که برای تغییرات انتخابشده استفاده میشود (ویرایشگر باز نشود)
توضیحات را برای بازبینی حاوی تغییرات انتخابشده تنظیم میکند. بازبینی دیگر توضیحات اصلی خود را (در صورت وجود) حفظ خواهد کرد.
- --editor
- باز کردن یک ویرایشگر برای ویرایش توضیحات تغییر(ها)
هنگام استفاده از --message ویرایشگر را به اجبار باز میکند تا امکان ویرایش پیام پس از آن فراهم شود.
- -p, --parallel
- تقسیم بازبینی به دو بازبینی موازی بهجای والد و فرزند
- -h, --help
- چاپ راهنما (مشاهده خلاصه با '-h')
- [FILESETS]
- فایلهای منطبق با هر یک از این مجموعههای فایل در تغییرات انتخابشده قرار میگیرند
گزینههای عمومی (GLOBAL OPTIONS)
- -R, --repository <REPOSITORY>
- مسیر مخزنی که باید روی آن کار شود
بهطور پیشفرض، Jujutsu به دنبال نزدیکترین دایرکتوری .jj/ در مسیرهای والد دایرکتوری کاری فعلی میگردد.
- --ignore-working-copy
- از نسخهٔ کاری اسنپشات گرفته نشود و بهروزرسانی نیز نگردد
بهطور پیشفرض، Jujutsu در ابتدای هر دستور از نسخهٔ کاری اسنپشات میگیرد. همچنین در پایان دستور، اگر دستور کامیت نسخهٔ کاری (`@`) را تغییر داده باشد، نسخهٔ کاری بهروزرسانی میشود. اگر میخواهید از اسنپشات گرفتن از نسخهٔ کاری صرفنظر کنید و در عوض یک کامیت نسخهٔ کاری احتمالاً قدیمی را مشاهده کنید، میتوانید از --ignore-working-copy استفاده کنید. این مورد میتواند برای مثال در خط فرمان (prompt) مفید باشد، بهویژه اگر فرآیند دیگری داشته باشید که نسخهٔ کاری را کامیت میکند.
بارگذاری مخزن در یک عملیات خاص با --at-operation به معنای فعال بودن --ignore-working-copy است.
- --no-integrate-operation
- اجرای دستور به صورت معمول اما بدون ادغام عملیاتها
هنگامی که این گزینه ارائه شود، عملیاتها همچنان مثل همیشه ایجاد میشوند اما در گزارش عملیات (operation log) ادغام نخواهند شد. همچنین نسخهٔ کاری بهروزرسانی نخواهد شد.
این دستور شناسهٔ عملیات حاصل را چاپ میکند. میتوانید آن را مثلاً به jj --at-op ارسال کنید تا وضعیت مخزن حاصل را بررسی کنید، یا آن را به jj op restore بدهید تا مخزن را به آن وضعیت بازیابی کند. همچنین میتوانید شناسه را به jj op integrate بدهید تا عملیات را ادغام نماید.
توجه داشته باشید که این گزینه مانع از اثرات جانبی بیرون از مخزن *نمیشود*. برای نمونه، دستور jj git push --no-integrate-operation همچنان عملیات پوش (push) را انجام خواهد داد.
- --ignore-immutable
- اجازه بازنویسی کامیتهای تغییرناپذیر
بهطور پیشفرض، Jujutsu از بازنویسی کامیتهای موجود در مجموعهٔ پیکربندیشدهٔ کامیتهای تغییرناپذیر جلوگیری میکند. این گزینه بررسی مذکور را غیرفعال کرده و اجازه میدهد هر کامیتی به جز کامیت ریشه (root commit) را بازنویسی کنید.
این گزینه فقط بر روی این بررسی تأثیر میگذارد و روی مجموعه بازبینی (revset) immutable_heads() یا کلمه کلیدی الگوی immutable اثری ندارد.
- --at-operation <AT_OPERATION>
- عملیاتی که مخزن بر مبنای آن بارگذاری شود
عملیاتی که مخزن باید بر مبنای آن بارگذاری شود. بهطور پیشفرض، Jujutsu مخزن را بر مبنای جدیدترین عملیات یا در صورت وجود، بر مبنای ادغام عملیاتهای واگرا بارگذاری میکند.
میتوانید از --at-op=<operation ID> استفاده کنید تا ببینید مخزن در یک عملیات پیشین به چه شکلی بوده است. برای مثال، دستور jj --at-op=<operation ID> st آنچه را که jj st بلافاصله پس از پایان عملیات مشخصشده نشان میداد، به شما نمایش میدهد. --at-op=@ تقریباً همانند حالت پیشفرض است، با این تفاوت که عملیاتهای واگرا هرگز ادغام نخواهند شد.
از دستور jj op log برای یافتن شناسهٔ عملیات دلخواه خود استفاده کنید. هر پیشوند یکتایی از شناسهٔ عملیات کافی است.
هنگام بارگذاری مخزن در یک عملیات قبلی، نسخهٔ کاری نادیده گرفته میشود، درست مانند اینکه --ignore-working-copy مشخص شده باشد.
امکان اجرای دستورات تغییردهنده وضعیت (mutating) هنگام بارگذاری مخزن در یک عملیات قبلی وجود دارد. انجام این کار معادل اجرای دستورات همزمان با شروع از عملیات پیشین است. بهندرت دلیلی برای انجام این کار وجود دارد، اما امکانپذیر است.
- --debug
- فعالسازی گزارشگیری اشکالزدایی (debug logging)
- --color <WHEN>
- زمان
رنگیسازی
خروجی
مقادیر ممکن:
- always
- never
- debug
- auto
- --quiet
- بیصدا کردن خروجیهای غیر اصلی دستور
برای نمونه، دستور jj file list همچنان فایلها را فهرست میکند، اما به شما اطلاع نمیدهد که از نسخهٔ کاری اسنپشات گرفته شده است یا نوادگان بازپایهریزی (rebase) شدهاند.
هشدارها و خطاها همچنان چاپ خواهند شد.
- --no-pager
- غیرفعال کردن صفحهبندی (pager)
- --config <NAME=VALUE>
- گزینههای پیکربندی اضافی (قابل تکرار)
نام باید به صورت کلیدهای نقطهدار TOML مشخص شود. مقدار باید به عنوان یک عبارت TOML تعیین شود. در صورتی که مقدار رشتهای در هیچیک از ساختارهای TOML (مانند نشانهگذاری آرایه) محصور نشده باشد، میتوان علامت نقلقول را حذف کرد.
- --config-file <PATH>
- فایلهای پیکربندی اضافی (قابل تکرار)
همچنین ببینید (SEE ALSO)
| split |