相关疑难解决方法(0)

如何使用Mercurial命令行合并摆脱头部,就像我可以用TortoiseHg做的那样?

我的问题是:

  • 如果我的Mercurial存储库中有两个头(带有更改的分支),并且我想要删除其中一个,但是丢弃该分支中的所有更改而不是将它们合并到另一个中,我无法剥离那些变更集所以我必须合并,我怎么能用命令行客户端呢?

如果我在Mercurial存储库中有两个头,并使用TortoiseHg作为我的客户端,则存储库可能如下所示:

两个脑袋

然后我可以test2通过合并和丢弃摆脱头部.首先,我会更新到我想保留的头部(test3在这种情况下,上面的图像中已经是我工作文件夹的当前父级).然后我会右键单击并选择"与...合并":

合并...

在弹出的对话框中,我会选择放弃合并目标的更改(即我想要丢弃所有更改的分支):

合并对话框

合并完成后,test2头部的所有更改都被丢弃了,我可以提交.头已经消失了,但改变仍然是历史的一部分.

我的问题是:如何仅使用命令行客户端执行相同的操作?我找不到该hg merge命令的任何匹配选项:

hg merge [-P] [-f] [[-r] REV]

merge working directory with another revision

... snipped text

options:

 -f --force       force a merge with outstanding changes
 -t --tool VALUE  specify merge tool
 -r --rev REV     revision to merge
 -P --preview     review revisions to merge (no merge is performed)
    --mq          operate on patch repository

use "hg -v help merge" to show global options

编辑:debugsetparents工作得很好:

hg debugsetparents …

merge mercurial branch

35
推荐指数
1
解决办法
7424
查看次数

Mercurial:任何"合并和放弃变更"的方法?

我有一个图形日志,看起来像这样:

(snip)
  | |
  | o    1) Other Dev: Commit
  | | \
  o | |  2) Me: Commit
/ | | |
| | o |  3) Other Dev: Commits with an error
| |/| |
| o |/   4) Me: Merge and commit
|  /|    
|/  |
o   |    5) Me: Realize there were bugs in the commit and take earlier version to merge with
|   o    6) Other Dev: Fixes error
o /      7) Me: committing some …
Run Code Online (Sandbox Code Playgroud)

mercurial

21
推荐指数
1
解决办法
6759
查看次数

Mercurial - 退出旧合并

我有一个看起来像这样的分支:

A->B->C->D->...->Z
     ^
1->2-^
Run Code Online (Sandbox Code Playgroud)

哪里C2和它的祖先合并.

我现在意识到我不应该合并.我可以回去B嫁接D...... Z但这是很多工作.我可以退出C吗?

当我尝试hg backout --merge C,我得到中止:无法回退合并变更.

这些变化已被推送到中央回购,我不打算修改历史或任何东西,我只想要反过来,2它的祖先回到共同的后代B.

mercurial

15
推荐指数
3
解决办法
7832
查看次数

标签 统计

mercurial ×3

branch ×1

merge ×1