| jj-duplicate(1) | General Commands Manual | jj-duplicate(1) |
نام (NAME)
jj-duplicate - ایجاد تغییرات جدید با محتوایی مشابه تغییرات موجود
خلاصه دستور (SYNOPSIS)
jj duplicate [-R|--repository] [--ignore-working-copy] [-o|--onto] [-A|--insert-after] [--no-integrate-operation] [-B|--insert-before] [--ignore-immutable] [--at-operation] [--debug] [--color] [--quiet] [--no-pager] [--config] [--config-file] [-h|--help] [REVSETS]
توضیحات (DESCRIPTION)
ایجاد تغییرات جدید با محتوایی مشابه تغییرات موجود
هنگامی که هیچیک از آرگومانهای --onto، --insert-after یا --insert-before مشخص نشده باشند، کامیتها بر روی والدین موجود خود یا بر روی دیگر کامیتهای تازه تکثیرشده، تکثیر میشوند.
هنگامی که هر یک از آرگومانهای --onto، --insert-after یا --insert-before مشخص شوند، ریشههای کامیتهای تعیینشده بر روی مقصد مشخصشده توسط آرگومانها تکثیر میشوند. سایر کامیتهای تعیینشده نیز بر روی این کامیتهای تازه تکثیرشده، تکثیر خواهند شد. اگر آرگومانهای --insert-after یا --insert-before مشخص شده باشند، فرزندان جدیدِ مشخصشده توسط این آرگومانها بر روی رأسهای (heads) کامیتهای تعیینشده بازپایهریزی میشوند.
بهطور پیشفرض، کامیتهای تکثیرشده توضیحات کامیتهای اصلی را حفظ میکنند. این رفتار را میتوان با تنظیم templates.duplicate_description سفارشیسازی کرد.
گزینهها (OPTIONS)
- -o, --onto <REVSETS>
- بازنگری(هایی) که باید روی آنها تکثیر شود (جهت ایجاد یک کامیت ادغام قابل تکرار است)
- -A, --insert-after <REVSETS>
- بازنگری(هایی) که باید پس از آنها درج شود (جهت ایجاد یک کامیت ادغام قابل تکرار است)
- -B, --insert-before <REVSETS>
- بازنگری(هایی) که باید قبل از آنها درج شود (جهت ایجاد یک کامیت ادغام قابل تکرار است)
- -h, --help
- چاپ راهنما (مشاهده خلاصه با '-h')
- [REVSETS]
- بازنگری(ها) برای تکثیر (پیشفرض: @) [نامهای مستعار: -r]
گزینههای عمومی (GLOBAL OPTIONS)
- -R, --repository <REPOSITORY>
- مسیر مخزنی
که عملیات
روی آن
انجام
میشود.
بهطور پیشفرض، Jujutsu به دنبال نزدیکترین دایرکتوری .jj در اجداد دایرکتوری کاری فعلی میگردد.
- --ignore-working-copy
- از رونوشت
کاری (working copy)
اسنپشات
گرفته نشود
و آن را
بهروزرسانی
نکند.
بهطور پیشفرض، Jujutsu در آغاز هر دستور از رونوشت کاری اسنپشات میگیرد. همچنین در صورت تغییر کامیت رونوشت کاری (`@`) توسط دستور، رونوشت کاری در پایان دستور نیز بهروزرسانی میشود. اگر میخواهید از اسنپشات گرفتن از رونوشت کاری جلوگیری کنید و در عوض یک کامیت رونوشت کاری احتمالا قدیمی را ببینید، میتوانید از --ignore-working-copy استفاده کنید. این گزینه برای مثال در خط فرمان (command 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
- امکان
بازنویسی
کامیتهای
تغییرناپذیر
(immutable) مجاز
باشد.
بهطور پیشفرض، Jujutsu از بازنویسی کامیتهایی که در مجموعه کامیتهای تغییرناپذیر پیکربندی شدهاند جلوگیری میکند. این گزینه آن بررسی را غیرفعال کرده و اجازه میدهد هر کامیتی بهجز کامیت ریشه (root commit) را بازنویسی کنید.
این گزینه تنها بر این بررسی تأثیر میگذارد و روی مجموعه بازنگری `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 همچنان فایلها را فهرست میکند، اما به شما نمیگوید که آیا از رونوشت کاری اسنپشات گرفته شده یا نوادگان بازپایهریزی شدهاند یا خیر.
هشدارها و خطاها همچنان چاپ خواهند شد.
- --no-pager
- غیرفعال کردن صفحهبندیکننده (pager)
- --config <NAME=VALUE>
- گزینههای
پیکربندی
اضافی
(قابلیت
تکرار دارد)
نام باید بهصورت کلیدهای نقطهدار TOML مشخص شود. مقدار باید بهصورت یک عبارت TOML تعیین شود. اگر مقدار رشتهای درون ساختارهای TOML (مانند نشانهگذاری آرایه) محصور نشده باشد، میتوان از علامتهای نقلقول صرفنظر کرد.
- --config-file <PATH>
- فایلهای پیکربندی اضافی (قابلیت تکرار دارد)
| duplicate |