git-annex-diffdriver(1) General Commands Manual git-annex-diffdriver(1)

git-annex-diffdriver - درایور سفارشی تفاوت‌سنجی برای فایل‌های ضمیمه‌شده

git annex diffdriver [--get,--text] [-- --diffopts --]

git annex diffdriver -- cmd --cmdopts --

به‌طور معمول، هنگام اجرای git diff روی فایل‌های ضمیمه‌شده (annexed)، تغییراتی که در گیت نشانه‌گذاری شده‌اند (staged) نمایش داده می‌شوند؛ مانند پیوندهای نمادین (symlinks) و اشاره‌گرهای ضمیمه. این دستور به git diff امکان می‌دهد تا به‌جای آن، محتوای فایل‌های ضمیمه‌شده را مقایسه و تفاوت‌سنجی کند.

این دستور می‌تواند هم به‌عنوان یک تفاوت‌سنج متنی ساده و هم به‌عنوان یک واسط (shim) که درایور تفاوت‌سنجی خارجی گیت را اجرا می‌کند، به کار رود.

اگر برخی از فایل‌های ضمیمه‌شده شما ساختار متنی دارند و می‌توان آن‌ها را به‌طور سودمندی با diff(1) تفاوت‌سنجی کرد، می‌توانید گیت را به‌گونه‌ای پیکربندی کنید که از این دستور برای مقایسه آن‌ها استفاده کند؛ برای این منظور .gitattributes را به‌صورت مثلاً *.txt diff=annextextdiff تنظیم نموده و دستور git config diff.annextextdiff.command git annex diffdriver --text را اجرا نمایید.

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

به‌طور معمول، هنگام استفاده از git diff با یک درایور تفاوت‌سنجی خارجی، محتوای فایل‌های ضمیمه‌شده توسط درایور مشاهده نمی‌شود، چرا که گیت پیوندهای نمادین یا فایل‌های اشاره‌گر git-annex را به آن تحویل می‌دهد. این دستور با اجرای درایور تفاوت‌سنجی خارجی واقعی و ارسال مسیرهای محتوای ضمیمه‌شده به آن، مشکل را برطرف می‌کند. گیت را طوری پیکربندی کنید که از "git-annex diffdriver -- cmd params --" به‌عنوان درایور تفاوت‌سنجی خارجی استفاده کند، به‌طوری که cmd همان درایور تفاوت‌سنجی خارجی موردنظر شما برای اجرا، و params پارامترهای اضافی برای ارسال به آن هستند. به عبارت "--" پایانی که الزامی است توجه کنید.

به‌عنوان مثال، برای استفاده از برنامه j-c-diff به‌عنوان درایور تفاوت‌سنجی خارجی، متغیر زیر را تنظیم کنید:

GIT_EXTERNAL_DIFF="git-annex diffdriver -- j-c-diff --"

برای دریافت محتوای فایل‌های ضمیمه‌شده از ریموت‌ها در مواقعی که هنوز در سیستم محلی موجود نیستند، از گزینه --get استفاده کنید. محتوای فایل برای استفاده‌های بعدی در مخزن باقی می‌ماند تا زمانی که با روش‌های معمول رهاسازی (drop) شود.

برای تفاوت‌سنجی فایل‌های متنی با diff(1)، از گزینه --text استفاده کنید. برای ارسال گزینه‌های اضافی به diff(1)، از قالبی مانند "--text -- --color --" استفاده کنید.

جهت استفاده از دستور درایور تفاوت‌سنجی خارجی، گزینه‌ها باید با "--" شروع شوند و به دنبال آن دستور درایور تفاوت‌سنجی، گزینه‌های آن و سپس یک "--" دیگر قرار گیرد.

همچنین می‌توان از git-annex-common-options(1) نیز استفاده کرد.

git-annex(1)

Joey Hess <id@joeyh.name>