Mercurial将默认分支合并到命名分支中。

3

我有一个相当简单的Mercurial仓库,除了default分支外,还有一个命名分支。

已经对default分支进行了更改并提交,我想将这些更改合并到我的命名分支中。然而,hg merge default似乎没有合并所有更改。

例如:

hg update working
99 files updated, 0 files merged, 0 files removed, 0 files unresolved

hg status -m --rev default:working

有大约20个带有修改的文件

M ... some list of files...
hg merge default
merging path/to/a/file/foo.java
3 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)

hg status -m --rev default:working

现在还有一些文件被修改了,我本以为它们会被合并。我可以运行“hg diff -r default”命令,发现有一些修改没有被合并。下面是仓库的样子:
@  changeset:   4:d41da580b434
|  branch:      working
|  tag:         tip
|  parent:      1:3ed1c8bf91cf
|  user:        bob costas
|  date:        Tue Mar 24 10:13:25 2015 -0500
|  summary:     pr-1243 and minor updates
|
| o  changeset:   2:ea0c249218fa
| |  parent:      0:385565af3c13
| |  user:        bob costas
| |  date:        Mon Mar 23 15:09:42 2015 -0500
| |  summary:     bunch of updated files and fixes
| |
o |  changeset:   1:3ed1c8bf91cf
|/   branch:      working
|    user:        bob costas
|    date:        Mon Mar 23 13:38:59 2015 -0500
|    summary:     pr-1231 
|
o  changeset:   0:385565af3c13
   user:        bob costas
   date:        Thu Mar 19 18:15:52 2015 -0500
   summary:     initial commit

你已经提交了合并的修改集吗?(它不会自动完成,因为可能存在冲突。) - Edward
状态命令不应该是:hg status -m --rev default(删除末尾的:working)吗?另外,您看到的hg diff差异是否实际上是在working分支中进行的更改,而这些更改尚未合并到default中?我不确定您如何使用这些分支,但也许您需要先将working合并到default中,然后再反过来合并。 - David Levesque
@Edward,不,我还没有提交合并,因为我发现合并没有捕捉到所有必要的更改。 - Oyunokata
@DavidLevesque 状态命令两种方式都可以使用,结果完全相同。我添加了 :working 只是为了明确要比较哪些修订版本。在 working 中有一些更改不在 default 中。然而,我想将 default 合并到 working 中,整理一下,然后再将 working 合并到 default 中。我百分之百确定 default 中有更改(因为我放了它们在那里),这就是我需要合并的原因。 - Oyunokata
1
如果你将合并后的头部与default分支头部进行比较,你应该会看到变化。具体来说,你会看到变更集1和4(等等,第3个变更集发生了什么?)。这是正常的,也是你想要的。 - Kevin
1个回答

9

你没有提交你的合并请求。Mercurial 告诉你:


hg merge default 

合并路径/to/a/file/foo.java 3个文件已更新,1个文件已合并,0个文件已删除,0个文件未解决(分支合并,请不要忘记提交

当您进行合并时,所有文件都会保留在源中被修改,并且您需要提交它们。

hg commit -m "merge with default"

然后你的分支将出现在日志中已合并的列表中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接