问题标签 [p4merge]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - 如何使用 p4merge 强制文本合并?
我正在使用 Perforce 及其默认的合并工具 p4merge。在集成时,vcproj
我希望解决几个冲突。
但似乎 p4merge 试图以某种方式解释文件的内容,只说“图像文件无法合并”然后退出。这样我就无法解决冲突,甚至无法获得差异。
这要么是一个非常新的未报告的错误,要么是一个非常简单的解决方法,因为谷歌搜索完全没有显示任何与它相关的内容(除了 Twitter 帖子)。
有人知道解决方法吗?
(我使用的是 Linux 版本的 Perforce。)
更新:
Perforce 文件类型是“文本”。所以它们不是二进制的。
git - 执行目录差异时 p4merge 失败?
我正在尝试使用 p4merge 作为我在 git 中的 diff/merge 工具。
但是我遇到了一个严重的问题。
我可以使用 p4merge 作为 difftool,git difftool <sha1> <sha1>
它运行良好。我也可以将它用作合并工具。但是当我尝试让它做一个目录差异时,git difftool -d <sha1> <sha1>
它会弹出一个错误对话框,上面写着:
错误:“/var/folders/6s/6sCbckgPGH42yLSh2eXveE+++TI/-Tmp-/git-difftool.9rgKV/left”是(或指向)无效文件。'/var/folders/6s/6sCbckgPGH42yLSh2eXveE+++TI/-Tmp-/git-difftool.9rgKV/right' 是(或指向)无效文件。
使用“p4merge -h”获得更多帮助。
那么这是因为 p4merge 不支持目录差异造成的吗?有没有什么办法解决这一问题?
顺便说一句,这是我的.gitconfig
设置
perforce - 如何查看某人在他/她的更改列表中对特定模块所做的更改
作为重构的一部分,一位同事提交了一个巨大的更改列表(>1000 个文件),并且 perforce 只是将其显示为“此更改列表中有 1000 个文件”。
我想看看他通过 Perforce p4merge 或 IntelliJ 的 perforce 集成/差异工具对文件夹/模块中的所有文件所做的更改。
settings - P4Merge 忘记了我的比较方法偏好。如何设置默认值?
运行 P4Merge 时,比较方法最初始终设置为“识别行尾和空白差异”(也就是所有更改)。我想使用“忽略行尾和空格长度差异”,但每次工具运行时我都必须手动重新设置它。
我更改了设置:
- 使用工具栏按钮
- 在首选项对话框中
- 在文件菜单上
它永远不会粘住。事实上,每次我回到菜单时,首选项对话框条目都会重置,甚至没有关闭程序。在使用“文件”菜单中的“退出”命令之前、关闭窗口之前以及保存合并之前,我已经更改了设置。
过去我能够保存我的设置并记住它,不幸的是我不记得所涉及的软件版本。我将 P4Merge 作为独立设备使用,并且没有安装 Perforce 套件的其余部分。
我可以更新任何其他可能证明相关的支持信息。
[编辑:这是首选项对话框中的单选按钮设置,每次查看时都会忽略更改和重置,而不是文件子菜单。]
git - p4merge 和 Git 1.8.3
如何配置git
为p4merge
我的mergetool
?
接下来是我现在的情况:
git - 文件名的 GIT 合并文件内容不正确。(SmartGit/Hg || IntelliJ IDEA) && (P4Merge || KDiff3)
问题
在设置合并工具以解决冲突时,发送到合并工具的文件与其包含的内容不正确。我试过搜索 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(第一个版本)
拉。
README.md(通过 Bitbucket/网页编辑、提交、批准)
README.md(本地修改)
存储更改。拉。应用存储。恭喜!您现在有一个需要解决的冲突。
git - 如何配置我的合并工具不显示冲突标记?
我将 git 配置为使用SmartSynchronize作为合并工具,但是当我运行时,git mergetool
我仍然看到冲突标记,如下所示:
我正在使用P4Merge并看到它可以处理这些冲突标记,但我真的很喜欢在屏幕中间查看合并文件,就像在SmartSynchronize中一样;所以我做错了什么还是这个工具无法处理冲突标记?
我的.gitconfig
:
(另外,如果你知道一种让P4Merge像这样在中间显示合并文件的方法,我很想知道)
merge - accurev 合并不会将文件标题传递给外部合并工具
我正在p4merge
用作 Accurev 的外部合并工具。我为 p4merge 创建了一个包装器,并为(Tools-Preferences-Diff/merge)和 CLI(AC_MERGE_CLI 变量)设置了命令“ p4m -dw -tw 8 -nb %3% -nl %4% -nr %5% %a% %1% %2% %o%
” 。acgui
它成功地在. acgui
_accurev merge <filename>
%3
%4
%5
它出什么问题了?如何获取 CLI 的文件标题?
UPD:我正在使用 Accurev 6.0.1
git - 为什么我的 Git 合并工具配置不起作用?
我想设置trustExitCode
为 false 和keepTemporaries
true 但它不起作用......我不明白为什么。这是我的~/.gitconfig
:
当我使用 p4merge、myp4merge 或 mymeld 保存一些修改时,Git 不会询问我预期的“合并是否成功?[y/n]”并且不会留下 file.BASE、file.REMOTE、...
我找不到错误...
mercurial - 使用 SemanticMerge 配置文本合并以在 Mercurial 中使用 P4Merge
我已按照http://www.semanticmerge.com/sm-guides/main.shtml#HowtoconfigurewithMercurial上的说明进行操作,但它们是为 kdiff3 配置的,我想使用 p4merge 进行文本合并。我当前的 mercurial.ini 看起来像这样:
使用我当前的配置,当以 .cs 结尾的文件发生冲突时 SemanticMerge 按预期运行,但是当我在 SemanticMerge 中使用 merge 命令运行文本合并时,我收到一条错误警报,指出:
是不兼容还是我上面的“semantic.args”部分配置不正确?
更新 当我单击特定更改的合并按钮时出现错误。请参阅下面的屏幕截图。答案是正确的,因为我应该使用“运行文本合并”按钮运行文本合并。