Как делать патчи к сайту

Материал из Kalina_LUG_Wiki
Перейти к: навигация, поиск

В разделе про доработку сайта тов. az провозгласил лозунг "Шлите патчи!" Осталось узнать как их делать и куда слать.

Инструкция

1. Устанавливаем GIT (делается один раз за всю историю)

Если твой дистрибутив -- *buntu, ставь пакет git-core.

sudo apt-get install git-core


2. Представляемся системе (делается один раз за всю историю)

git config --global user.email "you@example.com"
git config --global user.name "Your Name"

Имя, фамилию и e-mail нужно вписать свои.


3. Клонируем репозиторий с сайтом:

git clone git://gitorious.org/kalina-site/mainline.git

Если репозиторий уже был склонирован, его можно просто обновить:

git pull


4. Вносим необходимые изменения. Как вариант, делать это можно в отдельной ветке (бранче)

 git checkout -b mywork
 vim file


5. Если добавлялись новые файлы, командуем

git add .

(точка в конце!)


6. Сохраняем изменения

git commit

Откроется текстовый редактор (vim, а может быть nano). Пишем описание изменений на английском языке. Это ОЧЕНЬ ВАЖНЫЙ момент. С плохим комментарием патч будет отклонён!

В первой строке пишется краткое описание изменения. Строка не длиннее 80 символов. Затем следует пустая строка. Далее пишется расширенное описание изменений (если есть необходимость). Если изменения в коде не авторские, а откуда-то взяты, нужно указать источник. Очень желательно дать URL скриншота, чтобы посмотреть на реализуемый функционал.

Пример комментария к коммиту:

   Adding shoulder boards as the meter of user activity at e107 forum.
NOTE: There are 10 levels with stars and 19 levels with shoulder boards! Don't forget to apply neccessary changes to /e107_plugins/forum/forum_admin.php?rank
Source: http://e107.org.ru/request.php?220
Files renamed from "$f" to "pogon-$f"
Preview: http://e107.org.ru/e107_files/downloadimages/screenshot.jpg

В приведённом выше примере отдельно описан факт, что файлы в проекте были переименованы по сравнению с источником в Интернете.

Сохраняем комментарий, выходим из редактора.


7. Смотрим лог:

git log

Вывод примерно такой:

commit a5840e70c6c2650e35f2d733e6dddb9228db7776
Author: Artem Kulchenko <ua2fga@gmail.com>
Date:   Mon Sep 14 10:51:12 2009 +0300
Adding shoulder boards as the meter of user activity at e107 forum.
NOTE: There are 10 levels with stars and 19 levels with shoulder boards! Don't forget to apply neccessary changes to /e107_plugins/forum/forum_admin.php?rank
Source: http://e107.org.ru/request.php?220
Files renamed from "$f" to "pogon-$f"
Preview: http://e107.org.ru/e107_files/downloadimages/screenshot.jpg
commit c9f3387c7fd0b72a6731a1eb397dc9079620db84 Author: Artem Kulchenko <ua2fga@gmail.com> Date: Sun Sep 13 22:43:53 2009 +0300
improve Forum's Quick Reply for theme dAb_08
http://e107.org.ru/e107_plugins/content/content.php?content.58
preview: http://www.softbiznes.ru/uploads/posts/2009-04/1239597718_hack_forum.gif
commit 53157bdecd2a5d073bfefdb0d9baf00641f3fce0 Author: Artem Zolochevskiy <artem.zolochevskiy@gmail.com>


8. Делаем патч

git format-patch origin


9. Полученный patch-файл отправляем на e-mail нашему патчмейстеру (тов. az).

Шлите патчи!

Вопросы и ответы

Q: Как исправить комментарий?
A: git commit --amend

Q: Как отменить коммит?
A: git reset --hard HEAD^
Удаляет последний коммит без следов. Пользоваться этой командой ОЧЕНЬ ОСТОРОЖНО!