2013-05-28 48 views
9

我正在使用兩個分支的網站上工作:開發(用於積極處理代碼)和默認(當他們準備上線時合併功能)。我剛剛合併的更改,我得到這個消息的兩個分支之間切換時:Diffus分支之間的單個文件差異

1 files updated, 0 files merged, 0 files removed, 0 files unresolved 

我已經運行hg status --rev default:develop找出哪些文件,它指的是,但我一直沒能圖出了什麼不同。

這裏是我試過到目前爲止:

hg diff --rev default:develop 
hg diff --rev default:develop file.php 

有人能指出我在正確的方向?

+0

這看起來像你的兩個分支各自作了相同的變化。'hg update -v'應該告訴你哪個文件實際發生了變化。嘗試'hg log -r'ancestor(default,develop)''來找到分支的共同祖先,並且'hg diff -r'ancestor(默認,開發)'-r default'和'hg diff -r'ancestor默認,開發)-r develop'來查看自上次常見修訂以來兩個分支中的變化。 –

+0

當我運行你給的log命令時,它顯示最新的提交。 diff命令不會返回任何內容。 – bradym

+0

這表明'default'和'develop'是同一個分支。你確定你使用分支而不是書籤嗎?因爲書籤是我能看到發生的唯一途徑(不是我的頭頂)。如果您確實使用書籤,則需要爲不同的頭部分配不同的標籤;否則'default'將引用最靠近提示的頭部修訂。 –

回答

0

我剛剛合併的更改,我得到這個消息的兩個分支之間切換時:

當分支合併到默認的分支仍然有它的頭在前面的變化 - 組。合併提交在默認分支上,而不是在開發分支上。這使您可以切換到develop分支,並繼續工作

所以,如果你這樣做:

# hg update default 
# hg merge develop 
# hg commit 

...你會得到...

D1 --- D2 --- D3 --- D4 
       /
       /
V1 --- V2 --- V3 - 

DdefaultVdeVelopD4是合併。這是你所處的狀態。當你在分支之間切換時,你在D4V3之間切換。正在更改的一個文件是在default分支中更改的文件。如果你再接着,做...

# hg update develop 
<some work> 
# hg commit develop 

...你會得到...

D1 --- D2 --- D3 --- D4 
       /
       /
V1 --- V2 --- V3 --- V4 

V4是基於V3,在合併之前develop分支的變化,不是合併版本。

這並不回答你的差異問題,但它告訴你爲什麼你的分支不包含相同的東西。

相關問題