0

私は過去数週間、Androidのソースコードに取り組んできました。

プラットフォーム/ビルドリポジトリで、android-4.0.4_r2.1タグをチェックアウトしました。これが私の「ics」ブランチになりました。これで、android-4.1.1_r1タグに対してマージまたはリベースすると、編集したことのないファイルでマージの競合が発生します。

問題のリポジトリ(およびタグ)は次のとおりです。

https://android.googlesource.com/platform/build/+/android-4.0.4_r2.1

https://android.googlesource.com/platform/build/+/android-4.1.1_r1

これは最初のタグから分岐したブランチで、後者のタグを次のようにマージしようとしています。

https://github.com/slimdroid/platform_build/commits/ics

何が原因なのか全くわかりません。私はgitの完全な初心者ではありませんが、共通ベースがあるはずのときにこのタグが競合せずにマージできない方法がわかりません。

参考までに、私の競合はBUILD_IDを指定する行のcore/build_id.mkにあります。

4

2 に答える 2

2

ここに、GoogleでAOSPの仕事をしているJean-Baptisteの答えをコピーします。

あなたは何も悪いことをしていません。

あなたが見ているのは、Googleの内部開発プロセスの成果物です。

Jelly Beanの最初のリリースを準備しているときに、ある時点で、ICSはGoogle内のメインのマージフローから切り離されました。ただし、ICSアクティビティはまだ少し残っていましたが、gitレベルではJellyBeanにマージされませんでした。これがここに表示されているものです。JellyBeanにない最新バージョンのICSにはいくつかの変更があり、最新のICSをJellyBeanにリベースしようとするとそれらが目立ちます。

「repoforallplatform/ build -c git log android-4.1.1_r1..android-4.0.4_r2.1」を確認してください。これにより、驚くべきコミットが見つかります。

JBQ

于 2012-07-20T19:39:22.460 に答える
1

私はgitが進んでいないので、ここでは完全に間違っている可能性があります。しかし、最初のタグが指すコミットは他のタグの祖先であるというあなたの仮定を理解しています。このような場合にのみ、それらの間にマージの競合が発生しないことを保証できます。

を実行することで、この仮定をテストできますgit merge-base first-tag second-tag

于 2012-07-20T16:16:25.237 に答える