哪些分支是mercurial特定变更集的祖先?

时间:2017-06-29 11:12:54

标签: mercurial

我有一个善变的回购与一个相当纠结的分支/合并结构。某些分支包含不应该推送到主仓库的本地自定义,但是来自此类分支的某些更改集可能已合并到 default和/或应推送的某些功能分支。

在我推动特定分支的修订之前,我想知道哪些其他分支(如果有的话)已经提供了将被引入的变更集。例如:

feature1 ... o--o--o---o--o--o--o
              \       /    
config         x--x--x--x

如果我按下分支feature1,它还会从分支config中提取三个变更集。我可以使用hg outgoing -b branchname destination_repo来预览将被推送的变更集,但是有很多变更集和许多分支要推送。有没有办法只获得一个有助于祖先变更集的分支列表,或只是的受影响变更集属于我指定的命名分支?

2 个答案:

答案 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只需要更改。它只会在您更新工作目录所需的分支中推送该功能。