我有一个善变的回购与一个相当纠结的分支/合并结构。某些分支包含不应该推送到主仓库的本地自定义,但是来自此类分支的某些更改集可能已合并到 default
和/或应推送的某些功能分支。
在我推动特定分支的修订之前,我想知道哪些其他分支(如果有的话)已经提供了将被引入的变更集。例如:
feature1 ... o--o--o---o--o--o--o
\ /
config x--x--x--x
如果我按下分支feature1
,它还会从分支config
中提取三个变更集。我可以使用hg outgoing -b branchname destination_repo
来预览将被推送的变更集,但是有很多变更集和许多分支要推送。有没有办法只获得一个有助于祖先变更集的分支列表,或只是不的受影响变更集属于我指定的命名分支?
答案 0 :(得分:1)
只需将hg outgoing
的输出模板化为(仅),即可提供所需信息:
hg outgoing -T"{rev}: {branch}\n"
或者如果你有bash,将它压缩到一个分支列表(尾部是必需的,因为我们要忽略哪些行与哪个repo进行比较以及它正在搜索更改):
hg outgoing -T"{branch}\n" | tail -n+3 | sort -u
同样适用于hg incoming
。如果您只想提取(或推送)某个修订版,请通过--rev XXX
或--branch BBB
参数明确提供所需的修订版。
答案 1 :(得分:-1)
你可以使用Tortoise hg https://tortoisehg.bitbucket.io/来处理这些事情。 切换到特定分支并将更改完成推送到您希望提交的特定分支。
如果你在unix机器上做这样的话,那么
hg shelve --all --name "UnfinishedChanges"
hg update [-c] [-C] [-d DATE] [[-r] REV]
aliases: up, checkout, co
update working directory (or switch revisions)
hg unshelve --name "UnfinishedChanges"

最后提交和pust只需要更改。它只会在您更新工作目录所需的分支中推送该功能。