[devel] Бранч для svn-репозитария в git

Alexey I. Froloff =?iso-8859-1?q?raorn_=CE=C1_altlinux=2Eru?=
Пн Сен 1 00:08:36 MSD 2008


* Eugene Prokopiev <enp@> [080831 23:48]:
> Зачем делать pull в текущий бранч (предполагается, что спек там же?),
> если tar нам сделают из ремотного бранча по тегу, а не из каталога в
> текущем бранче?
Там же ещё и diff есть.  Не обязательно в текущий, можно и через
несколько бранчей, например с помощью gear-merge.  Смысл в том,
что апстримные сорцы в одном месте, все локальные изменения в
другом (мне удобно когда это в master, некоторые держат в master
только спек, а патчи в "предыдущем" бранче).

Пример "многоветочного" репозитария у меня в mutt1.5.git.

> И в чем принципиальная разница с моим рецептом?
Я его не очень понял и рассказал свой рецепт ;-)

> У меня тоже tar делался из ремотного бранча, но после push на
> git.alt и clone оттуда этот ремотный бранч уже не был виден -
> т.о. разработчик, сделавший clone, не мог просто сделать
> git-svn fetch для обновления апстримных исходников, а должен
> был сделать перед тем git-svn init. В вашем случае это тоже
> так?
Почти.  В моём примере их надо тоже пушить явно:

git push origin refs/remotes/trunk:refs/remotes/trunk
git push origin 'refs/remotes/tags/*:refs/remotes/tags/*'
git push origin 'refs/remotes/branches/*:refs/remotes/branches/*'

Правая сторона может быть и не refs/remotes/*, а refs/svn/*.  Но
чтобы работал git svn, локально эти ветки должны быть в
refs/remotes/.  Хотя по слухам это можно и настроить через
.git/config, но я это пока не очень асилил.

Чтобы второй разработчик мог делать git svn fetch надо либо
скопировать кусок .git/config относящийся к svn у первого
разработчика или сделать git svn init и расставить нужные бранчи
в том виде как их ожидает найти git svn.

> Меня именно модель взаимодействия больше всего интересует - я выпускаю
> одну версию, другой разработчик - следующую, потом выпускаю еще раз я.
$ git remote add РАЗРАБОТЧИК git.alt:/people/РАЗРАБОТЧИК/packages/ПАКЕТ.git
$ git fetch РАЗРАБОТЧИК

Я ещё делаю

$ git fetch РАЗРАБОТЧИК 'refs/heads/*:refs/heads/*'

Если накоммитили в одно время, fast-forward не будет и некоторые
ветки придётся мержить явно.

Ну и синхронизировать периодически между собой.

Два разработчика + SVN есть в ruby.git у меня и kas.

-- 
Regards,
Sir Raorn.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: Digital signature
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20080901/99d4f257/attachment-0002.bin>


Подробная информация о списке рассылки Devel