1

svn update在一个相当旧的沙箱上通过命令行做了一些本地更改。检测到冲突,所以我看到了通常的输出:

Conflict discovered in 'file.cpp'.
Select: (p) postpone, (df) diff-full, (e) edit,
        (mc) mine-conflict, (tc) theirs-conflict,
        (s) show all options: p

我没有在这台计算机上设置我的 svn 命令行选项,所以我首选的启动meld解决冲突的方法不可用。因此,我选择将冲突推迟到我建立融合为止。

然后,我使用与此处所示meld类似的过程进行设置。

现在,做另一个svn update不会重新发现冲突,因此不会给我启动融合的选项。我只得到一个“ At revision ...”显示。有没有办法再次获得“ Conflict discovered in ...”线?或者是否有启动 3 路融合解析器的命令?

4

2 回答 2

1

According to it's documentation meld can be used as a git merge helper. A git merge helper is called like this:

When git mergetool is invoked with this tool (either through the -t or --tool option or the merge.tool configuration variable) the configured command line will be invoked with $BASE set to the name of a temporary file containing the common base for the merge, if available; $LOCAL set to the name of a temporary file containing the contents of the file on the current branch; $REMOTE set to the name of a temporary file containing the contents of the file to be merged, and $MERGED set to the name of the file to which the merge tool should write the result of the merge resolution.

So at least you can run it like this:

export BASE=some_file.r123
export LOCAL=some_file.mine
export REMOTE=some_file.r124
export MERGED=some_file
meld

I don't know whether this is the same as running it with its three-file syntax: meld some_file.r123 some_file.mine some_file.r124.

于 2013-01-02T17:19:00.477 回答
0

跟进@AndreKR

  • 如何解决与安装 Meld 的延迟冲突

因为(在推迟之后)每个冲突文件(*.MY、*.THEIR、*.BASE)都有 3 个临时文件,并且 Meld 最多可以接受三个文件名作为文件差异的参数,所以你只需运行手meld MY BASE THEIR,编辑我的文件以获得所需的结果,保存它,并且,为了关闭合并冲突,在它之后使用svn resolve --accept 'my-full FILENAME'(根据svn help resolve“当前需要 --accept 选项”,并且svn resolve所有更改都必须在 MY 中完成文件)

  • 如何将 Meld 用作合并 - 永远不同

[helpers]配置文件中的部分:diff-cmddiff3-cmd并且merge-tool-cmd键将获得共同值 - meld(可能带有路径,但没有参数)。使用合并工具会遇到一些小麻烦,因为“...Subversion 会将 4 个参数传递给指定的命令”,而 Meld 只能接受 3 个,但您提到的博客文章包含解决此问题的方法

于 2013-01-02T21:07:45.783 回答