jj-run(1) General Commands Manual jj-run(1) نام (NAME) jj-run - اجرای یک دستور در مجموعه‌ای از بازنگری‌ها خلاصه دستور (SYNOPSIS) jj run [-r|--revision] [-R|--repository] [--ignore-working-copy] [-j|--jobs] [--no-integrate-operation] [--ignore-immutable] [--root] [--at-operation] [--clean] [--debug] [--restore-descendants] [--color] [--passthrough] [--ignore-changes] [--quiet] [--ignore-errors] [--no-pager] [--config] [--config-file] [-h|--help] [ARGS] توضیحات (DESCRIPTION) اجرای یک دستور در مجموعه‌ای از بازنگری‌ها هر بازنگری را در یک رونوشت کاری ایزوله‌شده دریافت (check out) کرده، دستور را اجرا می‌کند و سپس بازنگری را با رونوشت کاری حاصل اصلاح (amend) می‌نماید. به‌طور پیش‌فرض، نوادگان بر روی بازنگری‌های اصلاح‌شده بازپایه‌ریزی می‌شوند و تغییرات (diff) منتشر می‌گردد. از `--restore-descendants` برای دست‌نخورده نگه داشتن محتوای نوادگان استفاده کنید، یا از `--ignore-changes` برای اجرای دستور بدون بازنویسی هیچ کامیتی بهره ببرید. این دستور با تنظیم متغیرهای محیطی زیر اجرا می‌شود: • JJ_CHANGE_ID • JJ_COMMIT_ID • JJ_WORKSPACE_ROOT مثال # Run pre-commit on your local work $ jj run -j 4 -- pre-commit run .github/pre-commit.yaml گزینه‌ها (OPTIONS) -r, --revision بازنگری‌هایی که باید تغییر کنند -j, --jobs تعداد فرآیندهایی که باید به‌صورت موازی اجرا شوند تنظیمات پیکربندی `run.jobs` را بازنویسی می‌کند. در صورت عدم تنظیم هر یک، مقدار پیش‌فرض ۱ است. --root اجرای دستور از ریشهٔ رونوشت کاری در هر کامیت به جای زیرپوشه‌ای که `jj run` از آن فراخوانی شده است --clean حذف هر رونوشت کاری پیش از اجرای دستور به‌طور پیش‌فرض `jj run` رونوشت‌های کاری را بین دفعات فراخوانی مجدداً استفاده می‌کند تا آرتیفکت‌های ساخت حفظ شوند. با `--clean`، هر کامیت از یک درخت تازه دریافت‌شده شروع می‌شود. --restore-descendants حفظ محتوا (نه تفاوت/diff) هنگام بازپایه‌ریزی نوادگان --passthrough انتقال مستقیم خروجی استاندارد (stdout) و خطای استاندارد (stderr) به ترمینال خروجی استاندارد و خطای استاندارد دستور مستقیماً به ترمینال متصل می‌شوند (به‌جای ضبط شدن)، بنابراین برنامه‌هایی که رفتار متفاوتی در TTY دارند (مانند خروجی رنگی، نوارهای پیشرفت) همان‌گونه که انتظار می‌رود کار می‌کنند. ورودی استاندارد (stdin) به ارث برده نمی‌شود. تنها یک جاب کاری مجاز است زیرا کارهای موازی خروجی‌های خود را درهم می‌آمیزند. --ignore-changes اجرای دستور بدون بازنویسی هیچ کامیتی هر بازنگری دریافت شده و دستور اجرا می‌شود، اما تغییرات ایجادشده در رونوشت کاری نادیده گرفته می‌شوند. برای بررسی‌های فقط‌خواندنی (آزمون‌ها، لینترها) کاربردی است. این گزینه اجازهٔ اجرا بر روی کامیت‌های تغییرناپذیر را بدون ارسال `--ignore-immutable` می‌دهد. --ignore-errors ادامه کار با بازنگری‌های باقی‌مانده در صورتی که کد خروج دستور نشان‌دهندهٔ خطا باشد هرگونه تغییر ایجادشده توسط یک دستور ناموفق ذخیره نخواهد شد، اما تغییرات حاصل از دستورات موفق همچنان در پایان به‌صورت اتمیک اعمال می‌شوند. کد خروج هر دستور ناموفق بر کد خروج خود `jj run` تأثیری نخواهد داشت. -h, --help چاپ راهنما (مشاهده خلاصه با '-h') دستوری که باید در تمام بازنگری‌های انتخاب‌شده اجرا شود [ARGS] آرگومان‌هایی که باید به دستور ارسال شوند نکته: از جداکنندهٔ `--` برای ارسال آرگومان‌هایی که با `-` شروع می‌شوند استفاده کنید. برای نمونه: `jj run --revisions=... -- cargo build --release`. گزینه‌های عمومی (GLOBAL OPTIONS) -R, --repository مسیر مخزنی که عملیات روی آن انجام می‌شود. به‌طور پیش‌فرض، Jujutsu به دنبال نزدیک‌ترین دایرکتوری .jj/ در اجداد دایرکتوری کاری فعلی می‌گردد. --ignore-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 امکان بازنویسی کامیت‌های تغییرناپذیر مجاز باشد. به‌طور پیش‌فرض، Jujutsu از بازنویسی کامیت‌هایی که در مجموعه کامیت‌های تغییرناپذیر پیکربندی شده‌اند جلوگیری می‌کند. این گزینه آن بررسی را غیرفعال کرده و اجازه می‌دهد هر کامیتی به‌جز کامیت ریشه (root commit) را بازنویسی کنید. این گزینه تنها بر این بررسی تأثیر می‌گذارد و روی مجموعه بازنگری `immutable_heads()` یا کلمه کلیدی قالب `immutable` اثری ندارد. --at-operation عملیاتی که مخزن باید در نقطهٔ آن بارگذاری شود. به‌طور پیش‌فرض، Jujutsu مخزن را در تازه‌ترین عملیات، یا در صورت وجود عملیات‌های واگرا، در نقطهٔ ادغام آن‌ها بارگذاری می‌کند. می‌توانید از `--at-op=` استفاده کنید تا ببینید مخزن در یک عملیات پیشین چگونه بوده است. برای نمونه `jj --at-op= st` آنچه را که `jj st` در زمان پایان یافتن آن عملیات نشان می‌داد به شما نمایش می‌دهد. مقدار `--at-op=@` تقریباً همانند حالت پیش‌فرض عمل می‌کند، با این تفاوت که عملیات‌های واگرا هرگز ادغام نخواهند شد. از دستور `jj op log` برای یافتن شناسه عملیات مورد نظر خود استفاده کنید. هر پیشوند یکتایی از شناسه عملیات کافی خواهد بود. هنگام بارگذاری مخزن در یک عملیات پیشین، رونوشت کاری نادیده گرفته می‌شود، درست همان‌طور که گویی گزینهٔ `--ignore-working-copy` مشخص شده است. اجرای دستورات تغییردهنده (mutating) هنگام بارگذاری مخزن در یک عملیات پیشین امکان‌پذیر است. انجام این کار معادل اجرای همزمان دستورات از مبدأ آن عملیات پیشین است. به‌ندرت دلیلی برای انجام چنین کاری وجود دارد، اما ممکن است. --debug فعال‌سازی ثبت وقایع اشکال‌زدایی (debug logging) --color تعیین زمان استفاده از رنگ در خروجی مقادیر ممکن: • always • never • debug • auto --quiet بی‌صدا کردن خروجی‌های غیر اصلی دستور برای نمونه، `jj file list` همچنان فایل‌ها را فهرست می‌کند، اما به شما نمی‌گوید که آیا از رونوشت کاری اسنپ‌شات گرفته شده یا نوادگان بازپایه‌ریزی شده‌اند یا خیر. هشدارها و خطاها همچنان چاپ خواهند شد. --no-pager غیرفعال کردن صفحه‌بندی‌کننده (pager) --config گزینه‌های پیکربندی اضافی (قابلیت تکرار دارد) نام باید به‌صورت کلیدهای نقطه‌دار TOML مشخص شود. مقدار باید به‌صورت یک عبارت TOML تعیین شود. اگر مقدار رشته‌ای درون ساختارهای TOML (مانند نشانه‌گذاری آرایه) محصور نشده باشد، می‌توان از علامت‌های نقل‌قول صرف‌نظر کرد. --config-file فایل‌های پیکربندی اضافی (قابلیت تکرار دارد) run jj-run(1)