web-dev-qa-db-ja.com

Repoとは何ですか、なぜGoogleはそれを使用するのですか?

Android=ソースコードを取得したいときに、「repo」を使用する必要があることを知っていました。それで、repoとは何ですか?なぜGITだけでなくrepoを使用するのですか?同期を一時停止/再開できるリポジトリのGUI。たまに切断されるたびに、リポジトリが最初から同期を開始するようです。

38
Osama Gamal

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の動作を制御するためのかなりのガイダンスがあります。

22
brabster

Android=ウェブページで言及されているように、repogitを置き換えるものではありません。これはgitの単なるツールであり、管理に役立ちます複数のgitリポジトリ。

たとえば、多くの機能を備えた大きなプロジェクトがあり、各機能に取り組んでいる複数のチームがいて、機能ごとに1つのリポジトリを作成したとします。たとえば、私のリポジトリがwifitelephonypower managementなどであるとします。このアクションは、機能のライフサイクルが異なる場合に有効です。たとえば、次のリリースでwifi機能に触れないが、残りはすべて変更する場合などです。したがって、このシナリオでは、私のプロジェクトまたは製品はいくつかの異なるgitリポジトリーに配布されています。

そのため、プロジェクトの集中管理された写真(マイルストーンなど、プロジェクトの特定の瞬間)を取得するには、各リポジトリのリビジョン(gitハッシュまたはタグ)を取得する必要があります。機能ごとに1つのリポジトリがあることに注意してください。手動でそれを行うことはできましたが、非常に苦痛でした。したがって、repoを使用すると、各git repoのすべてのリビジョン(機能ごとに1つ)にリンクするMANIFESTを1つ作成し、プロジェクト全体の特定の画像を取得できます。

簡単に言うと、それは、分散化された複数のgitリポジトリを集中管理する方法だと言えます。

Repoを使用すると、特定のポイントでチェックアウトするだけでなく、より多くの機能を利用できます。詳細については、 http://source.Android.com/source/using-repo.html にアクセスしてください。

21
Matias Burni

一時停止と再開のポイントについては、ターミナルウィンドウでレポ同期を実行しているときに、「Ctrl + Z」を押すと、レポ同期を一時停止できます。再起動するには、同じウィンドウに「fg」と入力します。

3
Jordan Craig

移動:

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は頻繁に壊れます。ただし、堅牢で、コマンドを再起動するだけで同期が再開されます。更新されたものは再適用されないため、スキップして残りの処理を続行します。

2
Peter Teoh

リポジトリ同期には、さまざまな便利なオプションがあります。

-f切断から回復します

-cは要求したブランチをアップロードするだけです

-j <#CPUS>は、コマンドで使用されるCPUの数を増やすことで、同期を高速化します

2
user3913384