URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 49623
[ Назад ]

Исходное сообщение
"diff, patch и как его стряпать"

Отправлено миха , 21-Окт-04 12:41 
Итак, хоть я и не программист, судьба заставила меня исправлять чужой код. И получился у меня патч. Так, что не пинайте сильно, если глупость сейчас скажу.

Откопитовал я соответствующую ветку к себе в домашний каталог, поправил что надо, проверил, компилируется все удачно и даже работает :)

Что я делал. Поскольку я изменил несколько файлов, патч у меня будет на весь каталог, поэтому я дал: diff -c old_prog_dir new_prog_dir > my.patch. Полученный патч у меня прекрасно накладывается на непатченные сырцы.

Но есть вопросы:
1. В патче вверху у меня написалось следующее:
diff -c orig/main.c new/main.c
*** orig/main.c  Wed Apr 30 21:40:28 2003
--- new/main.c   Thu Oct 21 12:20:45 2004

Когда я буду накладываь этот патч на другой машине, у меня не будет ни каталога orig ни new. Не помешает ли это успеху операции?

2. Что значат всякие такие, например, $FreeBSD: src/bin/cat/cat.c,v 1.29 2003/04/30 17:40:28 obrien Exp $ вещи в началах файлов? И не надо ли мне в этот id тоже что-то писать, чтобы не мешать другим патчам?

Спасибо заранее


Содержание

Сообщения в этом обсуждении
"diff, patch и как его стряпать"
Отправлено newser , 21-Окт-04 13:12 
>Итак, хоть я и не программист, судьба заставила меня исправлять чужой код.
>И получился у меня патч. Так, что не пинайте сильно, если
>глупость сейчас скажу.
>
>Откопитовал я соответствующую ветку к себе в домашний каталог, поправил что надо,
>проверил, компилируется все удачно и даже работает :)
>
>Что я делал. Поскольку я изменил несколько файлов, патч у меня будет на весь каталог, поэтому я дал: diff -c old_prog_dir new_prog_dir > my.patch. Полученный патч у меня прекрасно накладывается на непатченные сырцы.
>
>Но есть вопросы:
>1. В патче вверху у меня написалось следующее:
>diff -c orig/main.c new/main.c
>*** orig/main.c  Wed Apr 30 21:40:28 2003
>--- new/main.c   Thu Oct 21 12:20:45 2004
>
>Когда я буду накладываь этот патч на другой машине, у меня не
>будет ни каталога orig ни new. Не помешает ли это успеху
>операции?

Не помешает, если использовать правильные ключи к patch, например:

cd path_to_new_src
patch -p1 < path_to_patchfile

>
>2. Что значат всякие такие, например, $FreeBSD: src/bin/cat/cat.c,v 1.29 2003/04/30 17:40:28 obrien
>Exp $ вещи в началах файлов? И не надо ли мне
>в этот id тоже что-то писать, чтобы не мешать другим патчам?

Это теги, используемые системой контроля версий CVS, менять ничего не надо, это ровным счетом ничего не даст.

>
>
>Спасибо заранее



"diff, patch и как его стряпать"
Отправлено миха , 21-Окт-04 14:55 
Ок, спасибо!

А как нужно делать diff, чтобы патч накладывать одним движением:

cd path_to_new_src
patch < path_to_patchfile

без указания -p1. Чтобы максимально упростить операцию, установки.


"diff, patch и как его стряпать"
Отправлено lavr , 21-Окт-04 15:15 
>Ок, спасибо!
>
>А как нужно делать diff, чтобы патч накладывать одним движением:
>
>cd path_to_new_src
>patch < path_to_patchfile
>
>без указания -p1. Чтобы максимально упростить операцию, установки.

man diff
man patch

чаще всего испольуют -c или сейчас еще чаще используют -u унифицированный
формат

для остального смотри ключи и ОТКУДА будет применяться утилита patch -
текущая или какая директория, отсюда и ключи и full или related path
который хочешь использовать в diff'е.


"diff, patch и как его стряпать"
Отправлено миха , 21-Окт-04 15:29 
>>Ок, спасибо!
>>
>>А как нужно делать diff, чтобы патч накладывать одним движением:
>>
>>cd path_to_new_src
>>patch < path_to_patchfile
>>
>>без указания -p1. Чтобы максимально упростить операцию, установки.
>
>man diff
>man patch
>
>чаще всего испольуют -c или сейчас еще чаще используют -u унифицированный
>формат
>
>для остального смотри ключи и ОТКУДА будет применяться утилита patch -
>текущая или какая директория, отсюда и ключи и full или related path
>
>который хочешь использовать в diff'е.

man diff и patch я уже читал, только тупая башка плохо понял :)
А про модность -u узнал только, вот, сейчас от тебя :))