Answers:
hg commit --close-branch
应该足以标记分支关闭。(请参阅hg commit
)
--close-branch
将分支标记为已关闭,将其从分支列表中隐藏。
另请参见此线程:
我的期望是我关闭一个分支,因为这条发展线已经走到了尽头,而且我不想再被它打扰了。
因此,当分支已经关闭时,除非明确要求查看关闭的分支,否则不应看到它(例如在分支,标题,日志中)。我应该注意,我希望封闭的分支保留在资源库中。将来可能会有用,并且该
commit --close-branch
消息至少应说明分支为什么关闭。
修剪分支完全是另一回事。
注意:与Mercurial相比,“关闭分支机构”业务是Git中缺少的一个方面:
我们总是被告知,git中的分支是短暂的东西,要被使用和丢弃。据我所知,git没有办法向您的同事表明您已经完成了分支。
唯一的方法是删除它,或者希望他们看到最终的合并提交并了解该分支对进一步开发是封闭的。[在Mercurial中]但是,完成分支后,就无法将其从存储库中删除。相反,您发出关闭分支的提交,Mercurial指出分支已关闭。它将一直是您存储库历史记录的永久部分。
我写了一个简单的脚本来完成分支的关闭,这些命令可以在PruningDeadBranches找到。
#!/bin/bash
#script to close the 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
# if we are here then the branch is up, so we do the following
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
这将执行以下操作:
$ hg update yourbranchnamecontainingspace
。我认为我们可以用空格创建一个分支名称,但是当您运行诸如update之类的辅助命令时,您会遇到解析错误。您可能希望在将分支名称作为参数传递给脚本时考虑转义空格字符。干杯。
echo "$1 is up"
这里没有重复吗?在then
之后fi
?此外,如果支持立即合并到默认选项的脚本,这种脚本可能会有所帮助