19

次のコマンドを使用して、作業ツリー全体をダウンロードしました。

repo init -u https://android.googlesource.com/platform/manifest
repo sync -j8

正常に同期した後、作業ツリーをandroid2.3.7に切り替えたいと思います。「repoinit」のときに「-b」パラメータでブランチを指定しなかったことがわかります。したがって、すべてのタグ情報をダウンロードする必要があると思います。次のコマンドを使用して、Android2.3.7に簡単に切り替えることができます。

repo forall -c git checkout android-2.3.7_r1

ただし、次のような多くのエラーが発生します。

error: pathspec 'android-2.3.7_r1' did not match any file(s) known to git.

では、「repo init -bandroid-2.3.7_r1」と「reposync」を再度使用せずにAndroid2.3.7に切り替えるにはどうすればよいですか?

4

2 に答える 2

24

を使用してこの問題を解決することはできませんrepo forall

現在のAndroidツリーがクリーンであると確実に仮定しましょう。ローカルでの変更やコミットはありません。つまりrepo status、何も表示されません。

Androidのバージョンを適切に切り替えるには、マニフェストリポジトリのブランチを変更するだけです。まず、さまざまなAndroidバージョンのマニフェストで利用可能なブランチを決定します。

cd $ANDROID_ROOT
cd .repo/manifests
git branch -av   # see all available branches on origin

バージョンを選択して

cd $ANDROID_ROOT
repo init -b <my_selected_android_version>

このような選択的repo init-bなし-u)は、マニフェストブランチのみを更新し、それ以外の場合はツリーに影響を与えません。

今、それを単に同期します:

repo sync -j8

しばらくすると、Androidツリーが別のバージョンに切り替わります。

default.xmlこの操作の速度は主に、Androidの新旧バージョン間でマニフェストファイルがどれだけ異なるかによって決まります。新しいマニフェストにgitリポジトリが追加された場合、クローン作成に時間がかかるためです。そして、いくつかのリポジトリが削除された場合、実際にそれを吹き飛ばします。

ただし、概して、この方法は、新しいAndroidツリーを最初から初期化するよりもはるかに高速です。

于 2013-01-16T07:56:02.793 に答える
1

現在のブランチと切り替えるブランチに同じmanifest.xmlファイルがある場合は、次のコマンドを使用してそれを行うことができます。

repo forall -c git fetch aosp --tags 
repo forall -c git checkout -b john5.1.1_r14_api22 android-5.1.1_r14

詳細については、 http://johnliao52.github.io/2016/03/27/git-repo-skills.htmlもご覧ください。

于 2016-03-31T08:31:29.743 に答える