closures汞分支
当使用hg branch FeatureBranchName
并将其发布到开发人员共享的中央FeatureBranchName
时,有没有办法最终closuresFeatureBranchName
当其开发已经正式与默认分支合并?
如果在执行hg branches
命令时FeatureBranchName
不可见,这也会很有帮助。
hg commit --close-branch
应该足以标志一个分支closures。 (见hg commit
)
--close-branch
将分支标记为closures,将其从分支列表中隐藏。
另请参阅此主题 :
我的期望是,我closures了一个分支,因为这个发展路线已经走到了死胡同,我不想再为此烦恼了。
因此,除非我明确要求看到closures的分支,否则当分支closures时,我不应该看到它(例如分支,头部,日志)。我应该注意到,我希望一个封闭的分支留在存储库中; 这在将来可能会有用,并且
commit --close-branch
消息应该至less解释为什么分支被closures。
修枝是另一回事。
注意: 与Mercurial相比 ,“closures分支”业务是Git中缺less的一个方面 :
git中的分支是,我们总是被告知,短暂的东西被使用和扔掉,就我所知,git没有办法向你的同事表明你已经完成了一个分支。
要做到这一点的唯一方法就是删除它,或者希望他们看到最后的合并提交,并理解分支是closures进一步发展。[在Mercurial中]然而,当你完成一个分支时,你不能从存储库中删除它; 而是发出closures分支的提交,并且Mercurial注意到该分支已closures。 它仍然是您的资料库历史logging的永久部分。
我写了一个简单的脚本来完成分支closures,在PruningDeadBranchesfind的命令。
##脚本##
#!/bin/bash #script to close not required branch in mercurial hg up -C $1 if [ $? -eq 0 ]; then echo "$1 is up" else echo "branch not found, please recheck your argument" exit 1 fi echo "$1 is up" hg commit --close-branch -m 'this branch no longer required' echo "$1 is closed" hg up -C default echo "default is up"
如何
移至存储库的本地副本,并通过提供参数来运行此脚本。 例如:
$./the_script_above.sh bad_branch_name_to_close
它有什么作用
这样做如下:
- 如果分支存在,则更新到给定的分支,否则存在错误消息。
- 它closures分支。
- 更新到默认分支。
- 停止。