15:44 < Lost> обновился апстрим например 15:44 < Lost> делаю git checkout upstream 15:44 < swi> git co patch; git merge upstream; git co master; git merge patch? 15:44 < Lost> git-tag -s 'KoLmafia-11.5' например или что-то типа того, чтобы зафиксировать ревизию 15:45 * swi заткнулся и внимает 15:45 < Lost> далее делаю git-checkout equipment-fixes (ветка с приложенным патчем) 15:45 < Lost> git-merge KoLmafia-11.5 (тег, полученный при предыдущем шаге) 15:46 < Lost> можно в принципе делать git-merge upstream - будет то же самое, но тег как-то солиднее, да и нужен он будет позднее 15:46 < Lost> далее смотрю, ровненько ли прошел merge, не надо ли чего подправить 15:46 < Lost> если все в порядке, кладу еще один тег 15:47 < Lost> git-tag -s equipment-11.5 15:47 < Lost> теперь патчик мой будет генериться между двумя этими тегами 15:47 < Lost> далее git-checkout master 15:47 < Lost> git-merge equipment-11.5 15:47 < Lost> gear-update-tag KoLmafia-11.5 15:47 < Lost> gear-update-tag equipment-11.5 15:48 < Lost> это вносит новые теги в специальную папочку .gear-tags 15:48 < Lost> чтобы gear их мог видеть 15:48 * swi кивнул 15:48 < Lost> а дальше нужны хитрые строчки в .gear-rules 15:49 < Lost> первая строчка - tar.gz: KoLmafia-11.5:KoLmafia 15:49 < Lost> это говорит геару, что тарбол надо брать из тега KoLmafia-11.5 (ну то есть апстрима) 15:49 < swi> ооо 15:50 < Lost> следующая строчка - diff: KoLmafia-11.5:KoLmafia equipment-11.5:KoLmafia name=<имя патчега> 15:50 < Lost> это говорит что патчег <имя патчега> надо брать путем сравнения двух тегов 15:51 < Lost> первый находится на ветке upstream, второй - на ветке equipment-fixes 15:51 < Lost> ну а дальше прописываю этот патчег в KoLmafia.spec 15:51 < Lost> и как обычно, %patch0 -p1 :) 15:52 < swi> оооооооооооооо 15:52 < Lost> увеличиваю релиз/версию в спеке, add_changelog, заполняю ченджлог, потом проверочная сборка 15:52 < swi> я б сказал даже вау.. но не гламурен 15:52 < Lost> если все в порядке - тогда gear-commit -a 15:52 < Lost> а потом gear-create-tag (новая приблуда в новом геаре) 15:53 < Lost> она создаст тег релиза, по которому в будущем вроде как должна запускаться автоматическая сборка
11:54 < Lost> ну типа так: 11:54 < Lost> mkdir qtemu 11:54 < Lost> cd qtemu 11:54 < Lost> tar -xf qtemu-0.3.tar.gz 11:54 < Lost> mv qtemu-0.3 qtemu 11:54 < Lost> git-init 11:54 < Lost> git-add qtemu 11:54 < Lost> git-commit -m 'Initial import of qtemu-0.3' 11:55 < Lost> git-checkout -b upstream 11:55 < Lost> git-tag -m 'qtemu-0.3' -s qtemu-0.3 11:56 < Lost> потом сразу импортишь следующий релиз 11:56 < Lost> gear-update ~/tmp/qtemu-0.4.tar.gz qtemu && git-commit -a -m 'qtemu-0.4' && git-tag -m 'qtemu-0.4' -s qtemu-0.4 11:57 < Lost> то есть у тебя в ветке upstream получатся последовательные релизы, каждый из которых обозначен тегом 11:57 < Lost> далее ты делаешь git-checkout master 11:57 < Lost> добавляешь .gear-rules и спек от qtemu-0.3-alt1 11:58 < Lost> коммитишь 11:58 < Lost> ну и т.д. Потом делаешь git-merge qtemu-0.4 и коммитишь спек от qtemu-0.4-alt1
16:53 < stanv> а как можно сразу все бранчи забрать ? 16:58 < Lost> stanv: а зачем? 16:59 < Lost> вроде отдельной команды нету для этого 16:59 < stanv> :) например доступа к origin не всегда есть :) 17:00 < Lost> stanv: не понял про доступ 17:01 < stanv> ну выключили инет, и на remote branch перейти (взять себе) уже не сможешь 17:01 < Lost> stanv: чаво? 17:01 < Lost> ты упал чтоли? 17:02 < Lost> если ты сделал git-clone, у тебя полная копия репозитория 17:02 < Lost> со всеми тагами, бранчами и прочим 17:02 < Lost> дальше тебе исходный репо нужен только для git-push и git-pull 17:02 < stanv> только теперь к имени бранчам появился префикс origin ? 17:04 < Lost> stanv: эти бранчи стали remotes 17:04 < Lost> stanv: они отслеживают состояние бранчей в исходном репо 17:04 < Lost> их менять низя 17:04 < Lost> зато из них можно делать свои локальные бранчи 17:04 < stanv> аа! 17:05 < stanv> прозрел :) 17:08 < stanv> еще про tags роскажи и все :) tag - это commit в ветке. если я удалю ветку, все таги для коммитов этой ветки тоже удалятся * 17:08 < stanv> ? 17:08 < Lost> tag - это сцылко на коммит 17:08 < Lost> сам по себе он является таким же полноправным ref, как и ветко 17:09 < Lost> если ты удалишь ветку, таг останеццо 17:09 < stanv> и ? 17:09 < Lost> таг отличается от ветки тем, что в ветку можно коммитить 17:10 < Lost> и то, что таг может быть объектом (полновесный таг то есть) 17:10 < Lost> или легковесным (только сцылко в refs/tags) 17:10 < Lost> а ветка может быть только легковесной 17:10 < stanv> т.е. если я удаляю ветку, все коммиты в нее остаются ? 17:11 < Lost> как сцылко в refs/heads или в refs/remotes 17:12 < Lost> если на эти коммиты есть какие-либо другие сцылки, то не удалятся 17:12 < Lost> и даже если нету - коммиты удалятся только после git-prune