[Wine-devel] Организация работы с git
Konstantin Kondratyuk
=?iso-8859-1?q?kondratyuk_=CE=C1_etersoft=2Eru?=
Ср Апр 30 09:11:49 MSD 2008
Задачи, которые мы ставим:
1. Создание общего стабильного репозитория, на основе которого идёт сборка.
Все достойные релиза патчи попадают сюда.
2. Репозиторий для каждого разработчика, с возможностью его публикации. Таким
образом, каждый может найти и взять себе патч, который нужен, но не входит
(пока) в релизный репозиторий.
Решение первой задачи достигается созданием _отдельного_ git-репозитория,
предлагаю его сделать отличным от git.etersoft.ru/people/lav, чтобы не
вносить путаницы. Кроме того, не обязательно все патчи, которые будут
закоммичены в git.etersoft.ru/people/lav, обязательно должны быть в релизе.
Parent-репозиторий для нашего центрального репозитория - непосредственно git
winehq. Синхронизация с ним должна быть хотя бы 2 раза в день - предлагаю в
17.00-18.00 (после основного времени коммитов Джуллиарда) и ночью.
Все личные репозитории синхронизируются с нашим центральным репозиторием.
Разделение по веткам - можно оставить pure, master, eterhack. При этом master
должен содержать только те патчи, которые будут отправляться в wine-patches.
Коммит в этот бранч должен быть оформлен как у Джуллиарда (dll: Changelog),
чтобы не создавать лишних проблем при отправке патчей.
В eterhack - оформление свободное, главное понятно, что делаем и/или какую
багу правим. Для новых хаков хорошо бы всегда делать приписку вроде "(fix
eterbug #N)". Можно ли в eterhack писать по-русски?
Возможно, стоит создать дополнительную ветку, если у нас всё ещё существуют
патчи, накладываемые только при сборке пакетов (или наоборот, нужны
отменяющие коммиты).
Личные репозитории разработчиков синхронизируются с нашим центральным
репозиторием (за исключением build-ветки в случае её существования).
Добавляется дополнительная ветка, для того, чтобы не путаться, можно называть
её по uid'у разработчика. Например:
$ git-branch
kondratyuk
* eterhack
master
pure
В этой личной ветке - те коммиты, которые пока не можем рекомендовать для
релиза, но используем в своей сборке и готовы поделиться с кем-нибудь. Здесь,
например, размещаем хак, который вроде бы исправляет проблему, но непонятно,
сколько новых проблем создаёт и что ломает. Доисследовали, доделали, хак
исправляет проблему и ничего не ломает - переносим в eterhack и таким образом
рекомендуем его включить в релиз.
Пока не понимаю, как должен поступать ответственный за коммиты в наш
центральный репозиторий. Наверное, нужно отслеживать изменения в ветках
master и eterhack всех разработчиков, просматривать принятые туда патчи и
переносить их вручную (контролируемо, а не скриптом). Это не должно занять
много времени (релизных патчей не так много появляется), но должно сохранить
порядок в репозитории и предотвратить ошибочные коммиты. У ответственноего
должны быть клоны личных репозиториев всех разработчиков, тогда при отсмотре
и переносе патчей можно работать с утилитами типа qgit.
Одобрения, возражения, предложения, вопросы? Большая просьба в возражениях
объяснять, почему нет, и предлагать, как исправить.
--
Best regards,
Konstantin Kondratyuk.
Подробная информация о списке рассылки Wine-devel