Androidのソースコードを入手したいときは、「レポ」を使わなければならないことを知っていました。では、レポとは何ですか?なぜ彼らはGITだけでなくリポジトリを使用するのですか?また、時々切断されるたびにリポジトリが最初から同期を開始するように見えるので、同期を一時停止/再開できるリポジトリのGUIがあります!
5 に答える
Android Webページに記載されているように、repo
を置き換えませんgit
。これは単なるツールでgit
あり、複数の git リポジトリを管理するのに役立ちます。
たとえば、多くの機能を含む大きなプロジェクトがあり、各機能に取り組んでいる複数のチームがあり、機能ごとに 1 つのリポジトリを作成したとします。たとえば、リポジトリがwifi
、telephony
、power management
などであるとします。このアクションは、機能のライフサイクルが異なる場合に意味があります。たとえばwifi
、次のリリースで機能に触れず、残りのすべてを変更するとします。したがって、このシナリオでは、私のプロジェクトまたは製品はいくつかの異なる git リポジトリに分散されています。
したがって、プロジェクトの一元化された写真 (マイルストーンなど、プロジェクトの特定の瞬間) を取得するには、各リポジトリのリビジョン (git ハッシュまたはタグ) を取得する必要があります。機能ごとに 1 つのリポジトリがあることに注意してください。手動で行うことはできますが、非常に苦痛になる可能性があります。したがって、リポジトリを使用するとMANIFEST
、各 git リポジトリのすべてのリビジョン (機能ごとに 1 つ) にリンクするものを作成し、プロジェクト全体の特定の図を表示できます。
簡単に言えば、これは、分散化された複数の git リポジトリを集中管理する方法であると言えます。
レポを使用すると、特定の時点でチェックアウトするだけでなく、より多くの機能を利用できます。詳細については、http: //source.android.com/source/using-repo.html にアクセスしてください。
Repo と git - それらが何であり、何のためにあるのか - source.android.comで説明されています
Android コードを操作するには、Git と Repo の両方を使用する必要があります。
Git は、複数のリポジトリに分散された非常に大規模なプロジェクトを処理するために設計された、オープンソースのバージョン管理システムです。Android のコンテキストでは、ローカル ブランチ、コミット、差分、編集などのローカル操作に Git を使用します。
Repo は、Git の上に構築したツールです。Repo は、多くの Git リポジトリを管理し、リビジョン管理システムにアップロードし、Android 開発ワークフローの一部を自動化するのに役立ちます。Repo は Git を置き換えることを意図したものではなく、Android のコンテキストで Git を簡単に操作できるようにすることのみを目的としています。repo コマンドは、パスのどこにでも配置できる実行可能な Python スクリプトです。
私の知る限り、Repo 用の GUI はありませんが、コマンド ラインから Repo の動作を制御するためのガイドが上記のサイトにかなりあります。
一時停止と再開ポイントに関しては、ターミナル ウィンドウでレポ同期を実行しているときに、「ctrl + z」を押してレポ同期を一時停止できます。再起動するには、同じウィンドウに「fg」と入力するだけです。
移動:
http://source.android.com/source/git-repo.html
repo
スクリプトをダウンロードできます。git
これは、コマンドを使用して分散ソースコードの改訂を行うPythonスクリプトです。
を実行した後repo sync
、aを実行しps -auwf
てプロセスを確認します。
私が見たのは:
\_ python -E /sde3/root/download/android/android/.repo/repo/main.py --rep \_ git fetch korg \_ git fetch korg \_ git index-pack --stdin -v --fix-thin --keep=fetch-pack 5227 on
はい、repo sync
頻繁に壊れます。ただし、堅牢であり、コマンドを再起動するだけで同期が再開されます。更新されたものは再適用されないため、それらをスキップして残りを続行します。
repo sync にはさまざまな便利なオプションがあります。
-f 切断から回復
-c 要求したブランチをアップロードするだけです
-j <#CPUS> は、コマンドが使用する CPU の数を増やすことで同期を高速化します