From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on sa.int.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.2.5 Message-ID: <49E4D3EC.4020300@altlinux.ru> Date: Tue, 14 Apr 2009 22:20:28 +0400 From: Alexey Gladkov User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.8.1.18) Gecko/20081202 Thunderbird/2.0.0.18 Mnenhy/0.7.5.0 MIME-Version: 1.0 To: ALT Linux Team development discussions References: <87bpr0ehwg.fsf@vertex.dottedmag.net> <49E451A1.7070307@iop.kiev.ua> <49E455E2.1050206@altlinux.ru> <49E4542A.3030606@iop.kiev.ua> <49E45882.6050509@altlinux.ru> <49E4687E.7030602@iop.kiev.ua> <20090414124933.GC7869@wo.int.altlinux.org> <49E48D74.9080804@iop.kiev.ua> <49E49A6C.8000303@altlinux.ru> <49E4A0FC.4040908@iop.kiev.ua> <9d5146970904140816u189f7a8avb18b2841b42f757d@mail.gmail.com> In-Reply-To: <9d5146970904140816u189f7a8avb18b2841b42f757d@mail.gmail.com> X-Enigmail-Version: 0.96a Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: 8bit Subject: Re: [devel] gear-changelog X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Apr 2009 18:20:38 -0000 Archived-At: List-Archive: List-Post: 14.04.2009 19:16, Afanasov Dmitry wrote: > /me до сих не допер, как gear-changelog юзать и ничего, живой вроде :) Ну эта команда была сделана когда в нескольких своих проектах я устал делать механическую работу перед релизом. Эта утилита формирует changelog, но делает это несколько иначе чем git-shortlog. Вот, например, вывод последнего: Alexey Gladkov (11): Add license shell-var: Add new source shell-args: parse_common_option(): Option --quiet cancels option --verbose shell-var: shell_var_unquote(): Returns the value through eval shell-var: Rename shell_var_{no,yes} -> shell_var_is_{no,yes} Merge branch 'shell-var' shell-lists: Add new source shell-quote: Add quote_shell_args() shell-quote: Fix Usage for quote_shell_args shell_var_unquote(), string_quote_remove(): Fix "'" unquote for bash shell-quote: Rewrite quote_shell_args() from scratch, to avoid the dangerous shell constructions Из 11 коммитов как тут сделать changelog можно, но если коммитов значительно больше и изменения ещё более дифференцированы, то радости никакой при этом не испытываешь. Я сломался на втором большом релизе. Утилита gear-changelog выводит коммиты от последнего тега, если не указано другое. Вот вывод те же изменения, но полученные через gear-changelog: $ gear-changelog * Tue Apr 14 2009 Alexey Gladkov 0.0.9-alt2 - shell-quote changes: + Rewrite quote_shell_args() from scratch, to avoid the dangerous shell constructions. + Fix Usage for quote_shell_args. + Add quote_shell_args(). - shell-var changes: + Rename shell_var_{no,yes} -> shell_var_is_{no,yes}. + shell_var_unquote(): Returns the value through eval. + Add new source. - Other changes: + Update .gear/changelog. + shell_var_unquote(), string_quote_remove(): Fix "'" unquote for bash. + shell-lists: Add new source. + shell-args: parse_common_option(): Option --quiet cancels option --verbose. + Add license. Они сгруппированы и из них выброшены некоторые лишние коммиты. Как это сделано: gear-changelog использует набор со своими правилами. Формат их таков: width: Это глобальная директива в правилах, указывающая ширину строки. group: regexp: <PATTERN> filter: <SED-S-COMMAND> Первая строка это заголовок группы, вторая это grep-паттерн для того, чтобы отнести коммит к этой группе, третья (необязательная) строчка это sed'овкий s/// для возможных исправлений. Например: group: shell*-config changes regexp: ^shell(-ini)?-config: filter: s/^shell(-ini)?-config: // group: Documentation changes regexp: ^[^:]+\.man: group: Other changes regexp: .* Можно не заниматься группировками и вызвать утилиту без правил вообще (--no-rules) и/или не применять группировку (--no-groups). В этом случае вывод будет прост. Но мне кажется что группировать по префиксу коммита очень удобно... особенно если с терминологией определишься. Это помогает и коммиты более понятные делать и changelog формировать. У самой утилиты gear-changelog очень мало опций, единственная которая ещё достоена внимания это --format. Эта утилита генерирует changelog не только в rpm формате, формально она поддерживает ещё и deb и gnu. За два последних прошу не пинать. Я добавлял их из соображений не прибивания одного какого-то формата вывода. Они сделаны just-for-fun, но похожи на настоящие :) > увидеть бы последовательность команд и ошибки, тогда проще было бы. > чем лопатить яростную переписку. Приведённый тут вывод был получен на дрепозитории: http://git.altlinux.org/people/legion/packages/libshell.git Вот как выглядbт его gear/changelog: http://git.altlinux.org/people/legion/packages/libshell.git?p=libshell.git;a=blob;f=.gear/changelog;hb=HEAD -- Rgrds, legion