我想用git使用p4merge,但我得到:
启动p4merge时出错:"path/myFile"是(或指向)无效文件(这列出了文件的BASE,LOCAL,REMOTE和标准版本).
Git告诉我有关冲突然后它询问我是否要启动mergetool配置(p4merge)然后我得到上面的错误.
附加说明:它发生在任何文件!
有关这是什么以及如何解决它的任何线索?
我试图在git中使用p4merge作为我的差异/合并工具.
但是我遇到了严重的问题.
我可以使用p4merge作为difftool,git difftool <sha1> <sha1>
效果很好.我也可以将它用作合并工具.但是当我试图让它做一个目录差异时git difftool -d <sha1> <sha1>
会弹出一个错误对话框,上面写着:
错误:'/ var/folder/6s/6sCbckgPGH42yLSh2eXveE +++TI/-Tmp-/git-difftool.9rgKV/left'是(或指向)无效文件.'/var/folders/6s/6sCbckgPGH42yLSh2eXveE+++TI/-Tmp-/git-difftool.9rgKV/right'是(或指向)无效文件.
使用'p4merge -h'获取更多帮助.
这是因为p4merge不支持目录差异吗?有没有什么办法解决这一问题?
顺便说一句,这是我的.gitconfig
设置
; p4merge settings
; Can't do directory diff?
[difftool "p4merge"]
cmd = /Applications/p4merge.app/Contents/MacOS/p4merge \"$LOCAL\" \"$REMOTE\"
trustExitCode = false
[mergetool "p4merge"]
cmd = /Applications/p4merge.app/Contents/MacOS/p4merge \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"
trustExitCode = false
[difftool]
prompt = false
[diff]
; tool = kdiff3
tool = p4merge
[merge]
; tool = kdiff3
tool = p4merge
Run Code Online (Sandbox Code Playgroud) 很长一段时间以来,我一直被SourceTree缺乏可用的冲突解决方案所困扰.
应该有一个将p4Merge或其他差异/合并工具集成到SourceTree中的过程.目前,p4Merge是我的首选工具; 现在我只需要弄清楚如何
到目前为止,我唯一成功的做法是让P4Merge在SourceTree中显示差异.因此,Actions/External Diff菜单项有效,但Actions/Resolve Conflicts/Launch External Merge Tool菜单项不会(它显示为灰色).
我选择P4Merge两者的diff工具,并在合并工具工具/选项/ DIFF在SourceTree标签.我不能在两个命令行框中放任何东西(即使我知道要放在那里),因为它们也是灰色的.
我该如何工作?
SourceTree版本为1.9.5.0,应该是本文撰写时的最新版本.P4Merge似乎没有帮助/关于对话框,但最近安装了(最近3个月内).
我已经为p4merge设置了我的类路径,设置了文件.gitconfig,但是当p4merge工具假设打开那两个冲突的文件时,我得到了这个错误.谁知道解决方案?
添加到类路径:"C:\ Program Files\Perforce\p4merge.exe"添加到.gitconfig文件:
[merge]
tool = p4merge
[mergetool "p4merge"]
cmd = p4merge.exe \\\"$BASE\\\" \\\"$LOCAL\\\" \\\"$REMOTE\\\" \\\"$MERGED\\\"
Run Code Online (Sandbox Code Playgroud)
错误信息:
Normal merge conflict for 'protected/views/layouts/main.php':
{local}: modified file
{remote}: modified file
Hit return to start merge resolution tool (p4merge):
C:\Program Files (x86)\Git/libexec/git-core/mergetools/p4merge: line 8: p4merge:
command not found
protected/views/layouts/main.php seems unchanged.
Was the merge successful? [y/n] n
merge of protected/views/layouts/main.php failed
Run Code Online (Sandbox Code Playgroud) 我想在比较本地和未更改时使用P4merge作为SVN中文件的外部差异工具.我应该在编码的时候花了好几个小时.
在OSX平台上我需要做什么?
我如何配置git
以p4merge
用作我的mergetool
?
接下来是我现在的情况:
$ git --version
git version 1.8.3.msysgit.0
$ git mergetool
This message is displayed because 'merge.tool' is not configured.
See 'git mergetool --tool-help' or 'git help config' for more details.
'git mergetool' will now attempt to use one of the following tools:
tortoisemerge emerge vimdiff
No known merge tool is available.
Run Code Online (Sandbox Code Playgroud) 从p4v调用p4merge时,它会将库路径显示为文件上的标签.我想使用p4merge作为SVN的差异查看器,为此我有这个批处理文件:
@echo off
pause
p4merge %6 %7
Run Code Online (Sandbox Code Playgroud)
这样可行,但左侧和右侧面板上显示的标签是SVN为p4merge提供的临时文件的名称.SVN传递给批处理文件的参数%3和%5分别包含左侧和右侧面板的相应标签.我确信我记得有命令行参数来设置你想要在每个面板上显示的标签,但它们没有列出p4merge -h
.这些是什么?
我用windows 7
.我想p4merge
用作Git diff/merge工具.我按照这篇文章和这个来设置和配置p4merge
:
git config --global merge.tool p4merge
git config --global mergetool.p4merge.path "C:/Program Files/Perforce/p4merge.exe"
git config --global diff.tool p4merge
git config --global difftool.p4merge.path "C:/Program Files/Perforce/p4merge.exe"
Run Code Online (Sandbox Code Playgroud)
这些行来自git config
:
merge.tool=p4merge
mergetool.p4merge.path=C:/Program Files/Perforce/p4merge.exe
diff.tool=p4merge
difftool.p4merge.path=C:/Program Files/Perforce/p4merge.exe
mergetool.keeptemporaries=false
mergetool.prompt=false
Run Code Online (Sandbox Code Playgroud)
现在git mergetool
命令工作正常.但是当我使用git difftool
命令时git bash
,我希望p4merge
但是我看到了diff的内部实现git bash
.
我试过Smooth Git + P4merge,但它对我不起作用,我也尝试按照外部合并和差异工具中的描述进行操作,但我不明白.
注意:
当冲突类型为removed file conflict
,git difftool
命令打开p4merge …
我刚决定并安装了p4merge作为git的可视化合并工具.为了做到这一点,我使用此命令配置了我的git
git config --global merge.tool p4merge
git config --global mergetool.p4merge.cmd 'p4merge $BASE $LOCAL $REMOTE $MERGED'
Run Code Online (Sandbox Code Playgroud)
然后我测试了它们并运行git difftool
命令,它运行得很好.但是当我跑步时git difftool --cached
,p4merge显示错误信息:
nul is (or points to) an invalid file
Run Code Online (Sandbox Code Playgroud)
我也尝试按照此博客中的说明操作,但我无法解决问题.
顺便说一句,我在Windows 7上使用git和p4merge.有谁知道这个问题的解决方案?