On Sun, Aug 26, 2007 at 01:54:08PM +0300, Artem Zolochevskiy wrote: > -->вот положим вышла новая версия <-- > (обновляем иcходники в бранче upstream) > $ git branch upstream git-checkout upstream > $ gear-update ../archive/fdupes-1.12.tar.gz fdupes > $ git commit -m "fdupes-1.12.tar.gz" > $ git tag -a -m "fdupes 1.12" v1.12 > (пакуем) > $ git branch master Здесь тоже checkout > $ git merge v1.12 (добавляем новые исходники в master) Я обычно делаю типа (кажется это вредная привычка) git-pull . upstream а ещё можно делать git-pull . tag vVER > $ vim fdupes.spec > $ git add fdupes.spec Повторно добавлять не надо, можно просто делать gear-commit -a. Что-то я до конца не разобрался как там этот индекс обновляется. > $ gear-commit > $ git tag -a -m "fdupes 1.12-alt1" 1.12-alt1 > --> готово, версия 1.12-alt1 <-- > > итд по кругу по мере выхода новых версий. Да, в целом всё так. > 2. не городим upstream (тут, видимо, как-то надо хитро обновлять исходники) > > $ tar xf archive/fdupes-1.0.tar.gz > (тут у меня каталог с правильным именем получился, а если нет, то надо что-то > вроде - $ mv fdupes-version fdupes) > $ cd fdupes > $ ls > fdupes.c INSTALL Makefile README runtest testdir > $ git init > $ git add . > $ git commit -m "fdupes-1.0.tar.gz" > $ git tag -a -m "fdupes 1.0" v1.0 (делаем tag для этой версии исходников) > > --> вот тут вопрос: как обновить исходники? <-- > gear-updates тут поможет? gear-update это какая-то странная штука, коммита она не делат, зачем нужна не понял. Если бы она после распаковки искала mtime и делала коммит с этим mtime это было бы круче. > саму логику дальнейшей работы я понимаю так-то так: > $ git checkout -b temp v1.0 (временный бранч для иходников) > $ как-то обновляем иходники до новой версии (v1.11) > $ git commit -m "fdupes-1.11.tar.gz" > $ git tag -a -m "fdupes 1.11" v1.11 (делаем tag для этой версии исходников) > $ git branch -D temp > (я верно понимаю что бранч temp тут можно уже стирать?) Нужно будет сначала переключиться на другой бранч. > (пакуем) > $ git checkout master > $ echo "tar: fdupes" > .gear-rules > $ vim fdupes.spec > $ git add .gear-rules fdupes.spec > $ gear-commit > $ git tag -a -m "fdupes 1.11-alt1" 1.11-alt1 > --> готово, версия 1.11-alt1 <-- > > -->вот положим вышла новая версия <-- > (обновляем иcходники) > $ git checkout temp v1.11 > $ как-то обновляем иходники до новой версии (v1.12) > $ git commit -m "fdupes-1.11.tar.gz" > $ git tag -a -m "fdupes 1.11" v1.11 (делаем tag для этой версии исходников) > $ git branch -D temp > (я верно понимаю что бранч temp тут можно уже стирать?) > > (пакуем) > $ git branch master > $ git merge v1.12 (добавляем новые исходники в master) > $ vim fdupes.spec > $ git add fdupes.spec > $ gear-commit > $ git tag -a -m "fdupes 1.12-alt1" 1.12-alt1 > --> готово, версия 1.12-alt1 <-- > > итд по кругу по мере выхода новых версий. Насколько я понимаю, в этих двух вариантах у Вас получится полностью аналогичная структура коммитов. * updated spec for tar2 /M merged tar2 * | tar2 | * updated spec for tar1 |/M merged tar1 * | tar1 | * added spec and .gear-rules 0/ tar0 Будет ли какой-то бранч с отдельным названием в точке tar2, не имеет значения. Я думал Вы более тонкие вопросы спрашиваете, например как быть поcле gear-srpmimport.