Как применить файл diff для папки, используя патч, к другой папке при наличии полного пути? - PullRequest
3 голосов
/ 15 июля 2011

Я загрузил файл diff, чтобы изменить количество файлов в версионном каталоге проекта (Xerces 2.8).Файл diff содержит полный путь к каждому «левому» файлу (тот, который представлен знаками -).«Правильный» файл (знаки +) содержит относительный путь.Например:

--- /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_textproc_xercesc/work/xerces-c-src_2_8_0/src/xercesc/util/Platforms/MacOS/MacCarbonFile.cpp  2007-08-28 20:44:07.000000000 +0200
+++ src/xercesc/util/Platforms/MacOS/MacCarbonFile.cpp  2009-10-28 19:37:22.000000000 +0100

Моя локальная копия каталога проекта, которую я хотел бы обновить с помощью файла diff, конечно, находится на другом полном пути.

Я не могу понятьгде разместить файл diff (или, скорее, в каком каталоге я должен располагаться, когда я запускаю patch) и какую команду запустить.

Поскольку второй (+) файл является относительным путем, я подумалчто я расположился в правильном месте в моей локальной файловой системе, чтобы относительный путь был правильным - и затем сработала бы команда

patch -i patchfile

....Он не (вместо этого patch предоставляет мне подсказку для каждого файла, потому что он не может найти его).

Какую команду следует выполнить, чтобы объединить файл diff с помощью patch?

1 Ответ

6 голосов
/ 15 июля 2011

Pass -p, за которым следует соответствующее количество префиксов пути для удаления.

...