NOTMUCH-GIT(1) notmuch NOTMUCH-GIT(1)

notmuch-git - مدیریت برچسب‌های notmuch با git

notmuch git [-h] [-N] [-C repo] [-p prefix] [-v] [-l log level] subcommand

nmbug [-h] [-C repo] [-p prefix] [-v] [-l log level] subcommand

مدیریت برچسب‌های notmuch با Git.

گزینه‌های پشتیبانی‌شده برای notmuch git عبارتند از:

نمایش پیام راهنما و خروج
تنظیم مقادیر پیش‌فرض برای --tag-prefix و --git-dir متناسب با سامانه ردیابی باگ notmuch <>
عملیات روی مخزن گیت repo. برای مقادیر پیش‌فرض، به REPOSITORY LOCATION مراجعه کنید.
عملیات تنها روی برچسب‌های دارای پیشوند prefix. برای مقادیر پیش‌فرض، به PREFIX VALUE مراجعه کنید.
نمایش شماره نسخه notmuch-git و خروج
میزان پرگویی گزارش (log verbosity)، یکی از موارد: critical، error، warning، info، debug. پیش‌فرض warning است.

برای دریافت راهنما در مورد یک زیردستور خاص، این فرمان را اجرا کنید: 'notmuch-git ... <command> --help'.

ایجاد یک فایل بایگانی tar از مجموعه برچسب‌های کامیت‌شده با استفاده از 'git archive'. برای جزئیات محتویات بایگانی به REPOSITORY CONTENTS مراجعه کنید.

درخت یا کامیتی که بایگانی برای آن تولید می‌شود. مقدار پیش‌فرض 'HEAD' است.

در صورت وجود، هرگونه آرگومان اختیاری مستقیماً به git-archive(1) https://manpages.debian.org/git-archive.1.html ارسال می‌شود. آرگومان‌های ارسالی به git-archive بازآرایی می‌شوند تا tree-ish در انتها قرار گیرد.

به‌روزرسانی پایگاه‌داده notmuch از git.

این دستور عمدتاً برای صرف‌نظر کردن از تغییرات شما در notmuch نسبت به git کاربرد دارد.

[-f|--force]

نادیده‌گرفتن بررسی‌هایی که مانع از تغییر برچسب‌ها برای بخش بزرگی از پیام‌ها در پایگاه‌داده می‌شوند. همچنین git.safe_fraction <#nmconfig-git.safe_fraction> را ببینید.

ایجاد یک مخزن محلی notmuch git از یک منبع دوردست (ریموت).

این دستور 'git clone' را پوشش می‌دهد و گزینه‌هایی را برای جلوگیری از ایجاد درخت کاری (working tree) در عین حفظ شاخه‌های ردیابی دوردست (remote-tracking branches) و بالادست (upstreams) اضافه می‌کند.

مخزن (احتمالاً دوردست) برای کلون‌کردن از آن. برای اطلاعات بیشتر در مورد مشخص کردن مخازن، بخش URLS در git-clone(1) https://manpages.debian.org/git-clone.1.html را ببینید.

ثبت (commit) برچسب‌های منطبق با پیشوند از پایگاه‌داده notmuch در git.

متن اختیاری برای پیام کامیت.

نادیده‌گرفتن بررسی‌هایی که مانع از تغییر برچسب‌ها برای بخش بزرگی از پیام‌ها در پایگاه‌داده می‌شوند. همچنین git.safe_fraction <#nmconfig-git.safe_fraction> را ببینید.

واکشی تغییرات از مخزن دوردست (remote).

نادیده‌گرفتن پیش‌فرض پیکربندی‌شده در branch.<name>.remote برای واکشی از یک مخزن دوردست خاص (مانند origin).

نمایش راهنمای مختصر برای یکی از دستورات notmuch git.

ایجاد یک مخزن خالی notmuch git.

این دستور 'git init' را به همراه چند مرحله اضافی برای پشتیبانی از دستورات بعدی status و commit دربرمی‌گیرد.

--format-version=N

ایجاد یک مخزن در قالب با نسخهٔ N. به‌طور پیش‌فرض notmuch-git <> از بالاترین نسخهٔ پشتیبانی‌شده استفاده می‌کند، که برای اکثر موارد کاربردی بهترین انتخاب است.

یک پوشش (wrapper) برای 'git log'.

آرگومان‌های اضافی مستقیماً به 'git log' فرستاده می‌شوند.

پس از اجرای notmuch git fetch، می‌توانید تغییرات را با دستور زیر بررسی کنید:

$ notmuch git log HEAD..@{upstream}

ادغام تغییرات از 'reference' در HEAD و بارگذاری نتیجه در notmuch.

مرجع (معمولاً رأس سایر شاخه‌ها) جهت ادغام در شاخهٔ ما. پیش‌فرض @{upstream} است.

دریافت و ادغام (pull) تغییرات مخزن دوردست (remote) در notmuch.

دستور pull معادل fetch و به دنبال آن merge است. از مخزن پیکربندی‌شده در git برای شاخهٔ جاری شما استفاده می‌شود (branch.<name>.repository، احتمالاً origin، و branch.<name>.merge، احتمالاً master یا main).

مخزن «دوردست» (remote) که مبدأ دریافت است. این پارامتر می‌تواند یک URL (بخش GIT URLS را در git-pull(1) https://manpages.debian.org/git-pull.1.html ببینید) یا نام یک remote (بخش REMOTES را در git-pull(1) https://manpages.debian.org/git-pull.1.html ببینید) باشد.

مشخصهٔ مرجع یا Refspec (معمولاً نام یک شاخه) برای دریافت و ادغام. برای سایر موارد ممکن، مدخل refspec در بخش OPTIONS از git-pull(1 https://manpages.debian.org/git-pull.1.html) را ببینید.

ارسال (push) وضعیت محلی notmuch git به یک مخزن دوردست.

مخزن «دوردست» (remote) که مقصد ارسال است. این پارامتر می‌تواند یک URL (بخش GIT URLS را در git-push(1) https://manpages.debian.org/git-push.1.html ببینید) یا نام یک remote (بخش REMOTES را در git-push(1) https://manpages.debian.org/git-push.1.html ببینید) باشد.

مشخصهٔ مرجع یا Refspec (معمولاً نام یک شاخه) برای ارسال. برای سایر موارد ممکن، مدخل refspec در بخش OPTIONS از git-push(1) https://manpages.debian.org/git-push.1.html را ببینید.

نمایش به‌روزرسانی‌های معلق در notmuch یا مخزن git.

سطرهایی به این شکل چاپ می‌کند:

ng Message-Id tag

که در آن n یک نویسهٔ منفرد است که وضعیت پایگاه‌دادهٔ notmuch را نشان می‌دهد:

برچسب در پایگاه‌دادهٔ notmuch وجود دارد، اما به git کامیت نشده است (به بیان معادل، برچسب در مخزن git حذف شده است، مثلاً توسط یک pull، اما در پایگاه‌دادهٔ notmuch بازگردانی نشده است).

برچسب در مخزن git وجود دارد، اما در پایگاه‌دادهٔ notmuch بازگردانی نشده است (به بیان معادل، برچسب در notmuch حذف شده است).

پیام ناشناخته است (در پایگاه‌دادهٔ محلی notmuch موجود نیست).

نویسهٔ دوم g (در صورت وجود) تفاوت میان شاخه‌های محلی و بالادستی (upstream) را نشان می‌دهد. معمولاً برای به‌روزرسانی این وضعیت باید notmuch git fetch اجرا شود.

برچسب در بالادست (upstream) وجود دارد، اما در شاخهٔ git محلی نیست.

برچسب در شاخهٔ git محلی وجود دارد، اما در بالادست نیست.

برچسب‌ها در مخزن git (و هنگام خروجی گرفتن) به‌صورت مجموعه‌ای از فایل‌های خالی ذخیره می‌شوند. این فایل‌های خالی درون دایرکتوری‌ای با نام شناسهٔ پیام (message-id) قرار دارند.

در ادامه، encode() نشان‌دهندهٔ یک کدگذاری سازگار و امن با سیستم‌فایل POSIX است. این کدگذاری نویسه‌های الفبایی-عددی و نویسه‌های +-_@=.,: را حفظ می‌کند. تمامی بایت‌های دیگر با % و به‌دنبال آن یک عدد هگزادسیمال دو رقمی جایگزین می‌شوند.

در حال حاضر notmuch-git <> می‌تواند هر نسخه‌ای از قالب را بخواند، اما تنها قادر است (از طریق init) مخازن نسخه ۱ را ایجاد کند.

این قالب موروثی و قدیمی است که پیش از نگارش 0.37 توسط ابزار nmbug ایجاد می‌شد. برای پیامی با Message-Id id، به ازای هر برچسب tag، یک فایل خالی با مسیر زیر وجود دارد:

tags/ encode (id) / encode (tag)

در نسخهٔ قالب ۱ و جدیدتر، شمارهٔ نسخهٔ قالب درون فایلی در بالاترین سطح با نام FORMAT قرار دارد.

برای پیامی با Message-Id id، به ازای هر برچسب tag، یک فایل خالی با مسیر زیر وجود دارد:

tags/ hash1 (id) / hash2 (id) encode (id) / encode (tag)

توابع درهم‌سازی هر کدام نمایانگر یک بایت از خلاصهٔ هگزادسیمال blake2b هستند.

در مقایسه با نسخه ۰، این ساختار تعداد زیردایرکتوری‌های درون هر دایرکتوری را کاهش می‌دهد.

notmuch-git <> نخستین مورد از موارد زیر را که دارای مقداری غیرخالی باشد برای مکان‌یابی مخزن git به‌کار می‌گیرد:

  • گزینهٔ --git-dir.
  • متغیر محیطی NOTMUCH_GIT_DIR.
  • مورد پیکربندی git.path <#nmconfig-git.path>
  • در صورت فراخوانی به‌صورت nmbug یا با گزینهٔ --nmbug، $HOME/.nmbug؛ در غیر این صورت $XDG_DATA_HOME/notmuch/$NOTMUCH_PROFILE/git.

notmuch-git <> نخستین مورد از موارد زیر را که مقداری غیرتهی داشته باشد برای تعیین پیشوند برچسب استفاده می‌کند:

  • گزینهٔ --tag-prefix.
  • متغیر محیطی NOTMUCH_GIT_PREFIX.
  • مورد پیکربندی git.tag_prefix <#nmconfig-git.tag_prefix>.
  • در صورت فراخوانی به‌صورت nmbug یا با گزینهٔ --nmbug، notmuch::، و در غیر این صورت رشتهٔ خالی.

متغیر NOTMUCH_PROFILE <#envvar-NOTMUCH_PROFILE> بر «مکان مخزن» (REPOSITORY LOCATION) تأثیر می‌گذارد. اگر تنظیم نشده باشد، مقدار 'default' در نظر گرفته می‌شود.

مکان پیش‌فرض مخزن git. توسط --git-dir بازنویسی می‌شود.
پیشوند برچسب (فیلتر) پیش‌فرض. توسط --tag-prefix بازنویسی می‌شود.

notmuch <#notmuch-1>, notmuch-dump <#notmuch-dump-1>, notmuch-restore <#notmuch-restore-1>, notmuch-tag <#notmuch-tag-1>

Carl Worth و افراد بسیار دیگر

2009-2026, Carl Worth and many others

April 17, 2026 0.40