2012-07-20 57 views
0

我一直在處理過去幾周的Android源代碼。Git合併文件中的衝突我從來沒有修改過

在平臺/構建存儲庫上,我檢出了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中。

回答

1

我不是先進的混帳,所以我可能在這裏完全錯誤。但我明白你的假設是第一個標記指向的提交是另一個標記的祖先。只有在這種情況下,您才能保證它們之間不存在合併衝突。

您可以通過執行git merge-base first-tag second-tag來測試此假設。

+0

我upvoted您的評論,因爲它使我在正確的方向。 git merge-base ics android-4.1.1_r1給了我b0936b79faa8c765e63dbf1d6a3f014bb9f5e223,它的BUILD_ID爲IMM76K(在android-4.0.4r2.1標籤IMM76L之前的ID)。 – gparent 2012-07-20 17:47:41

+0

我會調查一些和標記爲接受,如果這導致我回答:) – gparent 2012-07-20 17:47:54

+0

git merge-base android-4.0.4_r2.1 android-4.1.1_r1使我到相同的提交ID,但是。 – gparent 2012-07-20 17:48:52

2

我將在這裏複製的Jean-Baptiste的答案,一個人誰做AOSP工作谷歌:

你沒有做錯什麼。

您所看到的是Google內部開發 過程的一件神器。

在某些時候,ICS從谷歌 谷歌的主合併流程中脫離出來,而我們正在準備Jelly Bean的第一個版本。 仍然有一點ICS活動,但在git 級別沒有合併到果凍豆。這就是你在這裏看到的 :最新版本的ICS中有一些 不在Jelly Bean中,並試圖將最新的ICS重新綁定到 Jelly Bean使這些脫穎而出。

檢查 「回購FORALL平臺/構建-c git的日誌 Android的4.1.1_r1..android-4.0.4_r2.1」 - 這會發現犯下 一個已經令人驚訝的你。

JBQ