Установка необходимого ПО
Итак, если мы на РедХатах:
yum install git -y
Если на Дебиянах:
apt-get -y install git-core
Получение дерева исходных кодов ядра
Так как патчить мы собрались ядро Линукса, то нам бы его для начала раздобыть. Поэтому идем на офсайт ядра, устремляем свой взор в правый верхний угол, сейчас там написано "Latest Stable Kernel: 2.6.33.2", что говорит нам о том, что данная версия ядра является актуальной и стабильной (да, мы пока со стабильными только играемся).
В средней части страницы присутствует строка с рядом ссылок: "stable: 2.6.33.2 2010-04-01 [Full Source] [Patch] [View Patch] [View Inc.] [Gitweb] [Changelog]", вот как раз ссылка на Gitweb нас интересует более всего. щелкаем по ней. После этого мы попадаем на страницу, где в верхней части расположился вот такой блок:
URL git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.33.y.git
http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.33.y.git
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.33.y.git
Вот как раз за ним мы охотились! Нам из этого списка нужна строка с git://.
Создаем папку, где будем девелопить ядро:
cd ~
mkdir kernel_dev
cd kernel_dev
git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.33.y.git
Теперь идем готовить себе кофе, так как процесс весьма длительный.
Основы работы с git
Получение обновлений
В случае, если ветка ядра обновится, необходимо иметь возможность скачать все обновления, для этого используем следующие команды (если у нас самое новое ядо этой ветки, то в ответ мы получим "Already up-to-date."):
cd linux-2.6.33.y
git pull
Добавление / удаление файлов
Для добавления файла в дерево используйте команду:
git addДля удаления:
git rm
Откат изменений
Откатить все локальные изменения (ну это на случай, если Вы расстроитесь тому, что Галуа из Вас не получился и решите все переделать):
git checkout -f
Просмотр лога изменений и информации о коммитах
git log
Просмотр списка измененных / добавленных файлов
git status
Просмотр изменений во всех файлах / в заданном файле
Изменения во всем репозитории:
git diff
Изменения в одном файле:
git diff fs/proc/stat.c
Просмотреть различия между ревизиями
git diff 96d170a11d7cc998a5ddedc56e98c783f1bee1db..19f00f070c17584b5acaf186baf4d12a7d2ed125
Коммит изменений (в локальный репозиторий!)
git commit -a
После этого Ваш коммит отобразится в git log и на его основе можно будет сделать diff и из него как раз сделать пачт :)
Отмена изменений
git-revert 96d170a11d7cc998a5ddedc56e98c783f1bee1db
Ну вот и все :) После каждого уверенного шага в написании патча для ядра делаете commit, а потом посредством git diff между исходным и конечными этапами получаете полный патч :)
По материалам: http://linux.yyz.us/git-howto.html
No comments:
Post a Comment
Note: only a member of this blog may post a comment.