jj-evolog(1) General Commands Manual jj-evolog(1)

jj-evolog - نمایش نحوه تکامل یک تغییر در طول زمان

jj evolog [-r|--revisions] [-R|--repository] [--ignore-working-copy] [-n|--limit] [--no-integrate-operation] [--reversed] [-G|--no-graph] [--ignore-immutable] [--at-operation] [-T|--template] [--debug] [-p|--patch] [--color] [-s|--summary] [--quiet] [--stat] [--no-pager] [--types] [--config] [--name-only] [--config-file] [--git] [--color-words] [--tool] [--context] [--ignore-all-space] [--ignore-space-change] [-h|--help]

نمایش نحوه تکامل یک تغییر در طول زمان

فهرستی از کامیت‌های پیشینی که یک تغییر به آن‌ها اشاره داشته است را نشان می‌دهد. کامیت فعلی یک تغییر زمانی تکامل می‌یابد که آن تغییر به‌روزرسانی شود، بازپایه‌ریزی گردد و غیره.

دنبال کردن تغییرات از این بازنگری‌ها
محدود کردن تعداد بازنگری‌ها برای نمایش

پس از مرتب‌سازی توپولوژیکی بازنگری‌ها، اما پیش از معکوس شدن آن‌ها اعمال می‌شود.

نمایش بازنگری‌ها به ترتیب معکوس (بازنگری‌های قدیمی‌تر در ابتدا)
نمایش فهرستی تخت از بازنگری‌ها به‌جای نمودار (گراف)
رندر کردن هر بازنگری با استفاده از قالب داده‌شده

تمام متدهای بدون آرگومان [`CommitEvolutionEntry` type] به‌عنوان کلمات کلیدی در عبارت قالب در دسترس هستند. برای اطلاعات بیشتر [`jj help -k templates`] را ببینید.

در صورت عدم تعیین، به‌طور پیش‌فرض از تنظیمات templates.evolog استفاده می‌شود.

[`CommitEvolutionEntry` type]: https://docs.jj-vcs.dev/latest/templates/#commitevolutionentry-type

[`jj help -k templates`]: https://docs.jj-vcs.dev/latest/templates

نمایش وصله (patch) در مقایسه با نسخهٔ قبلی این تغییر

اگر نسخهٔ قبلی والدین متفاوتی داشته باشد، به‌طور موقت بر روی والدین نسخهٔ جدید بازپایه‌ریزی می‌شود تا تفاوت حاصل به تغییرات نامربوط آلوده نشود.

چاپ راهنما (مشاهده خلاصه با '-h')

برای هر مسیر، تنها اصلاح، اضافه یا حذف شدن آن نشان داده شود
نمایش هیستوگرام تغییرات
برای هر مسیر، تنها نوع آن قبل و بعد از تغییر نشان داده شود

تفاوت به‌صورت دو حرف نمایش داده می‌شود. حرف اول نوع قبلی و حرف دوم نوع بعدی را نشان می‌دهد. '-' نشان می‌دهد مسیر وجود نداشته است، 'F' نشان‌دهندهٔ یک فایل معمولی، 'L' نشان‌دهندهٔ یک پیوند نمادین (symlink)، 'C' نشان‌دهندهٔ یک تداخل (conflict)، و 'G' نشان‌دهندهٔ یک زیرماژول Git است.

برای هر مسیر، تنها مسیر آن نشان داده شود

معمولاً برای دستورات پوسته (shell) کاربرد دارد، مانند: `jj diff -r @- --name-only | xargs perl -pi -e's/OLD/NEW/g`

نمایش تفاوت در قالب Git
نمایش تفاوت در سطح کلمه که در آن تغییرات تنها با رنگ مشخص می‌شوند
تولید تفاوت توسط دستور خارجی

یک قالب توکار نیز می‌تواند به‌صورت `:<name>` مشخص شود. برای نمونه، `--tool=:git` معادل `--git` است.

تعداد خطوط متنی پیرامون (context) جهت نمایش
نادیده گرفتن فاصله‌های خالی هنگام مقایسه خطوط
نادیده گرفتن تغییرات در تعداد فاصله‌های خالی هنگام مقایسه خطوط

مسیر مخزنی که عملیات روی آن انجام می‌شود.

به‌طور پیش‌فرض، Jujutsu به دنبال نزدیک‌ترین دایرکتوری .jj در اجداد دایرکتوری کاری فعلی می‌گردد.

از رونوشت کاری (working copy) اسنپ‌شات گرفته نشود و آن را به‌روزرسانی نکند.

به‌طور پیش‌فرض، Jujutsu در آغاز هر دستور از رونوشت کاری اسنپ‌شات می‌گیرد. همچنین در صورت تغییر کامیت رونوشت کاری (`@`) توسط دستور، رونوشت کاری در پایان دستور نیز به‌روزرسانی می‌شود. اگر می‌خواهید از اسنپ‌شات گرفتن از رونوشت کاری جلوگیری کنید و در عوض یک کامیت رونوشت کاری احتمالا قدیمی را ببینید، می‌توانید از --ignore-working-copy استفاده کنید. این گزینه برای مثال در خط فرمان (command prompt) مفید است، به‌ویژه اگر فرآیند دیگری داشته باشید که کامیت‌های رونوشت کاری را ثبت می‌کند.

بارگذاری مخزن در یک عملیات خاص با --at-operation به‌طور ضمنی گزینهٔ --ignore-working-copy را فعال می‌کند.

دستور طبق معمول اجرا شود اما هیچ عملیاتی ادغام نشود.

هنگامی که این گزینه مشخص شود، عملیات همچنان مانند قبل ایجاد خواهند شد اما در تاریخچهٔ عملیات (operation log) ادغام نمی‌شوند. همچنین رونوشت کاری نیز به‌روزرسانی نخواهد شد.

دستور، شناسهٔ عملیات حاصل را چاپ خواهد کرد. می‌توانید آن شناسه را برای مثال به jj --at-op ارسال کنید تا وضعیت به‌دست‌آمدهٔ مخزن را بررسی نمایید، یا آن را به jj op restore بدهید تا مخزن به آن وضعیت بازگردانده شود. همچنین می‌توانید شناسه را به jj op integrate بدهید تا عملیات ادغام شود.

توجه داشته باشید که این کار مانع از عوارض جانبی خارج از مخزن *نمی‌شود*. برای نمونه، jj git push --no-integrate-operation همچنان عملیات ارسال (push) را انجام خواهد داد.

امکان بازنویسی کامیت‌های تغییرناپذیر (immutable) مجاز باشد.

به‌طور پیش‌فرض، Jujutsu از بازنویسی کامیت‌هایی که در مجموعه کامیت‌های تغییرناپذیر پیکربندی شده‌اند جلوگیری می‌کند. این گزینه آن بررسی را غیرفعال کرده و اجازه می‌دهد هر کامیتی به‌جز کامیت ریشه (root commit) را بازنویسی کنید.

این گزینه تنها بر این بررسی تأثیر می‌گذارد و روی مجموعه بازنگری `immutable_heads()` یا کلمه کلیدی قالب `immutable` اثری ندارد.

عملیاتی که مخزن باید در نقطهٔ آن بارگذاری شود.

به‌طور پیش‌فرض، Jujutsu مخزن را در تازه‌ترین عملیات، یا در صورت وجود عملیات‌های واگرا، در نقطهٔ ادغام آن‌ها بارگذاری می‌کند.

می‌توانید از --at-op=<operation_ID> استفاده کنید تا ببینید مخزن در یک عملیات پیشین چگونه بوده است. برای نمونه jj --at-op=<operation_ID> st آنچه را که jj st در زمان پایان یافتن آن عملیات نشان می‌داد به شما نمایش می‌دهد. مقدار --at-op=@ تقریباً همانند حالت پیش‌فرض عمل می‌کند، با این تفاوت که عملیات‌های واگرا هرگز ادغام نخواهند شد.

از دستور jj op log برای یافتن شناسه عملیات مورد نظر خود استفاده کنید. هر پیشوند یکتایی از شناسه عملیات کافی خواهد بود.

هنگام بارگذاری مخزن در یک عملیات پیشین، رونوشت کاری نادیده گرفته می‌شود، درست همان‌طور که گویی گزینهٔ --ignore-working-copy مشخص شده است.

اجرای دستورات تغییردهنده (mutating) هنگام بارگذاری مخزن در یک عملیات پیشین امکان‌پذیر است. انجام این کار معادل اجرای همزمان دستورات از مبدأ آن عملیات پیشین است. به‌ندرت دلیلی برای انجام چنین کاری وجود دارد، اما ممکن است.

فعال‌سازی ثبت وقایع اشکال‌زدایی (debug logging)
تعیین زمان استفاده از رنگ در خروجی

مقادیر ممکن:

  • always
  • never
  • debug
  • auto
بی‌صدا کردن خروجی‌های غیر اصلی دستور

برای نمونه، jj file list همچنان فایل‌ها را فهرست می‌کند، اما به شما نمی‌گوید که آیا از رونوشت کاری اسنپ‌شات گرفته شده یا نوادگان بازپایه‌ریزی شده‌اند یا خیر.

هشدارها و خطاها همچنان چاپ خواهند شد.

غیرفعال کردن صفحه‌بندی‌کننده (pager)
گزینه‌های پیکربندی اضافی (قابلیت تکرار دارد)

نام باید به‌صورت کلیدهای نقطه‌دار TOML مشخص شود. مقدار باید به‌صورت یک عبارت TOML تعیین شود. اگر مقدار رشته‌ای درون ساختارهای TOML (مانند نشانه‌گذاری آرایه) محصور نشده باشد، می‌توان از علامت‌های نقل‌قول صرف‌نظر کرد.

فایل‌های پیکربندی اضافی (قابلیت تکرار دارد)
evolog