REPO(1) Repo Manual REPO(1) نام (NAME) repo-sync - همگام‌سازی درخت کاری با مخازن دوردست خلاصه دستور (SYNOPSIS) repo sync [...] توضیحات (DESCRIPTION) چکیده به‌روزرسانی درخت کاری به آخرین بازنگری گزینه‌ها (OPTIONS) -h, --help نمایش این پیام راهنما و خروج -j JOBS, --jobs=JOBS تعداد کارهای موازی برای اجرا (پیش‌فرض: بر اساس تعداد هسته‌های پردازنده) --jobs-network=JOBS تعداد کارهای شبکه برای اجرای موازی (پیش‌فرض --jobs یا ۱). نادیده گرفته می‌شود مگر اینکه --no-interleaved تنظیم شده باشد --jobs-checkout=JOBS تعداد کارهای محلی وارسی (checkout) برای اجرای موازی (پیش‌فرض --jobs یا ۸). نادیده گرفته می‌شود مگر اینکه --nointerleaved تنظیم شده باشد -f, --force-broken گزینه منسوخ‌شده (در آینده حذف خواهد شد) --fail-fast توقف همگام‌سازی پس از وقوع نخستین خطا --force-sync بازنویسی دایرکتوری گیت موجود در صورت نیاز به اشاره به یک دایرکتوری شیء متفاوت. هشدار: این کار ممکن است باعث از دست رفتن داده‌ها شود --force-checkout اجبار به وارسی (checkout) حتی در صورت دور ریخته شدن تغییرات ثبت‌نشده. هشدار: این کار ممکن است باعث از دست رفتن داده‌ها شود --force-remove-dirty حذف اجباری پروژه‌های دارای تغییرات ثبت‌نشده در صورتی که دیگر در مانیفست وجود نداشته باشند. هشدار: این کار ممکن است باعث از دست رفتن داده‌ها شود --rebase بازنشانی (rebase) کامیت‌های محلی بدون توجه به اینکه منتشر شده‌اند یا خیر -l, --local-only تنها به‌روزرسانی درخت کاری، بدون دریافت (fetch) --no-manifest-update, --nmu استفاده از مانیفست وارسی‌شده موجود به همان صورت فعلی (عدم به‌روزرسانی به آخرین بازنگری) --interleaved دریافت و وارسی پروژه‌ها به صورت موازی (پیش‌فرض) --no-interleaved دریافت و وارسی پروژه‌ها در چند مرحله -n, --network-only تنها دریافت، بدون به‌روزرسانی درخت کاری -d, --detach جدا کردن پروژه‌ها و بازگرداندن به بازنگری مانیفست -c, --current-branch تنها دریافت شاخه جاری از سرور --no-current-branch دریافت تمام شاخه‌ها از سرور -m NAME.xml, --manifest-name=NAME.xml مانیفست موقت برای استفاده در این همگام‌سازی --clone-bundle فعال‌سازی استفاده از /clone.bundle روی HTTP/HTTPS --no-clone-bundle غیرفعال‌سازی استفاده از /clone.bundle روی HTTP/HTTPS -u MANIFEST_SERVER_USERNAME, --manifest-server-username=MANIFEST_SERVER_USERNAME نام کاربری برای احراز هویت در سرور مانیفست -p MANIFEST_SERVER_PASSWORD, --manifest-server-password=MANIFEST_SERVER_PASSWORD گذرواژه برای احراز هویت در سرور مانیفست --fetch-submodules دریافت زیرماژول‌ها از سرور --use-superproject استفاده از ابرپروژه مانیفست برای همگام‌سازی پروژه‌ها؛ شامل گزینه -c می‌شود --no-use-superproject غیرفعال‌سازی استفاده از ابرپروژه‌های مانیفست --tags دریافت برچسب‌ها --no-tags عدم دریافت برچسب‌ها (پیش‌فرض) --optimized-fetch تنها دریافت پروژه‌های تثبیت‌شده روی sha1 در صورتی که آن بازنگری در سیستم محلی وجود نداشته باشد --retry-fetches=RETRY_FETCHES تعداد دفعات تلاش مجدد برای دریافت در خطاهای گذرا --prune حذف ارجاع‌هایی که دیگر روی مخزن دوردست وجود ندارند (پیش‌فرض) --no-prune عدم حذف ارجاع‌هایی که دیگر روی مخزن دوردست وجود ندارند --auto-gc اجرای زباله‌روبی (garbage collection) روی تمام پروژه‌های همگام‌شده --no-auto-gc عدم اجرای زباله‌روبی روی هیچ‌یک از پروژه‌ها (پیش‌فرض) -s, --smart-sync همگام‌سازی هوشمند با استفاده از مانیفست برگرفته از آخرین ساخت موفق شناخته‌شده -t SMART_TAG, --smart-tag=SMART_TAG همگام‌سازی هوشمند با استفاده از مانیفست برگرفته از یک برچسب شناخته‌شده گزینه‌های ثبت وقایع (Logging options): -v, --verbose نمایش کامل خروجی با جزئیات -q, --quiet تنها نمایش خطاها گزینه‌های چندمانیفستی (Multi-manifest options): --outer-manifest شروع عملیات از بیرونی‌ترین مانیفست --no-outer-manifest عدم انجام عملیات روی مانیفست‌های بیرونی --this-manifest-only تنها انجام عملیات روی این (زیر)مانیفست --no-this-manifest-only, --all-manifests انجام عملیات روی این مانیفست و زیرمانیفست‌های آن گزینه‌های نسخه repo (repo Version options): --no-repo-verify عدم اعتبارسنجی کد منبع repo قلاب‌های پس از همگام‌سازی (post-sync hooks): --no-verify عدم اجرای قلاب پس از همگام‌سازی. --verify اجرای قلاب پس از همگام‌سازی بدون درخواست تایید. --ignore-hooks در صورت شکست قلاب‌های پس از همگام‌سازی عملیات متوقف نشود. برای مشاهده راهنمای تفصیلی دستور `repo help sync` را اجرا کنید. جزئیات (DETAILS) دستور 'repo sync' دایرکتوری‌های محلی پروژه را با مخازن دوردست مشخص‌شده در مانیفست همگام‌سازی می‌کند. اگر یک پروژه محلی هنوز وجود نداشته باشد، دایرکتوری محلی جدیدی را از مخزن دوردست کلون کرده و شاخه‌های ردیابی را مطابق با مانیفست برپا می‌کند. اگر پروژه محلی از قبل موجود باشد، 'repo sync' شاخه‌های دوردست را به‌روزرسانی کرده و هرگونه تغییر محلی جدید را روی تغییرات جدید دوردست بازنشانی (rebase) می‌کند. دستور 'repo sync' تمام پروژه‌های مشخص‌شده در خط فرمان را همگام‌سازی خواهد کرد. پروژه‌ها را می‌توان با نام یا با مسیر نسبی یا مطلق به دایرکتوری محلی پروژه مشخص کرد. اگر هیچ پروژه‌ای تعیین نشود، 'repo sync' تمام پروژه‌های فهرست‌شده در مانیفست را همگام می‌کند. گزینه -d/--detach می‌تواند برای بازگرداندن پروژه‌های مشخص‌شده به بازنگری مانیفست استفاده شود. این گزینه به‌ویژه زمانی مفید است که پروژه روی یک شاخه موضوعی (topic branch) قرار دارد اما موقتاً به بازنگری مانیفست نیاز است. گزینه -s/--smart-sync می‌تواند برای همگام‌سازی با یک ساخت موفق شناخته‌شده که توسط عنصر manifest-server در مانیفست فعلی مشخص شده استفاده شود. گزینه -t/--smart-tag مشابه است و امکان تعیین یک برچسب/عنوان سفارشی را فراهم می‌کند. گزینه‌های --manifest-server-username (-u) و --manifest-server-password (-p) می‌توانند برای تعیین نام کاربری و گذرواژه جهت احراز هویت با سرور مانیفست هنگام استفاده از گزینه -s یا -t به کار روند. اگر -u و -p هنگام استفاده از گزینه -s یا -t مشخص نشوند، 'repo sync' تلاش می‌کند اطلاعات احراز هویت سرور مانیفست را از فایل .netrc کاربر بخواند. دستور 'repo sync' از اطلاعات احراز هویت -u/-p یا .netrc استفاده نخواهد کرد اگر سرور مانیفست مشخص‌شده در فایل مانیفست از قبل شامل اطلاعات اعتباری باشد. به‌طور پیش‌فرض، تمام پروژه‌ها همگام‌سازی می‌شوند. گزینه --fail-fast می‌تواند برای توقف همگام‌سازی در سریع‌ترین زمان ممکن به محض مواجهه با شکست در اولین پروژه به کار رود. از گزینه --force-sync می‌توان برای بازنویسی دایرکتوری‌های گیت موجود در صورتی که قبلاً به دایرکتوری شیء متفاوتی متصل شده باشند استفاده کرد. هشدار: این کار ممکن است باعث از دست رفتن داده‌ها شود زیرا ممکن است هنگام بازنویسی، ارجاع‌ها (refs) حذف شوند. گزینه --force-checkout می‌تواند برای اجبار گیت به تعویض بازنگری‌ها استفاده شود، حتی اگر نمایه‌ساز (index) یا درخت کاری با HEAD تفاوت داشته باشد و فایل‌های ردیابی‌نشده وجود داشته باشند. هشدار: این کار ممکن است باعث از دست رفتن داده‌ها شود زیرا ممکن است تغییرات ثبت‌نشده حذف شوند. گزینه --force-remove-dirty می‌تواند برای حذف پروژه‌های قبلاً استفاده‌شده با تغییرات ثبت‌نشده به کار رود. هشدار: این کار ممکن است باعث از دست رفتن داده‌ها شود زیرا ممکن است تغییرات ثبت‌نشده همراه با پروژه‌هایی که دیگر در مانیفست وجود ندارند حذف شوند. گزینه --no-clone-bundle هرگونه تلاش برای استفاده از $URL/clone.bundle جهت راه‌اندازی اولیه مخزن گیت جدید از یک فایل بسته (bundle) قابل ازسرگیری روی شبکه تحویل محتوا (CDN) را غیرفعال می‌کند. این کار ممکن است در صورت بروز مشکل در کلاینت پایتون HTTP محلی یا پیکربندی پروکسی، هنگامی که باینری Git کار می‌کند، ضروری باشد. گزینه --fetch-submodules دریافت زیرماژول‌های گیت یک پروژه را از سرور فعال می‌کند. گزینه -c/--current-branch می‌تواند تنها برای دریافت اشیایی که روی شاخه مشخص‌شده توسط بازنگری پروژه هستند استفاده شود. گزینه --optimized-fetch می‌تواند برای دریافت پروژه‌هایی استفاده شود که روی یک بازنگری sha1 تثبیت شده‌اند، در صورتی که آن بازنگری sha1 هنوز به صورت محلی وجود نداشته باشد. از گزینه --prune می‌توان برای حذف هرگونه ارجاعی (refs) که دیگر روی مخزن دوردست وجود ندارد استفاده کرد. گزینه --auto-gc می‌تواند برای فعال‌سازی زباله‌روبی روی تمام پروژه‌ها به کار رود. به‌طور پیش‌فرض، repo زباله‌روبی را اجرا نمی‌کند. اتصالات SSH اگر دست‌کم یکی از نشانی‌های دوردست پروژه از اتصال SSH استفاده کند (با ساختارهای ssh://، git+ssh:// یا user@host:path)، برنامه repo هنگام اتصال به آن میزبان به صورت خودکار گزینه SSH ControlMaster را فعال می‌کند. این قابلیت به دیگر پروژه‌ها در همان نشست 'repo sync' اجازه می‌دهد از همان تونل SSH مجدداً استفاده کنند و سربار برپایی اتصال کاهش یابد. برای غیرفعال‌سازی این رفتار در پلتفرم‌های یونیکس، متغیر محیطی GIT_SSH را روی 'ssh' تنظیم کنید. برای نمونه: export GIT_SSH=ssh repo sync سازگاری این قابلیت در ویندوز به دلیل عدم پشتیبانی از سوکت‌های دامنه یونیکس به صورت خودکار غیرفعال است. این قابلیت با بازنویسی‌های url.insteadof در فایل ~/.gitconfig کاربر سازگار نیست. برنامه 'repo sync' در حال حاضر قادر نیست عمل بازنویسی را به قدر کافی زود انجام دهد تا تونل ControlMaster برقرار شود. اگر دیمن SSH دوردست نرم‌افزار Gerrit Code Review باشد، نگارش 2.0.10 یا بالاتر برای رفع باگ پروتکل سمت سرور الزامی است. repo sync August 2025 REPO(1)