Патчення з допомогою git, cogito та quilt

Матеріал з docs.linux.org.ua — збірника документації з Unix/Linux українською мовою.

Перейти до: навігація, пошук

версія 1 (мінімум)

За мотивами:

http://openmosix.snarc.org/wakka.php?wiki=WorkingTogether

Зміст

Вступ

Використання git, cogito та quilt для роботи з сирцями та їх патчами


Встановлення програм

Встановлюємо git cogito diffstat quilt для Gentoo достатньо виконати:

emerge cogito quilt

і це встановить пакети з їх необхідними залежностями.


Робота з git репозитарієм

Для визначеності нехай робочий каталог називається work а репозитарій знаходиться в gitsource Для клонування/створення git репозитарію достатньо виконати:

$ cd work
$ git clone git://.... gitsource

ця команда створить директорію gitsource з зміненими файлами ядра. Для поновлення репозитарію достатньо зайти в створену директорію та виконати:

$ cd work/gitsources
$ git-pull


Створення патчу з git репозитарію

Тепер потрібні самі сирці ядра без даного патчу з git репозитарію, але відповідні версії патчу. Нехаї символічне посилання linux в дерикторії work вказує на "чисті" сирці ядра. Створемо в work директорію patches з файлом series в ній:

$ cd work
$ mkdir patches
$ touch patches/series

для створення патчу виконуємо з директорії сирців патчу:

$ cd work/gitsource
$ scripts/unsparse patch ../linux/

Нагадую символічне посилання work/linux вказує на "чисті" сирці (наприклад розпаковане ванільне ядро з kerel.org)

$ mv ./sources-git.patch ../patches


Патчення сирців ядра з допомогою quilt

Щоб накласти необхідний патч додаємо його назву в файл work/patches/series

$ cd work
$ echo "sources-git.patch" >> patches/series

Переходимо в директорію сирців та створюємо в ній символічне посилання patches на каталог work/patches. Наприклад в :

$ cd work/linux
$ ln -s ../work/patches patches

Тепер для накладання всіх патчів прописаних у файлі patches/series достатньо виконати:

$ quilt push -av

По аналогії можна накладати одразу декілька патчів.


Робота над патчами з допомогою команди quilt

Для відміни накладеного патчу використовують опцію pop

$ quilt pop [номер чи і'мя]

Щоб створити новий патч з допомогою quilt виконуєм:

$ quilt new mypatchname.patch

додаємо до нього файли:

$ quilt add file1
...
$ quilt add fileN

модифікуємо необхідні файли та виконуємо команду поновлення патчів..

$ quilt refresh

Коли котрийсь патч з списку видає помилку, можна накласти його силоміць командою:

$ quilt push -f --leave-rejects 1

Далі підправити необхідні файли керуючись *.rej і для обновлення патчу знову виконати:

$ quilt refresh

В кінці накладаємо всі/решту патчів вже знайомою командою:

$ quilt push -av

PS: діліться патчами з народом ;)

Література

git(7), quilt(1), diff(1), patch(1)

Особисті інструменти