性能差异到git

性能差异到git,git,diff,perforce,Git,Diff,Perforce,当我尝试使用git-am修补此问题时,它会显示“修补格式检测失败” 如何从perforce获取更改并将其应用到git分支 这是diff的前几行 ==== //depot/a.c#162 - /asdf/a.c ==== 4326a4327,4642 > /* > *---------------------------------------------------------------------------- > * > * -- 直接使用,或使用失败,然

当我尝试使用
git-am
修补此问题时,它会显示“修补格式检测失败”

如何从perforce获取更改并将其应用到git分支

这是diff的前几行

==== //depot/a.c#162 - /asdf/a.c ====
4326a4327,4642
> /*
>  *----------------------------------------------------------------------------
>  *
>  *  --

直接使用,或使用失败,然后提交结果。

确保使用生成差异以获得,这在使用诸如和之类的工具时效果更好,并且(我相信)是Git理解的唯一格式

您可能还需要编辑修补程序以删除Performce语法;如您所见,文件名显示为
//depot/a.c#162
,而
patch
git apply
可能解释为实际文件名<代码>空调162。如果补丁中出现
#162
部分,请尝试删除该部分


根据应用补丁的具体位置,您可能需要将
-p1
传递到
补丁
git apply
,以剥离前导的
/
,或
-p2
以剥离整个前导目录。

为什么不,您会遇到什么错误?你的Performce diff工具是什么?为什么它没有生成正确的修补程序格式?我做了p4 diff>文件和修补程序-p0文件的前10行左右。您是否尝试了
补丁-p1
?您似乎有不想使用的额外文件路径信息。默认情况下,perforce和git的diff输出不兼容。这将不起作用检查
p4 diff
是否有创建统一diff的选项。
-u
可能值得一试。您知道如何让使用
descripe
生成的diff被
patch
识别吗?您好@Brian,是否有任何命令可以快速删除所有
\N
。谢谢@dien没有Perforce在我面前检查确切的格式,但是类似于
sed-Ee的|(//.*)#[0-9]+|\1 |的输出。patch
应该可以做到这一点。这是相当不精确的,所以在尝试应用补丁之前,请检查它是否产生了合理的结果。