2017-08-02 85 views
0

我在默認分支中做了更改並創建了一個補丁。然後我從默認創建了我自己的分支。我從默認導出更改補丁並將其導入到我自己的分支。在ubuntu中使用tortoise hg工具從我的分支推送更改時,它僅顯示我從默認導入的更改。但是當我從我的分支推送更改時,默認分支中的所有草稿也被推送。爲什麼如此?爲什麼需要從默認分支中刪除更改,同時推送來自另一分支的更改

只有那些具有與我創建我的分支的散列相同的父母的草稿纔會被推送。

例如 可以說,我有默認的公開變更A. 我已經在默認情況下創建了我的草案B通過A默認 然後我已經在默認情況下創建了我的A草案C。平均C和B都有A是父項。 我從默認狀態下拉取了最新的代碼。現在D是最新公​​開的。 我從D創建了我的分支,並且還在D上重新創建了B。 然後導出B.並在我的分支中導入。 我已經從我的分支推B。推動它只顯示一個B草案。

問題是C草稿在默認情況下也被推送。

請幫我在這

Logs

+1

請添加例子log -G輸出(包括相位信息)你會談論什麼...這將使它更容易遵循 – planetmaker

+0

我有附加圖像的問題 –

回答

0

在水銀,當你推,你在默認情況下推動資源庫樹的整個結構。如果這將在遠程存儲庫的分支中創建一個新頭,Mercurial將中止推送,除非指定了hg push --force。 (建議不要在沒有充分理由的情況下強行推送,因爲分支上的多個頭可能會導致混淆。)

如果您有TortoiseHg,則可以在草稿狀態中顯示修訂版,方法是在草稿中輸入draft()過濾器框並按ENTER。 (如果您沒有看到,請點擊「Filter」圖標。)在命令行中,您可以使用命令hg log --rev draft()顯示相同的內容。

要推送特定的修訂及其後代,可以使用命令hg push --rev RevisionNumberOrHash(如hg push --rev 123)。或者,您可以將不需要的修訂標記爲祕密。要執行此操作,請使用命令hg phase --rev RevisionNumberOrHash --secret --force;在TortoiseHg中,右鍵單擊修訂並選擇「更改階段」 - >「祕密」。除非您專門選擇推送,否則不會推送祕密修訂,除非您將其更改回草稿狀態。 (重要的是:如果修改是祕密的,所有的後代都是祕密的。)

相關問題