我在Perforce存儲庫中存在以下分支情況:有一條主幹「trunk」和兩個發佈分支「1.0」和「1.1」。客戶特定更改的分支「客戶」已從1.0分支分支出來。現在,客戶希望轉向版本1.1。我如何將1.1分支合併到客戶分支中?客戶特定的更改應該保持1.1的「最高」。Perforce:如何整合多個分支機構?
下面是一個受影響的文件圖:
1.1 -(1)---(2)---(3)
/ \ \
/ \ \
trunk 100--(101)-(102)--103---104---105---106---107
\
\
1.0 ---1-----2--...
\
\
customer ---1-----2----*3*
目前的版本我期待在該文件是對客戶分支修訂3。
如果我選擇將分支「1.1」與目標「客戶」集成在一起,我會預期會發現兩者的共同祖先(主線上的修訂版本爲100),並且從那裏導致1.1分支尖端的所有修訂都是合併(括號內的)。
取而代之的是,Perforce只提供合併1.1分支的修訂版本1到3,因爲它錯過了以前在主線上發生的必要更改而失敗。
我如何說服Perforce做到這一點,而無需手動查看每個文件並選擇要合併的修訂版本?也許分支策略是不合適的?我還應該做什麼?
如果我嘗試「p4 integ -b 1.1_to_customer」,那麼對於在客戶分支上發生更改的每個文件,我都會得到「無法從......沒有集成... -i標誌」。如果我添加「-i」,合併失敗,因爲只有1.1分支上的修訂版被集成,而不是那些在主幹上的修訂版。 – hfs 2010-10-12 11:48:07
Perforce不知道更改101和更改102對於分支1.1上發生的事情是必不可少的。因此,在集成1.1之前,您首先必須將主幹高達102的主幹集成到客戶中。 – 2010-10-12 11:58:56
是的,這就是我最後做的:在主線上有兩個標籤,分別標註了1.0和1.1的分支。我首先在這些標籤之間合併了「trunk」,解決了所有問題,然後在1.1之上合併了1.1並再次解決。這解決了。 – hfs 2010-10-14 07:17:27