我正在寻找一种基于Linux的工具,使用Perforce进行3路合并/解析。我熟悉vim / vimdiff,但我不知道它们是如何用于3路合并的。在任何一种情况下,请告诉我,根据您的说法,这是Linux上最好的合并/解决工具。
为清楚起见,我想补充一点,我更喜欢一种不需要X服务器的工具,即可以通过putty使用。
答案 0 :(得分:4)
我更喜欢融合它强大而轻巧,没有像Kdiff3那样的KDE deps。 看official homepage
答案 1 :(得分:4)
如果你没有使用X客户端,请尝试查看emacs'ediff。这适用于文本模式(虽然在X中更容易)。
答案 2 :(得分:3)
我猜你在谈论用三向差异工具解析文件。不同的版本是,
现在,为了做到这一点,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,如果有帮助的话。