The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"diff, patch и как его стряпать"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"diff, patch и как его стряпать"
Сообщение от миха emailИскать по авторуВ закладки on 21-Окт-04, 12:41  (MSK)
Итак, хоть я и не программист, судьба заставила меня исправлять чужой код. И получился у меня патч. Так, что не пинайте сильно, если глупость сейчас скажу.

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

Что я делал. Поскольку я изменил несколько файлов, патч у меня будет на весь каталог, поэтому я дал: 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 тоже что-то писать, чтобы не мешать другим патчам?

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

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "diff, patch и как его стряпать"
Сообщение от newser Искать по авторуВ закладки(ok) on 21-Окт-04, 13:12  (MSK)
>Итак, хоть я и не программист, судьба заставила меня исправлять чужой код.
>И получился у меня патч. Так, что не пинайте сильно, если
>глупость сейчас скажу.
>
>Откопитовал я соответствующую ветку к себе в домашний каталог, поправил что надо,
>проверил, компилируется все удачно и даже работает :)
>
>Что я делал. Поскольку я изменил несколько файлов, патч у меня будет на весь каталог, поэтому я дал: 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, менять ничего не надо, это ровным счетом ничего не даст.

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


  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "diff, patch и как его стряпать"
Сообщение от миха emailИскать по авторуВ закладки on 21-Окт-04, 14:55  (MSK)
Ок, спасибо!

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

cd path_to_new_src
patch < path_to_patchfile

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

  Рекомендовать в FAQ | Cообщить модератору | Наверх

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

man diff
man patch

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

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

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "diff, patch и как его стряпать"
Сообщение от миха emailИскать по авторуВ закладки on 21-Окт-04, 15:29  (MSK)
>>Ок, спасибо!
>>
>>А как нужно делать 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 узнал только, вот, сейчас от тебя :))

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру