为什么需要--new-branch标志?

Vai*_*pai 5 mercurial

这不是一个正常的工作流程吗?

[default] $ hg branch foo

[foo] $ [... some commits ...]

[foo] $ hg update default

[default] $ hg merge foo

[default] $ hg commit -m "merged foo"

[default] $ hg push
abort: push creates new remote branches: foo!
(use 'hg push --new-branch' to create new remote branches)
Run Code Online (Sandbox Code Playgroud)

什么是分支→合并→推动的理想方式?

Tim*_*ney 6

多变的哲学是你不应该推动使存储库的其他用户更难的东西.与此问题相关的是,多个头部使其他开发人员更难,因为他们需要合并您的更改.因此,默认情况下,服务器会拒绝推送新头.该-f选项用于推动新头.

然而,推动新命名分支的情况在概念上与在同一分支上推动新头部完全不同.许多工作流程(包括我的)在单独的命名分支上执行每项任务.该--new-branch选项允许您推高新分支,同时拒绝现有分支上的新头.它也是不同的(如你所见)因为即使新分支没有创建新的头部(由于合并)也需要它.

我个人的感觉是默认情况下应该允许新的分支,但是mercurial开发者更喜欢.