Mercurial:保持默认分支"活跃"

Ric*_*ard 13 mercurial branch

我使用mercurial和命名分支,并注意到当我创建一个新的默认分支时,default被标记为非活动分支.例如:

C:\data\solutions\test-repo>hg branches
default                        0:aeec280e6310

C:\data\solutions\test-repo>hg branch feature-branch
marked working directory as branch feature-branch

C:\data\solutions\test-repo>hg com -m "created new branch"

C:\data\solutions\test-repo>hg branches
feature-branch                 1:1cb18d7fa554
default                        0:aeec280e6310 (inactive)
Run Code Online (Sandbox Code Playgroud)

这是一个问题,因为我们的部署系统显示了活动的命名分支,可以从中部署.

如何保持默认分支"活动"?

Mar*_*ler 22

"活跃"和"非活跃"分支的概念是我们在Mercurial项目中逐渐消失的.问题很简单,分支可以或多或少随机地在两个状态之间来回切换,并且在不方便的时候 - 就像你刚才看到的那样.

相反,我们现在专注于"开放"与"封闭".这是一个明确的概念:你要关闭一个分支头

$ hg update feature-branch
$ hg commit --close-branch -m "passes all tests, ready for merging"
Run Code Online (Sandbox Code Playgroud)

这将添加一个特殊的变更集,将分支头标记为已关闭.当分支上的所有头都关闭时,分支本身就会被认为是关闭的并且会从中消失hg branches.我建议合并之前关闭,请参阅我的命名分支指南以获取更长的示例.

因此,我建议您更改部署系统以显示open branches(hg branches)而不是active branches(hg branches --active).


Xav*_*ero 14

不活跃只意味着它没有头脑.

在您的情况下,图形如下:

default:        0 -\
feature-branch:     \- 1 --- *
Run Code Online (Sandbox Code Playgroud)

* 意思是"工作的目录

当您在功能中执行更多修复(如节点2和3)时,这将是方面:

default:        0 -\
feature-branch:     \- 1 --- 2 --- 3 ---- *
Run Code Online (Sandbox Code Playgroud)

当你想要集成feature-branchdefault刚刚更新的时候default

default:        0 -\--------------------- *
feature-branch:     \- 1 --- 2 --- 3
Run Code Online (Sandbox Code Playgroud)

然后合并feature-branchdefault:

default:        0 -\-------------------/- *
feature-branch:     \- 1 --- 2 --- 3 -/
Run Code Online (Sandbox Code Playgroud)

它看起来"不活跃"的事实并不意味着你无法使用它.例如,hg update --clean default即使"部署脚本" 显示为"非活动",它也可以完美地工作.

不活跃只是意味着它没有头脑.没有其他的.合并后它将变为活动状态feature-branch,它将变为"非活动状态".

不要介意其活动/非活动状态,只需正常使用它.