Android=ソースコードを取得したいときに、「repo」を使用する必要があることを知っていました。それで、repoとは何ですか?なぜGITだけでなくrepoを使用するのですか?同期を一時停止/再開できるリポジトリのGUI。たまに切断されるたびに、リポジトリが最初から同期を開始するようです。
Repoとgit-それらが何であるか、何のためであるかは source.Android.com で説明されています
Androidコードを使用するには、GitとRepoの両方を使用する必要があります。
Gitは、複数のリポジトリに分散された非常に大規模なプロジェクトを処理するように設計されたオープンソースのバージョン管理システムです。 Androidのコンテキストでは、ローカルブランチ、コミット、diff、編集などのローカル操作にGitを使用します。
Repoは、Gitの上に構築したツールです。 Repoは、多くのGitリポジトリの管理、リビジョン管理システムへのアップロード、およびAndroid開発ワークフローの一部の自動化を支援します。RepoはGitを置き換えるものではなく、 AndroidのコンテキストでGitを操作します。repoコマンドは実行可能なPythonスクリプトであり、パスの任意の場所に配置できます。
私の知る限り、RepoのGUIはありませんが、上記のサイトにはコマンドラインからRepoの動作を制御するためのかなりのガイダンスがあります。
Android=ウェブページで言及されているように、repo
はgit
を置き換えるものではありません。これはgit
の単なるツールであり、管理に役立ちます複数のgitリポジトリ。
たとえば、多くの機能を備えた大きなプロジェクトがあり、各機能に取り組んでいる複数のチームがいて、機能ごとに1つのリポジトリを作成したとします。たとえば、私のリポジトリがwifi
、telephony
、power management
などであるとします。このアクションは、機能のライフサイクルが異なる場合に有効です。たとえば、次のリリースでwifi
機能に触れないが、残りはすべて変更する場合などです。したがって、このシナリオでは、私のプロジェクトまたは製品はいくつかの異なるgitリポジトリーに配布されています。
そのため、プロジェクトの集中管理された写真(マイルストーンなど、プロジェクトの特定の瞬間)を取得するには、各リポジトリのリビジョン(gitハッシュまたはタグ)を取得する必要があります。機能ごとに1つのリポジトリがあることに注意してください。手動でそれを行うことはできましたが、非常に苦痛でした。したがって、repoを使用すると、各git repoのすべてのリビジョン(機能ごとに1つ)にリンクするMANIFEST
を1つ作成し、プロジェクト全体の特定の画像を取得できます。
簡単に言うと、それは、分散化された複数のgitリポジトリを集中管理する方法だと言えます。
Repoを使用すると、特定のポイントでチェックアウトするだけでなく、より多くの機能を利用できます。詳細については、 http://source.Android.com/source/using-repo.html にアクセスしてください。
一時停止と再開のポイントについては、ターミナルウィンドウでレポ同期を実行しているときに、「Ctrl + Z」を押すと、レポ同期を一時停止できます。再起動するには、同じウィンドウに「fg」と入力します。
移動:
http://source.Android.com/source/git-repo.html
repo
スクリプトをダウンロードできます。これは、Pythonスクリプトで、git
コマンドを使用して分散ソースコードのリビジョンを実行します。
repo sync
を実行した後、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
は頻繁に壊れます。ただし、堅牢で、コマンドを再起動するだけで同期が再開されます。更新されたものは再適用されないため、スキップして残りの処理を続行します。
リポジトリ同期には、さまざまな便利なオプションがあります。
-f切断から回復します
-cは要求したブランチをアップロードするだけです
-j <#CPUS>は、コマンドで使用されるCPUの数を増やすことで、同期を高速化します