Как патчить исходные файлы - PullRequest
4 голосов
/ 31 марта 2010

Я пытаюсь исправить dmenu с помощью файлов, представленных здесь: http://aur.archlinux.org/packages.php?ID=27334

Я не знаю, как это сделать, я прочитал, что я должен сделать patch file-to-patch the-patch, но в предоставленном патче задействовано более одного файла. Я попытался установить исправления вручную, но не смог, он не скомпилируется

1 Ответ

3 голосов
/ 31 марта 2010

На самом деле, это patch < the_patch или cat the_patch | patch.

Возможно, вам потребуется использовать параметр -p<n>, который используется для удаления сегментов путей, хранящихся в патче. Например, если патч был создан на одном уровне выше дерева исходных текстов (как если бы вы сравнивали одно дерево с другим), и вы хотите применить патч из дерева исходных текстов, вам потребуется -p.

Еще одна полезная опция - --dry-run. Это будет действовать так, как будто он применяет патч, но не будет изменять какие-либо файлы. Это полезно использовать для проверки правильности выбора опции -p и проверки патч будет применяться чисто.

Обычно я переключаюсь в корень дерева исходников и запускаю cat <file> | patch -p1 --dry-run. Если я получу ошибки о том, что файлы не найдены, я переключусь на -p0. Как только одна из этих работ сработает, я удаляю --dry-run и делаю это по-настоящему.

...