问题
在设置合并工具以解决冲突时,发送到合并工具的文件与其包含的内容不正确。我试过搜索 Stack Overflow,但没有找到答案。
细节
我是 GIT 的新手。为了了解更多信息,我在 Bitbucket 上建立了一个私人仓库。我有 Windows 7 64 位和以下软件:
- GIT 客户端:SmartGit/Hg
- 代码编辑器:IntelliJ IDEA Ultimate
- 合并:P4Merge || KDiff3
当从 SmartGit/Hg 调用 KDiff3 时:
(A) C:\Users\Username\AppData\Local\Temp\smartgit6393324384790956404tmp\compare_base_2787531226782357806_README.md
(B) C:\Users\Username\AppData\Local\Temp\smartgit6393324384790956404tmp\compare_ours_2686269382530657828_README.md
(C) C:\Users\用户名\AppData\Local\Temp\smartgit6393324384790956404tmp\compare_theirs_8849401324186420794_README.md
(OUTPUT) D:\Path\to\project\README.md
当从 IDEA 调用 KDiff3 时:
(A) C:\Users\Username\AppData\Local\Temp\Merge_Result2324777776464644375.md
(B) C:\Users\Username\AppData\Local\Temp\Local_Changes7034162268721107201.markdown
(C) C:\Users\Username\AppData\ Local\Temp\Changes_from_Server__revision_d7bcd6bd85df4f7bae648786dfa944825991b4f3_1371061438544389037.markdown
(OUTPUT) D:\Path\to\project\README.md
- (A) 正确显示基数,在IDEA“Merge_Result”的情况下令人困惑,但至少它具有基数数据。
- (B) 的内容是 HEAD 数据,它应该是 LOCAL。
- (C) 的内容是在应该是 HEAD 的地方显示 LOCAL 数据。
- (OUTPUT) 是应该保存合并/解析的冲突文件的正确位置。
我的理解是本地数据在 mine/ours/yours/local 文件中,而头部数据应该在 theirs/remote/head 文件中。
设置
SmartGit/Hg P4Merge 设置:
文件模式: * .md
命令: P:\Program Files\Perforce\p4merge.exe
参数: ${baseFile} ${leftFile} ${rightFile} ${mergedFile}
SmartGit/Hg KDiff3 设置:
文件模式: *.md
命令: P:\Program Files (x86)\KDiff3\kdiff3.exe
参数: ${baseFile} ${leftFile} ${rightFile} -o ${mergedFile}
解决问题后,我将更新文件模式。
IDEA KDiff3 设置:
可执行文件的路径: P:\Program Files (x86)\KDiff3\kdiff3.exe
参数: %2 %1 %3 -o %4
问题
P4Merge 和 KDiff3 都有相同的问题,这让我觉得我的本地 GIT 安装可能有问题,但我不知道下一步该去哪里进行故障排除和解决。我做错了什么,我该如何解决?
我想继续学习 Git,但如果我担心我的差异和合并工具(或它们正在使用的数据)的准确性,我就不能专注于此。
参考
P4Merge:http
://www.perforce.com/perforce/doc.current/manuals/cmdref/P4MERGE.html
KDiff3: http: //kdiff3.sourceforge.net/doc/documentation.html
我还有三个,但我没有足够的声誉来发布更多链接。它们相当于 Bitbucket、Araxis 文档和堆栈溢出页面,该页面引用了 P4Merge 中未记录的选项/参数/参数。我没有使用 Araxis,但他们有一些很好的说明,可以在许多不同的程序中找到您的冲突解决程序设置。
制造冲突
README.md(第一个版本)
# This is my README
This file has been modified BASE
拉。
README.md(通过 Bitbucket/网页编辑、提交、批准)
# This is my README
This file has been modified SERVER
README.md(本地修改)
# This is my README
This file has been modified LOCAL
存储更改。拉。应用存储。恭喜!您现在有一个需要解决的冲突。