问题标签 [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.

0 投票
1 回答
668 浏览

linux - 如何使用 p4merge 强制文本合并?

我正在使用 Perforce 及其默认的合并工具 p4merge。在集成时,vcproj我希望解决几个冲突。

但似乎 p4merge 试图以某种方式解释文件的内容,只说“图像文件无法合并”然后退出。这样我就无法解决冲突,甚至无法获得差异。

这要么是一个非常新的未报告的错误,要么是一个非常简单的解决方法,因为谷歌搜索完全没有显示任何与它相关的内容(除了 Twitter 帖子)。

有人知道解决方法吗?

(我使用的是 Linux 版本的 Perforce。)

更新:

Perforce 文件类型是“文本”。所以它们不是二进制的。

0 投票
1 回答
3387 浏览

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设置

0 投票
1 回答
308 浏览

perforce - 如何查看某人在他/她的更改列表中对特定模块所做的更改

作为重构的一部分,一位同事提交了一个巨大的更改列表(>1000 个文件),并且 perforce 只是将其显示为“此更改列表中有 1000 个文件”。

我想看看他通过 Perforce p4merge 或 IntelliJ 的 perforce 集成/差异工具对文件夹/模块中的所有文件所做的更改。

0 投票
2 回答
1118 浏览

settings - P4Merge 忘记了我的比较方法偏好。如何设置默认值?

运行 P4Merge 时,比较方法最初始终设置为“识别行尾和空白差异”(也就是所有更改)。我想使用“忽略行尾和空格长度差异”,但每次工具运行时我都必须手动重新设置它。

我更改了设置:

  • 使用工具栏按钮
  • 在首选项对话框中
  • 在文件菜单上

它永远不会粘住。事实上,每次我回到菜单时,首选项对话框条目都会重置,甚至没有关闭程序。在使用“文件”菜单中的“退出”命令之前、关闭窗口之前以及保存合并之前,我已经更改了设置。

过去我能够保存我的设置并记住它,不幸的是我不记得所涉及的软件版本。我将 P4Merge 作为独立设备使用,并且没有安装 Perforce 套件的其余部分。

我可以更新任何其他可能证明相关的支持信息。

[编辑:这是首选项对话框中的单选按钮设置,每次查看时都会忽略更改和重置,而不是文件子菜单。]

0 投票
3 回答
7701 浏览

git - p4merge 和 Git 1.8.3

如何配置gitp4merge我的mergetool

接下来是我现在的情况:

0 投票
0 回答
850 浏览

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(本地修改)

存储更改。拉。应用存储。恭喜!您现在有一个需要解决的冲突。

0 投票
3 回答
944 浏览

git - 如何配置我的合并工具不显示冲突标记?

我将 git 配置为使用SmartSynchronize作为合并工具,但是当我运行时,git mergetool我仍然看到冲突标记,如下所示:

在此处输入图像描述 (大版本)

我正在使用P4Merge并看到它可以处理这些冲突标记,但我真的很喜欢在屏幕中间查看合并文件,就像在SmartSynchronize中一样;所以我做错了什么还是这个工具无法处理冲突标记?

我的.gitconfig

(另外,如果你知道一种让P4Merge像这样在中间显示合并文件的方法,我很想知道)

0 投票
1 回答
349 浏览

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

0 投票
1 回答
1583 浏览

git - 为什么我的 Git 合并工具配置不起作用?

我想设置trustExitCode为 false 和keepTemporariestrue 但它不起作用......我不明白为什么。这是我的~/.gitconfig

当我使用 p4merge、myp4merge 或 mymeld 保存一些修改时,Git 不会询问我预期的“合并是否成功?[y/n]”并且不会留下 file.BASE、file.REMOTE、...

我找不到错误...

0 投票
1 回答
187 浏览

mercurial - 使用 SemanticMerge 配置文本合并以在 Mercurial 中使用 P4Merge

我已按照http://www.semanticmerge.com/sm-guides/main.shtml#HowtoconfigurewithMercurial上的说明进行操作,但它们是为 kdiff3 配置的,我想使用 p4merge 进行文本合并。我当前的 mercurial.ini 看起来像这样:

使用我当前的配置,当以 .cs 结尾的文件发生冲突时 SemanticMerge 按预期运行,但是当我在 SemanticMerge 中使用 merge 命令运行文本合并时,我收到一条错误警报,指出:

是不兼容还是我上面的“semantic.args”部分配置不正确?

更新 当我单击特定更改的合并按钮时出现错误。请参阅下面的屏幕截图。答案是正确的,因为我应该使用“运行文本合并”按钮运行文本合并。

合并按钮