При исправлении, каково различие между аргументами-p0 и-p1?

Можно просто постоянно определить другое расположение или привязки клавиш. Здесь:

как присвоить другой модификатор клавише Alt для X11?

19
10.12.2011, 00:45
3 ответа

Наиболее распространенный способ создать патч состоит в том, чтобы работать diff команда или некоторое встроенное управление версиями diff- как команда. Иногда, Вы просто сравниваете два файла, и Вы работаете diff как это:

diff -u version_by_alice.txt version_by_bob.txt >alice_to_bob.patch

Затем Вы получаете патч, который содержит изменения для одного файла и не содержит имя файла вообще. При применении того патча необходимо указать, к какому файлу Вы хотите применить его:

patch <alice_to_bob.patch version2_by_alice.txt

Часто, Вы сравниваете две версии целого многофайлового проекта, содержавшегося в каталоге. Типичный вызов diff похож на это:

diff -ru old_version new_version >some.patch

Затем патч содержит имена файлов, данные в строках заголовка как diff -ru old_version/dir/file new_version/dir/file. Необходимо сказать patch разделять префикс (old_version или new_version) от имени файла. Это что -p1 средства: лишите один уровень каталога.

Иногда, строки заголовка в патче содержат имя файла непосредственно без подхода. Это распространено с системами управления версиями; например, cvs diff продолжает линии заголовка, которые похожи diff -r1.42 foo. Затем нет никакого префикса для разделения, таким образом, необходимо указать -p0.

В особом случае, когда нет никаких подкаталогов в деревьях, которые Вы сравниваете, нет -p опция необходима: patch отбросит всю часть каталога имен файлов. Но большую часть времени, Вам действительно нужно также -p0 или -p1В зависимости от того, как был произведен патч.

23
27.01.2020, 19:44

От человека:

-pnum или --strip=num Разделите самый маленький префикс, содержащий наклонные черты продвижения цифры с каждого имени файла, найденного в файле исправления. Последовательность одной или нескольких смежных наклонных черт считается как единственная наклонная черта. Это управляет, как имена файлов, найденные в файле исправления, рассматривают, в случае, если Вы сохраняете свои файлы в другом каталоге, чем человек, который отослал патч. Например, предположение имени файла в файле исправления было:

 /u/howard/src/blurfl/blurfl.c

установка -p0 дает все неизмененное имя файла, -p1 дает

 u/howard/src/blurfl/blurfl.c

без ведущей наклонной черты, -p4 дает

 blurfl/blurfl.c
16
27.01.2020, 19:44

Разница в том, что число после -p указывает количество компонентов пути, которые будут удалены.

Допустим, у нас есть путь / Барак / Обама . Выполнение патча с аргументом -p0 будет обрабатывать путь как есть :

/Barack/Obama

Но мы можем обрезать путь во время исправления:

-p1 будет удалите корневую косую черту (обратите внимание, что теперь это будет просто Барак, без косой черты слева от него):

Barack/Obama

-p2 удалит Барака (и смежную правую косую черту):

 Obama

Чтобы Подробно объясните «почему» этого патча поведения, прочтите эту ветку .

4
27.01.2020, 19:44

Теги

Похожие вопросы