簡體   English   中英

強制創建Mercurial遠程頭(即分支)的壞主意?

[英]Bad idea to force creation of Mercurial remote heads (ie. branches)?

我正在開發一個集中的Web應用程序,我有一個集中的Mercurial存儲庫。

在本地我在我的存儲庫中創建了一個分支

hg branch my_branch

然后,我做了一些改變並承諾。 然后,當我試圖推動時,我明白了

abort: push creates new remote branch 'my_branch'!
(did you forget to merge? use push -f to force)

我剛剛使用push -f。 這不好嗎? 我希望在我的中央遠程存儲庫中有多個分支,因為我想1)備份我的工作,2)允許其他開發人員在我的分支上與我一起開發。

在我的遠程存儲庫中有分支或其他什么東西是壞的還是什么? 我不應該做推-f(如果沒有,我該怎么辦?)? Joel為什么在他的教程中這樣說:

替代文字
(來源: grabby.info

偶爾我在分支中進行了更改,推送,切換到另一個分支,我在切換到的那個分支中所做的更改被神秘地恢復到幾個提交之前的先前版本。 也許這是迫使推動的症狀?

我懷疑有更多時間的人可以更好地回答,但這里有一些我發現的相關內容:

https://www.mercurial-scm.org/wiki/TipsAndTricks#Prevent_a_push_that_would_create_multiple_heads

它與一個不同的選項(特別是破壞push -f)有關,但是它提到了你所要求的內容:

雖然一個簡單的“hg push”會警告你,如果你要創建新頭,這只是客戶端的一個警告,旨在幫助/提醒用戶他們可能忘記了首先合並。

假設這是一個准確的陳述,那么你是完全安全的。

但請注意,我只有Mercurial的基本知識,所以不應該用作完整真理的來源:)。

不,在創建新分支時強制推送也不錯。 發出錯誤/警告是因為新分支導致存儲庫具有兩個拓撲頭。 也就是說,現在有兩個沒有子項的變更集:默認分支的提示和新分支的提示。

使用Mercurial 1.6(將在兩周后發布),您將能夠做到

hg push --new-branch

允許創建新的遠程分支。 這更安全,因為--force禁用所有安全防護,而--new-branch僅允許您創建新分支。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM