[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