مرجع دستور Repo

Repo با ساده کردن کار در چندین مخزن Git را تکمیل می کند. مشاهده ابزار کنترل منبع برای توضیح رابطه بین مخزن و دستگاه گوارش. برای اطلاعات بیشتر در مخزن، را ببینید مخزن README .

استفاده از رپو به شکل زیر است:

repo command options

عناصر اختیاری در پرانتز [ ] نشان داده شده اند. به عنوان مثال، بسیاری از دستورات را project-list به عنوان آرگومان. شما می توانید مشخص project-list به عنوان یک لیست از نام یا یک لیست از مسیرهای به دایرکتوری ها منبع محلی برای پروژه های:

repo sync [project0 project1 ... projectn]
repo sync [/path/to/project0 ... /path/to/projectn]

کمک

این صفحه فقط گزینه های کلیدی را برجسته می کند. برای جزئیات کامل به راهنمای خط فرمان مراجعه کنید. هنگامی که Repo نصب می شود، می توانید آخرین مستندات را که با خلاصه ای از تمام دستورات شروع می شود با اجرای:

repo help

با اجرای این مورد در درخت Repo می توانید اطلاعات دقیق در مورد هر دستوری را مشاهده کنید:

repo help command

به عنوان مثال، دستور زیر بازده توضیحات و لیستی از گزینه های برای init استدلال مخزن، که مقدار دهی اولیه مخزن در دایرکتوری جاری. (نگاه کنید به init انجام برای جزئیات بیشتر.)

repo help init

یا برای دیدن فقط لیست گزینه های موجود، اجرا کنید:

repo command --help
به عنوان مثال:
repo init --help

شروع کنید

repo init -u url [options]

Repo را در فهرست فعلی نصب می کند. این باعث ایجاد یک .repo/ دایرکتوری با مخزنهای Git برای کد منبع مخزن و استاندارد فایل های آشکار آندروید.

گزینه ها:

  • -u : مشخص کردن یک URL که از آن برای بازیابی یک آشکار مخزن. آشکار مشترک است که در پیدا https://android.googlesource.com/platform/manifest .
  • -m : یک فایل مانیفست در مخزن را انتخاب کنید. اگر هیچ نام آشکار انتخاب شده است، به طور پیش فرض است default.xml .
  • -b : مشخص تجدید نظر، این است که، یک خاص manifest-branch .

توجه: برای همه دستورات مخزن باقی مانده، دایرکتوری جاری یا باید پوشه مادر شود .repo/ یا یک زیر شاخه از دایرکتوری پدر و مادر.

همگام سازی

repo sync [project-list]

دانلود تغییرات جدید و به روز رسانی فایل های مشغول به کار در محیط زیست محلی خود، در اصل انجام git fetch در تمام منابع Git. اگر شما repo sync بدون استدلال، آن را هماهنگ فایل ها را برای همه پروژه ها.

هنگامی که شما اجرا repo sync ، این چیزی است که اتفاق می افتد:

  • اگر پروژه هرگز هماهنگ شده است، پس از آن repo sync برابر است با git clone . تمام شاخه های موجود در مخزن راه دور در دایرکتوری پروژه محلی کپی می شوند.

  • اگر پروژه قبل از هماهنگ شده است، پس از آن repo sync برابر است با:

    git remote update
    git rebase origin/branch
    

    که در آن branch شاخه در حال حاضر چک کردن در دایرکتوری پروژه محلی است. اگر شعبه محلی شاخه ای را در مخزن راه دور ردیابی نمی کند، هیچ هماهنگی برای پروژه رخ نمی دهد.

  • اگر دستگاه گوارش نتایج عملیات در درگیری های ادغام REBASE، استفاده از دستورات عادی دستگاه گوارش (برای مثال، git rebase --continue ) به حل و فصل درگیری.

پس از اجرای موفقیت آمیز repo sync ، کد امنیتی را در پروژه های مشخص شده است به روز و همگام سازی با کد امنیتی را در مخزن از راه دور.

در اینجا گزینه های کلیدی وجود دارد. مشاهده repo help sync برای اطلاعات بیشتر:

  • -c : واکشی تنها شاخه آشکار فعلی از سرور.

  • -d : پروژه های تغییر مشخص به تجدید نظر آشکار عقب. اگر پروژه در حال حاضر در یک شاخه موضوعی باشد، اما به طور موقت به ویرایش مانیفست نیاز است، این کار مفید است.

  • -f : ادامه با همگام سازی پروژه های دیگر حتی اگر یک پروژه نتواند به همگام سازی.

  • -j threadcount : تقسیم همگام سازی در سراسر موضوعات برای تکمیل سریعتر. مطمئن شوید که دستگاه خود را تحت تأثیر قرار نمی دهید - مقداری از CPU را برای کارهای دیگر در نظر بگیرید. برای دیدن تعداد CPU های موجود، برای اولین بار اجرا: nproc --all

  • -q : بی سر و صدا با سرکوب پیام های وضعیت را اجرا کنید.

  • -s : همگام سازی به ساخت خوب شناخته شده به عنوان توسط مشخص manifest-server عنصر در اظهارنامه جاری است.

بارگذاری

repo upload [project-list]

برای پروژه های مشخص شده، Repo شعب محلی را با شاخه های راه دور به روز شده در آخرین همگام سازی Repo مقایسه می کند. Repo از شما می خواهد که یک یا چند شعبه را که برای بررسی آپلود نشده اند انتخاب کنید.

سپس تمام تعهدات روی شاخه های انتخاب شده از طریق یک اتصال HTTPS به Gerrit منتقل می شود. برای فعال کردن مجوز آپلود، باید رمز عبور HTTPS را پیکربندی کنید. مشاهده رمز عبور ژنراتور برای تولید یک جفت کاربری / رمز عبور جدید برای استفاده بر روی HTTPS.

هنگامی که Gerrit داده های شی را روی سرور خود دریافت می کند، هر commit را به یک تغییر تبدیل می کند تا بازبینان بتوانند در مورد یک commit خاص نظر دهند. به ترکیب چندین مرتکب ایست بازرسی را به یک مرتکب، استفاده از git rebase -i قبل از شما اجرا آپلود.

اگر شما repo upload بدون استدلال، آن را جستجو تمام پروژه برای تغییرات برای آپلود.

به تغییرات ویرایش پس از آپلود شده است، استفاده از یک ابزار مثل git rebase -i یا git commit --amend برای به روز رسانی مرتکب محلی خود را. پس از تکمیل ویرایش های شما:

  • بررسی کنید که شعبه به‌روزرسانی شده، شعبه‌ای است که در حال حاضر بررسی شده است.
  • برای هر commit در سری، شناسه تغییر Gerrit را در داخل براکت ها وارد کنید:
    # Replacing from branch foo
    [ 3021 ] 35f2596c Refactor part of GetUploadableBranches to lookup one specific...
    [ 2829 ] ec18b4ba Update proto client to support patch set replacments
    # Insert change numbers in the brackets to add a new patch set.
    # To create a new change record, leave the brackets empty.
    

پس از تکمیل آپلود، تغییرات دارای یک مجموعه پچ اضافی هستند.

اگر می خواهید آپلود فقط در حال حاضر خارج شاخه دستگاه گوارش بررسی می شود، استفاده از پرچم --current-branch (یا --cbr برای کوتاه).

تفاوت

repo diff [project-list]

نشان می دهد تغییرات برجسته بین مرتکب و درخت کاری با استفاده از git diff .

دانلود

repo download target change

تغییر مشخص شده را از سیستم بررسی دانلود می کند و در فهرست کاری محلی پروژه شما در دسترس قرار می دهد.

به عنوان مثال، برای دانلود تغییر 23823 را به دایرکتوری پلت فرم / ساخت خود قرار دهید:

repo download platform/build 23823

در حال اجرا repo sync حذف هر گونه مرتکب بازیابی با repo download . یا شما می توانید با استفاده از چک کردن از راه دور شاخه git checkout m/master .

توجه: تاخیر تکرار به تمام سرورهای سراسر جهان وجود دارد، به طوری که تاخیر معکوس اندکی بین زمانی که یک تغییر در وب در قابل مشاهده است وجود دارد گریت و هنگامی که repo download می توانید تغییر برای همه کاربران را پیدا

برای همه

repo forall [project-list] -c command

دستور shell داده شده را در هر پروژه اجرا می کند. متغیرهای محیطی اضافی زیر توسط دسترس repo forall :

  • REPO_PROJECT به نام منحصر به فرد این پروژه تنظیم شده است.

  • REPO_PATH مسیر نسبت به ریشه مشتری است.

  • REPO_REMOTE نام سیستم از راه دور از مانیفست است.

  • REPO_LREV نام تجدید نظر از مانیفست، ترجمه شده به شاخه ردیابی محلی است. اگر نیاز دارید که ویرایش مانیفست را به یک فرمان Git که به صورت محلی اجرا شده است، از این استفاده کنید.

  • REPO_RREV نام این اصلاحیه از آشکار است، دقیقا همانطور که در اظهارنامه نوشته شده است.

گزینه ها:

  • -c : فرمان و شناسهها را به اجرا. دستور است که از طریق ارزیابی /bin/sh و هر گونه استدلال پس از آن از طریق به عنوان پارامترهای مکانی پوسته منتقل می شود.

  • -p : هدر نمایش پروژه قبل از خروجی دستور مشخص شده است. این امر با اتصال لوله‌ها به استریم‌های stdin، stdout و sterr فرمان، و لوله‌گذاری تمام خروجی‌ها به یک جریان پیوسته که در یک جلسه پیجر نمایش داده می‌شود، به دست می‌آید.

  • -v : نمایش پیام فرمان می نویسد به stderr.

هرس کنید

repo prune [project-list]

موضوعاتی که قبلاً ادغام شده اند را هرس می کند (حذف می کند).

شروع کنید

repo start
branch-name [project-list]

یک شاخه جدید را برای توسعه شروع می کند، که از بازبینی مشخص شده در مانیفست شروع می شود.

BRANCH_NAME استدلال یک توضیح کوتاه از این تغییر شما در حال تلاش برای ایجاد به پروژه فراهم می کند. اگر شما نمی دانید که، در نظر با استفاده از نام default .

project-list مشخص استدلال که پروژه ها در این شاخه موضوع شرکت کنند.

توجه: (.) دوره مخفف این پروژه در دایرکتوری جاری است.

وضعیت

repo status [project-list]

درخت کار را با ناحیه مرحله بندی (شاخص) و جدیدترین تعهد در این شاخه (HEAD) در هر پروژه مشخص شده مقایسه می کند. یک خط خلاصه را برای هر فایل نشان می دهد که در آن بین این سه حالت تفاوت وجود دارد.

برای مشاهده وضعیت از فقط شعبه فعلی، اجرا repo status . . اطلاعات وضعیت بر اساس پروژه فهرست شده است. برای هر فایل در پروژه از یک کد دو حرفی استفاده می شود.

در ستون اول، یک حرف بزرگ نشان می دهد که منطقه مرحله بندی با آخرین حالت متعهد چه تفاوتی دارد.

حرف معنی شرح
- بدون تغییر در HEAD و index هم همینطور
آ اضافه نه در HEAD، در شاخص
م اصلاح شده در HEAD، در شاخص اصلاح شده است
دی حذف شده در HEAD، نه در شاخص
آر تغییر نام داد نه در HEAD، مسیر در شاخص تغییر کرد
سی کپی شد نه در HEAD، از دیگری در فهرست کپی شده است
تی حالت تغییر کرد همان محتوا در HEAD و فهرست، حالت تغییر کرد
U ادغام نشد تضاد بین HEAD و شاخص؛ وضوح مورد نیاز

در ستون دوم، یک حرف کوچک نشان می دهد که دایرکتوری کار با فهرست تفاوت دارد.

حرف معنی شرح
- جدید/ناشناس نه در شاخص، در درخت کار
متر اصلاح شده در فهرست، در درخت کار، اصلاح شده است
د حذف شده در شاخص نه در درخت کار

رسیدگی به خطاهای مخزن

git commit -a # Commit local changes first so they aren't lost.
repo start branch-name # Start the branch
git reset --hard HEAD@{1} # And reset the branch so that it matches the commit before repo start
repo upload .

خطای repo: error: no branches ready for upload هنگامی که دستور به نظر می رسد repo start شد در آغاز جلسه اجرا کنید. برای بازیابی، می توانید شناسه commit را بررسی کنید، یک شاخه جدید راه اندازی کنید و سپس آن را ادغام کنید.