.TH git-annex-preferred-content 1 .SH "نام (NAME)" git-annex-preferred-content \- تنظیمات محتوای ترجیحی برای مخازن .PP .SH "توضیحات (DESCRIPTION)" هر مخزن دارای یک تنظیم محتوای ترجیحی (preferred content) است که مشخص می‌کند مخزن مایل است چه محتوایی در آن موجود باشد. این تنظیمات را می‌توان با استفاده از \fBgit annex vicfg\fP یا \fBgit annex wanted\fP پیکربندی کرد. این تنظیمات توسط گزینه \fB\-\-auto\fP\fR،\fP توسط \fBgit annex sync \-\-content\fP\fR،\fP توسط خوشه‌ها (clusters) و توسط دستیار git-annex استفاده می‌شوند. .PP اگرچه محتوای ترجیحی بیانگر یک ترجیح است، می‌توان آن را به سادگی با استفاده از \fBgit annex drop\fP نادیده گرفت. از سوی دیگر، تنظیمات محتوای الزامی (required content) اجباری هستند؛ \fBgit annex drop\fP در صورتی که رها کردن یک فایل ناقض تنظیمات محتوای الزامی آن باشد، از رها کردن آن خودداری می‌کند. محتوای الزامی یک مخزن را می‌توان با استفاده از \fBgit annex vicfg\fP یا \fBgit annex required\fP پیکربندی کرد. .PP .SH "نحو (SYNTAX)" عبارت‌های محتوای ترجیحی از نحوی مشابه با git-annex\-matching\-options(1) بدون خط تیره استفاده می‌کنند. برای مثال: .PP .nf exclude=archive/* and (include=*.mp3 or smallerthan=1mb) .fi .PP ایده کلی این است که عبارتی می‌نویسید که فایل‌ها با آن مطابقت داده می‌شوند. اگر فایلی با آن مطابقت داشته باشد، مخزن تمایل دارد محتوای آن را ذخیره کند. اگر مطابقت نداشته باشد، مخزن مایل است محتوای آن را رها کند (در صورتی که نسخه‌های کافی از آن در جای دیگری وجود داشته باشد که اجازه حذف آن را بدهد). .PP یک عبارت محتوای ترجیحی خالی مانند عدم پیکربندی محتوای ترجیحی تلقی می‌شود. .PP .SH "عبارت‌ها (EXPRESSIONS)" .IP "\fBinclude=glob\fP / \fBexclude=glob\fP" .IP تطبیق فایل‌ها برای شامل شدن یا مستثنی شدن. .IP در حالی که گزینه‌های خط فرمان \fB\-\-include=glob\fP و \fB\-\-exclude=glob\fP فایل‌ها را نسبت به دایرکتوری جاری تطبیق می‌دهند، عبارت‌های محتوای ترجیحی فایل‌ها را نسبت به ریشه اصلی مخزن git تطبیق می‌دهند. .IP یک glob چیزی شبیه به \fBfoo.*\fP یا \fBb?r\fP است. الگوهای glob همچنین می‌توانند شامل رده‌های کاراکتری مانند \fBfoo[Bb]ar\fP و همچنین رده‌های کاراکتری اضافی POSIX مانند \fB[[:space:]]\fP باشند. این ویژگی مفید است، زیرا یک glob در عبارت محتوای ترجیحی نمی‌تواند حاوی فاصله باشد. برای اطلاعات بیشتر در مورد globها، به صفحه راهنمای \fBglob(7)\fP مراجعه کنید. .IP برای مثال، فرض کنید پس از اتمام کار با فایل‌ها، آن‌ها را در دایرکتوری‌های \fBarchive\fP قرار می‌دهید. در این صورت می‌توانید لپ‌تاپ خود را به شکلی پیکربندی کنید که ترجیح دهد آن فایل‌ها را نگه ندارد، به این صورت: \fBexclude=*/archive/*\fP .IP هنگامی که یک زیردایرکتوری به یک ریموت خاص صادر یا از آن وارد می‌شود (به git-annex\-export(1) و git-annex\-import(1) مراجعه کنید)، این عبارات نسبت به ریشه آن زیردایرکتوری تطبیق داده می‌شوند. .IP توجه داشته باشید که هنگام اجرای یک دستور با گزینه \fB\-\-all\fP یا در یک مخزن bare، هیچ نام فایلی با یک شیء annex شده مرتبط نیست و بنابراین "include=" و "exclude=" تطبیق نخواهند یافت. .IP .IP "\fBcopies=number\fP" فقط فایل‌هایی را مطابقت می‌دهد که git-annex بر این باور است که تعداد مشخص‌شده نسخه یا بیشتر از آن را دارند. توجه داشته باشید که این عبارت ریموت‌ها را برای تأیید اینکه آیا نسخه‌ها هنوز وجود دارند یا خیر بررسی نمی‌کند. .IP برای تصمیم‌گیری درباره اینکه آیا محتوا باید رها شود یا خیر، git-annex عبارت محتوای ترجیحی را با این فرض ارزیابی می‌کند که محتوا *قبلاً* رها شده است. اگر محتوا در آن شرایط دیگر مورد نیاز نباشد، عمل رها کردن قابل انجام است. بنابراین، برای مثال، \fBcopies=2\fP در یک عبارت محتوای ترجیحی تنها زمانی اجازه رها شدن محتوا را می‌دهد که در حال حاضر ۳ نسخه از آن وجود داشته باشد، شامل همان مخزنی که محتوا از آن رها می‌شود. این متفاوت با اجرای \fBgit annex drop \-\-copies=2\fP است که فایل‌هایی را که در حال حاضر ۲ نسخه دارند رها خواهد کرد. .IP .IP "\fBcopies=trustlevel:number\fP" فقط فایل‌هایی را مطابقت می‌دهد که git-annex معتقد است تعداد مشخص‌شده نسخه از آن‌ها روی ریموت‌هایی با سطح اعتماد مشخص‌شده وجود دارد. برای مثال، \fBcopies=trusted:2\fP .IP برای تطبیق با هر سطح اعتمادی برابر یا بالاتر از یک سطح معین، از \fBtrustlevel+\fP استفاده کنید؛ برای مثال: \fBcopies=semitrusted+:2\fP .IP .IP "\fBcopies=groupname:number\fP" فقط فایل‌هایی را مطابقت می‌دهد که git-annex معتقد است تعداد مشخص‌شده نسخه از آن‌ها روی ریموت‌های موجود در گروه مشخص‌شده قرار دارد. برای مثال، \fBcopies=archive:2\fP .IP عبارت‌های محتوای ترجیحی معادلی برای گزینه \fB\-\-in\fP ندارند، اما گروه‌ها می‌توانند کارهای مشابهی انجام دهند. می‌توانید مخازن را به گروه‌ها اضافه کنید، و در عبارت محتوای ترجیحی بر اساس گروه‌ها تطبیق انجام دهید. بنابراین به جای \fB\-\-in=usbdrive\fP\fR،\fP همه درایوهای USB را در یک گروه "transfer" قرار دهید و از \fBcopies=transfer:1\fP استفاده کنید. .IP .IP "\fBlackingcopies=number\fP" فقط فایل‌هایی را مطابقت می‌دهد که git-annex معتقد است برای برآورده کردن تنظیمات numcopies خود، نیاز به ایجاد تعداد مشخص‌شده یا بیشتری نسخه اضافی دارند. .IP .IP "\fBapproxlackingcopies=number\fP" مشابه lackingcopies است، اما تنظیمات annex.numcopies در فایل .gitattributes را بررسی نمی‌کند. این امر آن را به طور قابل‌توجهی سریع‌تر می‌کند. .IP .IP "\fBinbackend=backendname\fP" فقط فایل‌هایی را مطابقت می‌دهد که محتوای آن‌ها با استفاده از بک‌اند کلید-مقدار مشخص‌شده ذخیره شده است. .IP برای اطلاعات درباره بک‌اندهای موجود، به git-annex\-backends(1) مراجعه کنید. .IP .IP "\fBsecurehash\fP" فقط فایل‌هایی را مطابقت می‌دهد که محتوای آن‌ها با استفاده از یک تابع از نظر رمزنگاری امن هش شده باشد. .IP .IP "\fBinallgroup=groupname\fP" فقط فایل‌هایی را مطابقت می‌دهد که git-annex معتقد است در تمام مخازن موجود در گروه مشخص‌شده حاضر هستند. .IP .IP "\fBonlyingroup=groupname\fP" فایل‌هایی را مطابقت می‌دهد که git-annex معتقد است در حداقل یک مخزن از گروه مشخص‌شده وجود دارند و در هیچ مخزنی خارج از آن گروه حضور ندارند. .IP .IP "\fBsmallerthan=size\fP / \fBlargerthan=size\fP" فقط فایل‌هایی را مطابقت می‌دهد که اندازه محتوای آن‌ها کوچک‌تر یا بزرگ‌تر از اندازه مشخص‌شده باشد. .IP اندازه را می‌توان با هر یک از واحدهای متداول تعیین کرد؛ برای مثال، "0.5 gb" یا "100 KiloBytes" .IP .IP "\fBmetadata=field=glob\fP" فقط فایل‌هایی را مطابقت می‌دهد که دارای فیلد فراداده‌ای متصل‌شده‌ای هستند که مقدار آن با glob مطابقت دارد. مقادیر فیلدهای فراداده بدون حساسیت به حروف کوچک و بزرگ مطابقت داده می‌شوند. .IP یک glob چیزی شبیه به \fBfoo.*\fP یا \fBb?r\fP است. الگوهای glob همچنین می‌توانند شامل رده‌های کاراکتری مانند \fBfoo[Bb]ar\fP و همچنین رده‌های کاراکتری اضافی POSIX مانند \fB[[:space:]]\fP باشند. این ویژگی مفید است، زیرا یک glob در عبارت محتوای ترجیحی نمی‌تواند حاوی فاصله باشد. برای اطلاعات بیشتر در مورد globها، به صفحه راهنمای \fBglob(7)\fP مراجعه کنید. .IP برای تطبیق با برچسب "done"، از \fBmetadata=tag=done\fP استفاده کنید. .IP برای تطبیق با فراداده نویسنده، از \fBmetadata=author=*Smith\fP استفاده کنید. .IP .IP "\fBmetadata=fieldnumber\fP" .IP "\fBmetadata=field<=number\fP / \fBmetadata=field>=number\fP" فقط فایل‌هایی را مطابقت می‌دهد که دارای فیلد فراداده متصل‌شده‌ای هستند که مقدار آن یک عدد بوده و کوچک‌تر یا بزرگ‌تر از عدد مشخص‌شده است. .IP برای تطبیق با فایل‌های PDF که بین ۱۰۰ تا ۲۰۰ صفحه دارند (با این فرض که ابزاری این فراداده را تنظیم کرده باشد)، از عبارت زیر استفاده کنید: \fBmetadata=pagecount>=100 and metadata=pagecount<=200\fP .IP .IP "\fBurl=glob\fP" زمانی تطبیق می‌یابد که محتوا به عنوان موجود در یک نشانی وب (URL) که با glob مطابقت دارد ثبت شده باشد. .IP .IP "\fBpresent\fP" باعث می‌شود محتوا در صورتی که در حال حاضر موجود باشد مورد نیاز تلقی شود، اما در غیر این صورت خیر. .IP این کار انتقال دستی محتوا با استفاده از git-annex را بر عهده شما می‌گذارد. می‌توانید از این ویژگی برای جلوگیری از تأثیر تنظیمات محتوای ترجیحی بر یک زیردایرکتوری استفاده کنید. برای مثال: \fBauto/* or (include=ad\-hoc/* and present)\fP .IP توجه داشته باشید که \fBnot present\fP عبارت معقولی برای قرار دادن در یک عبارت محتوای ترجیحی نیست. این عبارت می‌گوید محتوایی را که موجود نیست دریافت کن، اما سپس آن را رها کن! اگر چنین چیزی وارد یک عبارت محتوای ترجیحی شود، git-annex تشخیص می‌دهد که عبارت پایدار نیست و ترتیبی می‌دهد که هرگز تطبیق نیابد. .IP .IP "\fBinpreferreddir\fP" باعث می‌شود اگر محتوا در دایرکتوری با نام مشخصی (واقع در هر کجای درخت دایرکتوری‌ها) باشد، ترجیح داده شود. .IP نام دایرکتوری را می‌توان با دستور زیر پیکربندی کرد: \fBgit annex enableremote $remote preferreddir=$dirname\fP .IP (اگر هیچ نام دایرکتوری پیکربندی نشده باشد، به طور پیش‌فرض از "public" استفاده می‌شود.) .IP توجه داشته باشید که هنگام اجرای یک دستور با گزینه \fB\-\-all\fP یا در یک مخزن bare، هیچ نام فایلی با یک شیء annex شده مرتبط نیست و بنابراین "inpreferreddir" مطابقت نخواهد یافت. .IP .IP "\fBstandard\fP" نرم‌افزار git-annex با چندین عبارت محتوای ترجیحی توکار ارائه می‌شود که می‌توانند برای مخازن موجود در گروه‌های استاندارد مانند "client" و "transfer" استفاده شوند. .IP هنگامی که یک مخزن دقیقاً در یکی از این گروه‌ها قرار دارد، می‌توانید از کلمه کلیدی "standard" در عبارت محتوای ترجیحی آن استفاده کنید تا با هر محتوایی که عبارت آن گروه تطبیق می‌دهد، مطابقت یابد. .IP اغلب، کل عبارت محتوای ترجیحی صرفاً "standard" است. اما می‌توانید کارهای پیچیده‌تری نیز انجام دهید، برای مثال: \fBstandard or include=otherdir/*\fP .IP .IP "\fBgroupwanted\fP" کلمه کلیدی "groupwanted" می‌تواند برای اشاره به یک عبارت محتوای ترجیحی که با یک گروه مرتبط است استفاده شود، تا زمانی که در میان گروه‌هایی که مخزن در آن‌ها عضو است، دقیقاً یک چنین عبارتی وجود داشته باشد. این کلمه کلیدی مشابه "standard" است، اما می‌توانید عبارت‌های محتوای ترجیحی را با استفاده از \fBgit annex groupwanted\fP پیکربندی کنید. .IP هنگام نوشتن یک عبارت محتوای ترجیحی groupwanted، می‌توانید از تمام کلمات کلیدی مستندشده در اینجا، از جمله "standard" استفاده کنید (اما نه "groupwanted"). .IP برای مثال، جهت ایجاد نسخه‌ای از عبارت محتوای ترجیحی استاندارد client که فایل‌های موجود در دایرکتوری "out" را نمی‌خواهد، می‌توانید دستور زیر را اجرا کنید: \fBgit annex groupwanted client "standard and exclude=out/*"\fP .IP سپس مخازنی که در گروه client هستند و عبارت محتوای ترجیحی آن‌ها روی "groupwanted" تنظیم شده است از آن استفاده خواهند کرد، در حالی که سایر مخازن client که عبارت محتوای ترجیحی آن‌ها روی "standard" تنظیم است از عبارت استاندارد استفاده می‌کنند. .IP یا می‌توانید گروه جدیدی ایجاد کنید با عبارت محتوای ترجیحی سفارشی خود که بر اساس نیازهای شما تنظیم شده است، و هر مخزنی که در این گروه قرار دهید و محتوای ترجیحی آن را روی "groupwanted" تنظیم کنید از آن استفاده خواهد کرد. .IP برای مثال، گروه archive تنها می‌خواهد ۱ نسخه از هر فایل را آرشیو کند که میان تمام مخازن موجود در گروه پخش شده است. در اینجا نحوه پیکربندی گروهی به نام redundantarchive آورده شده است که در عوض می‌خواهد شامل ۳ نسخه از هر فایل باشد: .IP .nf git annex groupwanted redundantarchive "not (copies=redundantarchive:3)" for repo in foo bar baz; do git annex group $repo redundantarchive git annex wanted $repo groupwanted done .fi .IP .IP "\fBunused\fP" فقط کلیدهایی را مطابقت می‌دهد که \fBgit annex unused\fP آن‌ها را به عنوان استفاده‌نشده تشخیص داده است. .IP این کلمه کلیدی با گزینه \fB\-\-unused\fP مرتبط است. با این حال، قرار دادن \fBunused\fP در یک عبارت محتوای ترجیحی باعث نمی‌شود git-annex آن کلیدهای استفاده‌نشده را بررسی کند. بنابراین وقتی git-annex فقط عبارت‌های محتوای ترجیحی را در برابر فایل‌های موجود در مخزن (که بدیهی است در حال استفاده هستند) بررسی می‌کند، \fBunused\fP در یک عبارت محتوای ترجیحی با هیچ چیزی مطابقت نخواهد یافت. .IP پس چه زمانی \fBunused\fP در یک عبارت محتوای ترجیحی مفید است؟ .IP استفاده از \fBgit annex sync \-\-content \-\-all\fP روی تمام فایل‌ها، از جمله فایل‌های استفاده‌نشده، عمل خواهد کرد و \fBunused\fP را در عبارت‌های محتوای ترجیحی در نظر می‌گیرد. .IP دستیار git-annex به صورت دوره‌ای فایل‌های استفاده‌نشده را پویش می‌کند و آن‌ها را به مخزنی منتقل می‌کند که عبارت محتوای ترجیحی آن بیان می‌کند که آن فایل‌ها را می‌خواهد. (یا اگر annex.expireunused تنظیم شده باشد، ممکن است صرفاً آن‌ها را حذف کند.) .IP .IP "\fBbalanced=groupname[:number|:lackingcopies]\fP" باعث می‌شود محتوا به طور یکنواخت میان مخازن موجود در گروه متعادل شود. .IP عدد مشخص‌شده، تعداد مخازنی در گروه است که هر فایل را می‌خواهند. در صورت مشخص نشدن، مقدار پیش‌فرض ۱ است. .IP برای مثال، عبارت "balanced=backup:2"، هنگامی که ۳ عضو در گروه backup وجود دارد، باعث می‌شود هر مخزن پشتیبان دو سوم (۲/۳) فایل‌ها را بخواهد. .IP استفاده از "lackingcopies" به جای یک عدد باعث می‌شود هر فایل میان به تعداد مخازنی در گروه متعادل شود که برای برآورده کردن پیکربندی numcopies آن نیاز است. برای مثال، "balanced=backup:lackingcopies" هنگامی که numcopies برابر ۳ باشد و ۱ نسخه دیگر نیز وجود داشته باشد، رفتاری مشابه با "balanced=backup:2" خواهد داشت. .IP برای اینکه متعادل‌سازی کار کند، هر مخزن در گروه باید محتوای ترجیحی خود را روی همان عبارت تنظیم کرده باشد. استفاده از \fBgroupwanted\fP روش مناسبی برای این کار است. .IP اندازه فایل‌ها در نظر گرفته نمی‌شود، بنابراین این امکان وجود دارد که یک مخزن فایل‌هایی بزرگ‌تر از حد معمول دریافت کند و در نتیجه زودتر از سایر مخازن پر شود. اما فایل‌ها فقط توسط مخازنی خواسته می‌شوند که فضای خالی کافی برای نگهداری آن‌ها داشته باشند. بنابراین هنگامی که یک مخزن پر شد، هر فایل اضافی میان مخازن باقی‌مانده متعادل خواهد شد. برای اینکه git-annex بداند چه زمانی یک مخزن پر شده است، باید از git-annex\-maxsize(1) برای تعیین اندازه هر مخزن در گروه استفاده کنید. .IP این معمولاً از جابجایی فایل‌ها بین مخازن جلوگیری می‌کند، حتی اگر به این معنی باشد که موارد به طور بهینه متعادل نشده‌اند. برخی از عواملی که می‌توانند تعادل را بر هم بزنند شامل اضافه شدن یک مخزن جدید به گروه، یا کپی شدن یک فایل در تعداد مخازنی بیش از عدد مشخص‌شده در گروه، یا پر شدن برخی از مخازن است. .IP اجرای دستورات git-annex با گزینه \fB\-\-rebalance\fP باعث می‌شود این عبارت در عوض مانند عبارت \fBfullybalanced\fP رفتار کند، که باعث می‌شود مخازن در صورت نیاز برای رسیدن به تعادل کامل، فایل‌ها را جابجا کنند. .IP استفاده از این گزینه در یک عبارت محتوای ترجیحی باعث می‌شود git-annex برای ردیابی میزان پر بودن مخازن نیاز به انجام کارهای اضافی داشته باشد. معمولاً این امر تأثیر چندانی بر کارایی نخواهد داشت. با این حال، نخستین باری که git-annex این عبارت را در یک مخزن گیت مشخص پردازش می‌کند، باید اندازه تمام مخازن را محاسبه کند که در صورت وجود فایل‌های زیاد ممکن است کند باشد. هنگامی که این موضوع باعث انجام کار زیادی توسط git-annex شود، پیام "(calculating repository sizes)" را نمایش می‌دهد. .IP توجه داشته باشید که \fBnot balanced\fP به همان دلایلی که برای \fBnot present\fP ذکر شد، مورد معقولی برای استفاده در عبارت محتوای ترجیحی نیست. .IP .IP "\fBfullybalanced=groupname[:number|:lackingcopies]\fP" مشابه \fBbalanced\fP است، اما اجازه می‌دهد محتوا در هر زمان بین مخازن موجود در گروه جابجا شود تا تعادل کامل حفظ گردد. .IP به طور معمول "balanced=groupname:number" معادل با عبارت زیر است: .br "(fullybalanced=groupname:number and not copies=groupname:number) or present" .IP هنگامی که از گزینه \fB\-\-rebalance\fP استفاده شود، \fBbalanced\fP معادل با \fBfullybalanced\fP خواهد بود. .IP هنگامی که عدد مشخص‌شده بزرگ‌تر از ۱ باشد و مخازن بیش از حدی در گروه بیش از ۹۰٪ پر باشند (طبق تنظیم annex.fullybalancedthreshhold\fR)،\fP این عبارت مانند \fBfullysizebalanced\fP رفتار می‌کند. .IP برای مثال، \fBfullybalanced=foo:3\fP هنگامی که گروه foo دارای ۵ مخزن است (دو مخزن ۵۰٪ پر و سه مخزن ۹۹٪ پر)، باعث می‌شود مقداری از محتوا از مخازن پر به سایر مخازن منتقل شود. جابجایی محتوا به این شکل هزینه پردازشی و زمانی بالایی دارد، اما این امکان را فراهم می‌کند که ذخیره فایل‌های جدید روی تعداد مخازن مشخص‌شده ادامه یابد. .IP .IP "\fBsizebalanced=groupname[:number|:lackingcopies]\fP" محتوا را میان مخازن درون گروه توزیع می‌کند، به طوری که میزان پر بودن مخازن به طور متناسب حفظ شود. .IP عدد مشخص‌شده، تعداد مخازنی در گروه است که هر فایل را خواهند خواست. در صورت مشخص نشدن، مقدار پیش‌فرض ۱ است. .IP برای اینکه این سازوکار کار کند، باید از git-annex\-maxsize(1) برای تعیین اندازه هر مخزن در گروه استفاده کنید. هنگامی که maxsize یک مخزن مشخص نشده باشد، آن مخزن هیچ فایلی را نخواهد خواست. .IP برای مثال، اگر یک مخزن در گروه حداکثر اندازه ۱۰۰ گیگابایت با ۶۰ گیگابایت مصرفی داشته باشد و مخزن دیگر دارای حداکثر اندازه ۵۰ گیگابایت با ۲۵ گیگابایت مصرفی باشد، مخزن کوچک‌تر فایل‌ها را خواهد خواست (فایل‌هایی که در آن جا می‌شوند)، و مخزن بزرگ‌تر هیچ فایلی را (که در مخزن کوچک‌تر جا شود) نمی‌خواهد تا زمانی که مخزن کوچک‌تر به همان نسبت پر شود. .IP توجه داشته باشید هنگامی که یک مخزن شامل فایلی باشد، حتی اگر پرتر از سایر مخازن باشد همچنان به خواستن آن ادامه خواهد داد. این امر برای جلوگیری از آشفتگی ناشی از جابجایی مداوم فایل‌ها است. .IP احتمال بر هم خوردن تعادل در این حالت نسبت به عبارت \fBbalanced=\fP بیشتر است، زیرا git-annex همیشه اطلاعات یکپارچه‌ای از میزان پر بودن مخازن ندارد. به عنوان مثال وضعیتی را در نظر بگیرید که یک لپ‌تاپ و یک رایانه رومیزی هر کدام در حال ارسال یک فایل جدید به گروه هستند. هر دو مخزنی را انتخاب می‌کنند که کمترین میزان پر بودن را دارد، اما این بدان معناست که هر دو فایل به یک مخزن می‌روند، در حالی که شاید راهکار بهتر ارسال فایل کوچک‌تر به مخزنی دیگر بود. هنگام استفاده از \fBbalanced=\fP در همان وضعیت، احتمال اینکه یک مخزن هر دو فایل را بخواهد کمتر است. .IP اجرای دستورات git-annex با گزینه \fB\-\-rebalance\fP باعث می‌شود این عبارت در عوض مانند عبارت \fBfullysizebalanced\fP رفتار کند، که باعث می‌شود مخازن در صورت لزوم برای رسیدن به تعادل کامل، فایل‌ها را جابجا کنند. .IP توجه داشته باشید که \fBnot sizebalanced\fP به همان دلایلی که برای \fBnot present\fP ذکر شد، گزینه معقولی برای استفاده در عبارت محتوای ترجیحی نیست. .IP .IP "\fBfullysizebalanced=groupname[:number|:lackingcopies]\fP" مشابه \fBsizebalanced\fP است، اما به محتوا اجازه می‌دهد در هر زمانی بین مخازن موجود در گروه جابجا شود تا تعادل کامل حفظ گردد. .IP به طور معمول "sizebalanced=groupname:number" معادل با عبارت زیر است: .br "(fullysizebalanced=groupname:number and not copies=groupname:number) or present" .IP هنگامی که گزینه \fB\-\-rebalance\fP استفاده شود، \fBsizebalanced\fP مشابه با \fBfullysizebalanced\fP خواهد بود. .IP .IP "\fBanything\fP" همیشه مطابقت دارد. .IP .IP "\fBnothing\fP" هرگز مطابقت ندارد. (معادل "not anything") .IP .IP "\fBnot expression\fP" آنچه را که عبارت مطابقت می‌دهد معکوس می‌کند. برای مثال، \fBnot include=archive/*\fP مشابه \fBexclude=archive/*\fP است. .IP .IP "\fBand\fP / \fBor\fP / \fB( expression )\fP" این موارد می‌توانند برای ساخت عبارت‌های پیچیده‌تر استفاده شوند. .IP .SH "آزمایش (TESTING)" برای بررسی در خط فرمان که کدام فایل‌ها با تنظیمات محتوای ترجیحی یک مخزن مطابقت دارند، می‌توانید از گزینه‌های \fB\-\-want\-get\fP و \fB\-\-want\-drop\fP استفاده کنید. .PP برای مثال، دستور \fBgit annex find \-\-want\-get \-\-not \-\-in .\fP تمام فایل‌هایی را که \fBgit annex get \-\-auto\fP تمایل به دریافت آن‌ها دارد پیدا می‌کند، و دستور \fBgit annex find \-\-want\-drop \-\-in .\fP تمام فایل‌هایی را که \fBgit annex drop \-\-auto\fP تمایل به رها کردن آن‌ها دارد پیدا خواهد کرد. .PP گزینه \fB\-\-explain\fP می‌تواند برای درک اینکه چرا یک عبارت محتوای ترجیحی پیچیده مطابقت یافته یا مطابقت نیافته است استفاده شود. عبارت نمایش داده خواهد شد و پس از هر عبارت، برای نشان دادن مقدار، عبارت "[TRUE]" یا "[FALSE]" قرار می‌گیرد. بخش‌های نامربوط از توضیح حذف خواهند شد؛ برای مثال \fB"exclude=* and copies=1"\fP به صورت \fB"exclude=*[FALSE]"\fP نمایش داده خواهد شد. .PP .SH "همچنین ببینید (SEE ALSO)" git-annex(1) .PP git-annex\-vicfg(1) .PP git-annex\-wanted(1) .PP git-annex\-maxsize(1) .PP .PP .PP .SH "نویسنده (AUTHOR)" Joey Hess .PP