выполнить diff для мерзавца - PullRequest
2 голосов
/ 28 ноября 2011

При выполнении Perfor Diff, когда я пытаюсь пропатчить это с помощью git am, появляется сообщение «Ошибка определения формата исправления».

Как мне получить изменения из Perforce и применить их к git branch?

Это первые несколько строк различий

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

Ответы [ 2 ]

5 голосов
/ 28 ноября 2011

Убедитесь, что вы создаете разность с p4 diff -du, чтобы получить унифицированный формат diff , который намного лучше работает с такими инструментами, как patch, иявляется (я считаю) единственным форматом, который понимает Git.

Вам также может понадобиться отредактировать патч, чтобы исключить синтаксис Perforce;как видите, имя файла выглядит как //depot/a.c#162, что patch и git apply могут интерпретировать как фактическое имя файла;a.c#162.Попробуйте удалить часть #162, если она появляется в вашем патче.

И в зависимости от того, где именно вы применяете патч, вам может потребоваться передать -p1 в patch или git apply, чтобы удалитьот ведущего / или -p2, чтобы удалить весь начальный каталог.

0 голосов
/ 28 ноября 2011

Использовать git apply или, если не удалось, использовать patch(1) напрямую, затем зафиксировать результаты.

...