Perforce:基于Linux的3路合并/解析工具?

时间:2011-03-14 08:35:03

标签: linux merge perforce resolve

我正在寻找一种基于Linux的工具,使用Perforce进行3路合并/解析。我熟悉vim / vimdiff,但我不知道它们是如何用于3路合并的。在任何一种情况下,请告诉我,根据您的说法,这是Linux上最好的合并/解决工具。

为清楚起见,我想补充一点,我更喜欢一种不需要X服务器的工具,即可以通过putty使用。

4 个答案:

答案 0 :(得分:4)

我更喜欢融合它强大而轻巧,没有像Kdiff3那样的KDE deps。 看official homepage

答案 1 :(得分:4)

如果你没有使用X客户端,请尝试查看emacs'ediff。这适用于文本模式(虽然在X中更容易)。

答案 2 :(得分:3)

我猜你在谈论用三向差异工具解析文件。不同的版本是,

  • ORIGINAL
  • 他们
  • YOURS

现在,为了做到这一点,Linux中需要一些设置。我有一个.p4config文件,用于定义我最喜欢的差异工具。

P4CLIENT=mywork
P4DIFF=diff -u
P4EDITOR=vi
P4IGNORE=.p4ignore

此处P4DIFF设置为diff -u。为了使整个工作正常,需要通过环境变量将.p4config文件插入到perforce中。

export P4CONFIG=.p4config

现在它是甜蜜点。我们需要通过p4 resolve命令实际执行解析。

p4 resolve /path/to/mysource.h

一旦我们这样做,它就表明存在冲突,因为有人修改了我们正在使用的原始版本。所以它促使我们采取行动。

/path/to/mysource.h - merging //stream/version/path/to/mysource.h#2
Diff chunks: 13 yours + 2 theirs + 0 both + 1 conflicting
Accept(a) Edit(e) Diff(d) Merge (m) Skip(s) Help(?) e: d

我们可以通过按d来查看差异。

--- /path/to/mysource.h 2016-09-28 18:34:54.918709150 -0400
+++ /path/to/tmp.6365.102   2016-09-29 11:05:32.228946564 -0400
@@ -16,6 +16,7 @@
we are same in all branches
same as everywhere 
+ added line
more same

@@ -28,7 +29,12 @@
here you go the conflict
+>>>> ORIGINAL //stream/version/path/to/mysource.h#1
+ the original line is here
+==== THEIRS //stream/version/path/to/mysource.h#2
+ their line is here
+==== YOURS /path/to/mysource.h
my line is here
+<<<<
Accept(a) Edit(e) Diff(d) Merge (m) Skip(s) Help(?) e: e

现在可以修复此键入e。它会打开一个编辑器,我们可以比较+====行和+<<<<行之间的不同版本。

完成编辑后,我们可以通过输入a来接受。

Accept(a) Edit(e) Diff(d) Merge (m) Skip(s) Help(?) ae: a

整个过程可以从远程命令/ shell窗口完成。所以不需要X服务器。

答案 3 :(得分:1)

我有一个名为diff3的东西,它有一个合并选项。我不知道它来自哪里,我没有使用它。 diff3 -m file1 file2 file3。把它拿走它的价值。

顺便说一句,我正在运行OpenSuSE 11.2,如果有帮助的话。