версія 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)