繁体   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