Страница 1 из 1

Подмога mercurial scm в деле создания патчей к дереву портов

Добавлено: 2010-01-29 14:44:34
hizel

Код: Выделить всё

>cd /usr/ports
файлик с масками тех файлов которые игнорируем в репке

Код: Выделить всё

>cat .hgignore
syntax: glob
distfiles/*
INDEX*
.portsnap*
.*
*~
syntax: regexp
\w+/\w+/work/
создаем репку

Код: Выделить всё

>hg init
и коммитим туда текущее деревцо

Код: Выделить всё

hg commit -q --addremove --message Init
курим, пьем кофе, ждём :(

пока пьем набиваем одной рукой .hgrc в своем /home

cat ~/.hgrc

Код: Выделить всё

[ui]
username = Gans Otto <gans.otto@gmail.com>

[extensions]
hgext.mq =
отработал commit смотрим лог
>hg log

Код: Выделить всё

changeset:   0:4a0c89096a40
tag:         tip
user:        Gans Otto <gans.otto@gmail.com>
date:        Fri Jan 29 14:52:58 2010 +0300
summary:     Init
есть контакт, далее включаем Mercurial Queues и создаем первый патч, в моем случае он будет для nagiosgraph

Код: Выделить всё

>hg qinit
>hg qnew -m 'upgrade nagiosgraph to 1.4' nagiosgraphics1.4.patch
>hg log
changeset:   1:9be087d77c68
tag:         qtip
tag:         nagiosgraphics1.4.patch
tag:         tip
tag:         qbase
user:         Gans Otto <gans.otto@gmail.com>
date:        Fri Jan 29 14:59:58 2010 +0300
summary:     upgrade nagiosgraph to 1.4

changeset:   0:4a0c89096a40
tag:         qparent
user:         Gans Otto <gans.otto@gmail.com>
date:        Fri Jan 29 14:52:58 2010 +0300
summary:     Init
теперь правим файлики, морщим лоб, изображаем бурную деятельность - в процессе смотрим hg diff

сделали дело, обнволяем текущий патч

Код: Выделить всё

>hg qrefresh
в .hg/patches/ у нас уже давно лежат файлики

Код: Выделить всё

total 14
-rw-r--r--  1 root  wheel  8207 Jan 29 15:04 nagiosgraphics1.4.patch
-rw-r--r--  1 root  wheel    24 Jan 29 14:59 series
-rw-r--r--  1 root  wheel    65 Jan 29 15:04 status
теперь у нас в nagiosgraphics1.4.patch лежат изменения дерева портов которые мы проделали

текущие наложенные патчи, смотрим

Код: Выделить всё

>hg qapplied
nagiosgraphics1.4.patch
патчи которые существуют смотрим

Код: Выделить всё

>hg qseries
nagiosgraphics1.4.patch
далее, убираем из дерева портов наши изменения

Код: Выделить всё

hg qpop
popping nagiosgraphics1.4.patch
patch queue now empty
теперь дерево портов пришло в состояние до изменения, обновляем порты через cvsup\portsnap и т.д.
суем изменения в репку

Код: Выделить всё

>hg commit -q --addremove --message 'update'
>hg log
changeset:   1:c7b26792ae47
tag:         tip
user:         Gans Otto <gans.otto@gmail.com>
date:        Fri Jan 29 15:12:56 2010 +0300
summary:     update

changeset:   0:4a0c89096a40
user:         Gans Otto <gans.otto@gmail.com>
date:        Fri Jan 29 14:52:58 2010 +0300
summary:     Init
и накладываем патч получая свежее дерево портов со своим патчем :D

Код: Выделить всё

>hg qpush
applying nagiosgraphics1.4.patch
now at: nagiosgraphics1.4.patch
>hg log
changeset:   2:85ad11080524
tag:         qtip
tag:         nagiosgraphics1.4.patch
tag:         tip
tag:         qbase
user:        hizel-srv <hizel@vyborg.ru>
date:        Fri Jan 29 15:15:09 2010 +0300
summary:     upgrade nagiosgraph to 1.4

changeset:   1:c7b26792ae47
tag:         qparent
user:        Gans Otto <gans.otto@gmail.com>
date:        Fri Jan 29 15:12:56 2010 +0300
summary:     update

changeset:   0:4a0c89096a40
user:        Gans Otto <gans.otto@gmail.com>
date:        Fri Jan 29 14:52:58 2010 +0300
summary:     Init

не забываем выслать PR с содержимым

Код: Выделить всё

hg tip -p
куда следует

подробная документация в книге: http://hgbook.red-bean.com/


P.S. плять опять pkg-plist.orig затисался

Re: Подмога mercurial scm в деле создания патчей к дереву портов

Добавлено: 2010-02-11 15:23:06
hizel
при добавлении новых файлов - не забываем делать hg add