另一个分支默认?

dar*_*dog 31 mercurial branch

我在Bitbucket和我的本地机器上有一个Mercurial回购,两个都是镜像,是最新的.我创建了一个功能分支,反映在两个repos中.我在功能分支中完成了所有工作.

功能分支现在已完成,我现在想把它作为主repo和我的本地副本的默认设置.我并不真正关心默认分支,已经有足够的工作进入功能分支,我想要做的就是将其指定为新的默认分支.

我不认为我想合并也不应该合并?我怎么能这样做,所以本地和远程不要混淆?

Dav*_*ver 25

就在合并feature-branchdefault然后关闭feature-branch:

$ hg checkout default
$ hg merge feature-branch
$ hg commit
$ hg checkout feature-branch
$ hg commit --close-branch
Run Code Online (Sandbox Code Playgroud)

没有更清晰明智的方式(我知道)要" feature-branch默认".

有一两件事,就不会那样好,但你可以做的,是让承诺default之上feature-branch:

$ hg checkout feature-branch
$ hg branch default
$ hg commit
Run Code Online (Sandbox Code Playgroud)

但这会在default分支中留下两个头,这是次优的.


Mar*_*ler 19

从Mercurial 2.4开始,您可以创建一个名为的书签@,Mercurial将检出该修订版的新克隆.

但是,我仍然会尝试坚持使用default作为主要开发发生的分支.这样做会给已经习惯Mercurial的开发人员带来最少的意外 - 维基描述了在Mercurial中使用分支的标准方法.

如果您遵循使用default作为开发主分支的传统建议,那么您应该在合并之前关闭功能分支:

$ hg update feature-branch
$ hg commit --close-branch -m "Feature done, merging into default branch"
$ hg update default
$ hg merge feature-branch
$ hg commit
Run Code Online (Sandbox Code Playgroud)

如果自启动功能分支以来在默认分支上没有完成任何工作,那么这个合并将是微不足道的并且没有冲突.否则你将不得不解决冲突.如果您确定要保留功能分支中的所有内容,则可以执行此操作

$ hg merge --noninteractive --tool internal:local feature-branch
$ hg revert --all --rev feature-branch
Run Code Online (Sandbox Code Playgroud)

而不仅仅是hg merge上面.这将确保新的提交default看起来与上次提交完全一样feature-branch.


小智 9

我通过关闭默认分支而没有合并成功.

在我的开发仓库工作目录中:

$ hg update default
Run Code Online (Sandbox Code Playgroud)

$ hg commit --close

然后我的开发分支成为新的默认分支.但我不知道为什么我的开发分支被选为新的默认值的规则.我想是因为这是我的小费?(或者可能是最后一个改变了分支?(小费?))

我也认为下次你必须重复这一点.因为我认为我选择的分支名称被"默认"名称"覆盖"了.

有分支名称会很高兴.

DEV-的projectname-version.x =默认

问候