标签: 3-way-merge

Mercurial/Meld的3路合并是如何工作的?

我正在开发一个项目,我有一个提交,它引入了一个主要问题但未立即发现的功能.现在我想完全删除该修订版,同时保持其后的工作,但我很难绕过这种3路合并.这是我的项目的简化图.

o  changeset:   134:7f81764aa03a
|  tag:         tip
|  parent:      128:451d8a19edea
|  summary:     Backed out changeset 451d8a19edea
|
| @  changeset:   133:5eefa40e2a29
| |  summary:     (Change I need to keep keep)
| |
*snip 3 commits*
| o  changeset:   129:5f6182a97d40
|/   summary:     (Change I need to keep keep)
|
o  changeset:   128:451d8a19edea
|  summary:     (Change that introduced a major problem)
|
o  changeset:   127:4f26dc55455d
|  summary:     (summary doesn't matter for this question)

如果我理解正确,r127和r134完全相同.当我hg up -C -r 133然后运行时hg merge …

merge mercurial dvcs 3-way-merge

33
推荐指数
2
解决办法
2万
查看次数

跳过Vim中的撤消步骤

假设我在我的文档中处于A状态.然后我按顺序进行B,C和D的更改.

有没有办法可以保持B和D的变化,但跳过C?

或者,假设我在我的文档中处于A状态.我做出更改B,撤消它,然后进行更改C和D(因此Vim有一个带有两个分支的撤消树).然后我改变了主意,决定要使用B和D而不是C.

我怎么能在Vim中这样做?我已gundo.vim安装插件,但我没有那么多使用它.

vim tree undo 3-way-merge

19
推荐指数
1
解决办法
560
查看次数

理解Meld 3方式与Git合并

我的老板设置了我们新的Git存储库,一个在我们的Windows服务器上,一个在我们的Linux服务器上.

我被要求解决冲突,所以我选择使用Meld.

当我运行第一个文件时,它会打开3个窗口;

  • shipping.php.local.####,
  • shipping.php
  • shipping.remote ####.

我已阅读文档和帮助,但我无法理解.从我所看到的,shipping.remote对我想要保留的Linux机器上的文件进行了更改.shipping.local是来自Windows服务器的文件,shipping.php是合并产生的文件.

因此,如果我只是从shipping.remote获取代码,将其移动到中间文件(shipping.php)并保存,我将在Linux机器上的Git存储库中获得我想要的更新文件?

我希望我正确解释,我只是不想弄乱一些东西.

git repository meld 3-way-merge

12
推荐指数
1
解决办法
1万
查看次数

适合小团队的Mercurial Workflow

我在一个由3名开发人员组成的团队中工作,最近我们从CVS切换到了Mercurial.我们正在使用水银具有对我们每个工作站的本地存储库和拉/推到开发服务器.我不确定这是最好的工作流程,因为在提交后很容易忘记推送,而且3路合并冲突可能会引起真正的麻烦.我们可以使用更好的工作流程,因为我认为分布式VC的复杂性超过了目前的好处.

谢谢

workflow mercurial 3-way-merge

12
推荐指数
2
解决办法
1780
查看次数

为什么'git mergetool'(meld)显示冲突标记?

为什么'git mergetool'(meld)向我显示带有conclict标记的祖先视图?这是完全错误的,我永远不明白为什么会这样做.我该如何解决?

应该显示3路合并

[ Your Changes ]          [ Common Base ]            [ Upstream Changes ]
Run Code Online (Sandbox Code Playgroud)

我得到的是:

[ My Changes   ]   [ File with Conflict markers ]    [ Upstream changes ]
Run Code Online (Sandbox Code Playgroud)

看到: 示例截图

git version-control merge meld 3-way-merge

11
推荐指数
1
解决办法
3556
查看次数

git的合并冲突解决方案比其他SCM和合并工具更有效吗?

git合并冲突解决方案本身是否比其他SCM(CVS,Subversion等)以及独立的合并工具更有效率?如果是这样,为什么?

澄清:这里我对算法本身更感兴趣 - 它与普通的diff3方法有什么不同?
一些工具声称更聪明(例如Guiffy),是否值得插入作为git合并工具?git是否更聪明地找出在文件内或跨文件移动的文本?(而不是报告嘈杂的冲突..我对Linus的谈话有一种模糊的印象).

背景:刚刚做了一个巨大的合并使用git-svn,导致了一半的冲突比我得到的普通svn merge(第一次合并没有跟踪)..所以我想了解原因.


类似的Qs/As周围,但它们更多的是关于过程的大局,以及合并如何更自然地适应.为此,git"优化合并"(而不仅仅是分支),它实际上意味着:

  1. 减少手动冲突 - 更好的自动分辨率算法(例如,重命名处理得很好)
  2. 更安全的操作 - 自动解决更多/只有真正的冲突和更少的错误警报
  3. 更快的操作 - 比如,由于精益和平均对象模型
  4. 更好的工具 - 这使得体验减少痛苦,例如基于DAG的合并跟踪,合并工具,历史查询/可视化,藏匿,变基等...
  5. 别的
  6. 以上的组合

?现在,我最感兴趣的是1和2.

git version-control merge conflict 3-way-merge

8
推荐指数
1
解决办法
1334
查看次数

“git merge --squash”的正确用例是什么?

有些人喜欢git merge --squash的原因如下:

压缩到单个提交让您有机会清理杂乱的 WIP 提交,并为您正在合并的更改提供一个很好的理由。

https://coderwall.com/p/qkrmjq/git-merge-squash

但是,我认为有一些缺点超出了制作干净历史的优点。

  1. git merge --squash产生一个非合并提交。因此,Git 不会将您正在合并的提交识别为合并基础。当 1) 在分支 X 上将 A 更改为 B,2)git merge --squash从分支 X 到分支 Y,以及 3) 在分支 X 上将 B 更改为 A(还原),以及 4) 将 X 合并到 Y 时,这会导致不需要的合并结果。在此处输入图片说明 在第 4 步之后,在分支 Y 上,从 A 到 B 的更改不会恢复。这里,这是 3 路合并,因此比较从分支 X 到合并基的差异和从分支 Y 到合并基的另一个差异。前者包括没有变化,后者包括从A到B的变化,所以合并结果包括从A到B的变化。

  2. 提交作者被覆盖,这会丢弃贡献。git merge --squash产生一个名为 who did 的新提交git merge --squash。当然,提交内容来自原始提交。这听起来像是在窃取贡献。这成为https://github.com/Microsoft/winfile/pull/42#issuecomment-380681627 中的一个问题

什么是正确的用例git merge --squash

git merge squash 3-way-merge merge-base

6
推荐指数
1
解决办法
2822
查看次数

合并后如何自动将文件解析为已解析

我开始使用TortoiseGit for Windows但我发现有些烦人的事情.例如,当我在合并期间发生冲突时,我需要执行以下操作:

  • 做3路合并(当然......别无选择)
  • 将文件标记为已解决

如果合并成功结束,是否有自动标记文件的方法?

谢谢你的任何指示,

尤利安

git merge tortoisegit windows-7 3-way-merge

2
推荐指数
1
解决办法
1641
查看次数

git revert 是否也使用 3 路合并?

当我运行时git revert,可能会发生冲突。git 是否依赖于 3 路合并,如问题合并内部(参见下表)中所述,也适用于revert

在此处输入图片说明

恢复的合并基础是什么?在使用 git 和 meld 进行交互式变基的 3 向合并中的三个文件是什么?这很清楚,但很难想象这是一个还原。

A - B - C - D - C^-1
Run Code Online (Sandbox Code Playgroud)

(如果我想C在最后恢复。)

git merge revert git-revert 3-way-merge

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