Очень часто размер правок в пределах одной строки очень незначительный и если строка достаточно длинна - можно при выполнении git diff пропустить ошибку, в этом случае я рекомендую использовать специальный флаг для git diff --color-words, который приедет к тому, что git подсветит цветом конкретные изменения в пределах одной строки вместо отображения оригинальной строки и новой :)
Showing posts with label Git. Show all posts
Showing posts with label Git. Show all posts
Monday, 26 December 2016
Wednesday, 4 May 2011
Thursday, 18 November 2010
Сборка ядра для Ubuntu 10.10 из git репозитория Ubuntu.
Вот официальный общий мануал: https://help.ubuntu.com/community/Kernel/Compile
А вот конкретно под 10.10:
http://blog.avirtualhome.com/2010/11/06/how-to-compile-a-ubuntu-10-10-maverick-kernel/
А вот мануал по работе с git репозиториями ядра от Ubuntu: https://wiki.ubuntu.com/Kernel/Dev/KernelGitGuide?action=show&redirect=KernelTeam/KernelGitGuide
В ближайшее время нарисую свой мануал :)
А вот конкретно под 10.10:
http://blog.avirtualhome.com/2010/11/06/how-to-compile-a-ubuntu-10-10-maverick-kernel/
А вот мануал по работе с git репозиториями ядра от Ubuntu: https://wiki.ubuntu.com/Kernel/Dev/KernelGitGuide?action=show&redirect=KernelTeam/KernelGitGuide
В ближайшее время нарисую свой мануал :)
Friday, 23 April 2010
Как делать патчи для ядра linux посредством git?
Я уже много писал о том, как стянуть ядро с kernel.org, распаковать его и потом пропатчить каким-нить интересным патчем. Да, когда патч чужой все хорошо и понятно - пускаем patch -p1 < getallworldmoney.diff и получаем измененное дерево, которое осталось лишь собрать.
Но в какой ад превращается разработка, когда сам пишешь патч, который затрагивает добрый десяток файлов! Ведь приходится каждый раз вызывать рекурсивное сравнение папок diff ом, чтобы вспомнить, в каком же файле добавил строчку! Разумеется, разработчики ядра умнее :) Они юзают git для этой цели, так что мы пойдем те же путем.
Итак, если мы на РедХатах:
Если на Дебиянах:
Получение дерева исходных кодов ядра
Так как патчить мы собрались ядро Линукса, то нам бы его для начала раздобыть. Поэтому идем на офсайт ядра, устремляем свой взор в правый верхний угол, сейчас там написано "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 нас интересует более всего. щелкаем по ней. После этого мы попадаем на страницу, где в верхней части расположился вот такой блок:
Вот как раз за ним мы охотились! Нам из этого списка нужна строка с git://.
Создаем папку, где будем девелопить ядро:
Теперь идем готовить себе кофе, так как процесс весьма длительный.
Получение обновлений
В случае, если ветка ядра обновится, необходимо иметь возможность скачать все обновления, для этого используем следующие команды (если у нас самое новое ядо этой ветки, то в ответ мы получим "Already up-to-date."):
Добавление / удаление файлов
Для добавления файла в дерево используйте команду:
Откат изменений
Откатить все локальные изменения (ну это на случай, если Вы расстроитесь тому, что Галуа из Вас не получился и решите все переделать):
Просмотр лога изменений и информации о коммитах
Просмотр списка измененных / добавленных файлов
Просмотр изменений во всех файлах / в заданном файле
Изменения во всем репозитории:
Изменения в одном файле:
Просмотреть различия между ревизиями
Коммит изменений (в локальный репозиторий!)
После этого Ваш коммит отобразится в git log и на его основе можно будет сделать diff и из него как раз сделать пачт :)
Отмена изменений
Ну вот и все :) После каждого уверенного шага в написании патча для ядра делаете commit, а потом посредством git diff между исходным и конечными этапами получаете полный патч :)
По материалам: http://linux.yyz.us/git-howto.html
Установка необходимого ПО
Итак, если мы на РедХатах:
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
Thursday, 28 January 2010
Как ориентироваться на http://git.kernel.org/?
На веб-интерфейсе к GIT репозиторию ядра http://git.kernel.org/ есть туева куча всяких ссылок. Какие же нам нужны? Во-первых, для всех уже выпущенных стабильных веток есть ссылки:
Чуть более сложно с поиском "текущей", то есть разрабатываемой в данный момент версии ядра. А она вот тут, как я понимаю, это ветка самого Линуса Торвальдса:
Ну вот, теперь можете серфить по просторам патчей ядра :)
...
linux/kernel/git/stable/linux-2.6.30.y.git 2.6.30-stable tree
linux/kernel/git/stable/linux-2.6.31.y.git 2.6.31-stable tree
linux/kernel/git/stable/linux-2.6.32.y.git 2.6.32-stable tree
Чуть более сложно с поиском "текущей", то есть разрабатываемой в данный момент версии ядра. А она вот тут, как я понимаю, это ветка самого Линуса Торвальдса:
linux/kernel/git/torvalds/linux-2.6.git Linus' kernel tree
Ну вот, теперь можете серфить по просторам патчей ядра :)
Sunday, 8 November 2009
Начинаем использовать Git
Последнее время многие проекты переходят на Git и теперь всем простым смертным надо знать хотя бы как склонировать удаленный репозиторий (аналог svn co). Я кратко расскажу, как это сделать.
Ставим сам Git:
А теперь стягиваем содержимое репозитория:
Вот так все легко и просто :)
Ставим сам Git:
yum install -y git
А теперь стягиваем содержимое репозитория:
git clone git://github.com/facebook/tornado.git
Вот так все легко и просто :)
Subscribe to:
Posts
(
Atom
)
