версія 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: діліться патчами з народом ;)