Gear/changelog

Материал из ALT Linux Wiki

< Gear(Различия между версиями)
Перейти к: навигация, поиск
(Создана новая страница размером ===gear-changelog=== ====gear-changelog vs git-shortlog==== Эта утилита формирует <tt>changelog</tt>, но делает...)
 
(4 промежуточные версии не показаны)
Строка 1: Строка 1:
-
===gear-changelog===
+
{{h0|gear-changelog}}
-
====gear-changelog vs git-shortlog====
+
----
 +
 
 +
== gear-changelog vs git-shortlog ==
Эта утилита формирует <tt>changelog</tt>, но делает это несколько иначе чем <tt>git-shortlog</tt>. Вот, например, вывод последнего:
Эта утилита формирует <tt>changelog</tt>, но делает это несколько иначе чем <tt>git-shortlog</tt>. Вот, например, вывод последнего:
<pre>Alexey Gladkov (11):
<pre>Alexey Gladkov (11):
Строка 41: Строка 43:
Они сгруппированы и из них выброшены некоторые лишние коммиты.
Они сгруппированы и из них выброшены некоторые лишние коммиты.
-
====Как это сделано====
+
== Как это сделано ==
-
 
+
<tt>gear-changelog</tt> использует набор со своими правилами. Правила находятся в файле <tt>.gear/changelog</tt>. Формат правил таков:
-
<tt>gear-changelog</tt> использует набор со своими правилами. правила находят в файле <tt>.gear/changelog</tt>. Формат правил таков:
+
* <code>width: <NUM></code><br />Это глобальная директива в правилах, указывающая ширину строки.
-
 
+
* <code>group: <TITLE></code><br />Заголовок группы
-
* <code>width: <NUM></code><br>Это глобальная директива в правилах, указывающая ширину строки.
+
* <code>regexp: <PATTERN></code><br />grep-паттерн для того, чтобы отнести коммит к этой группе
-
 
+
* <code>filter: <SED-S-COMMAND></code><br />sed’овкий s/// для возможных исправлений.
-
* <code>group: <TITLE></code><br>Заголовок группы
+
-
*<code>regexp: <PATTERN></code><br>grep-паттерн для того, чтобы отнести коммит к этой группе
+
-
*<code>filter: <SED-S-COMMAND></code><br>sed'овкий s/// для возможных исправлений.
+
'''Пример:'''
'''Пример:'''
Строка 62: Строка 61:
regexp: .*</pre>
regexp: .*</pre>
-
Можно не заниматься группировками и вызвать утилиту без правил вообще (<tt>--no-rules</tt>) и/или не применять группировку (<tt>--no-groups</tt>). В этом случае вывод будет прост. Но мне кажется что группировать по префиксу коммита очень удобно... особенно если с терминологией определишься. Это помогает и коммиты более понятные делать и <tt>changelog</tt> формировать.
+
Можно не заниматься группировками и вызвать утилиту без правил вообще (<tt>--no-rules</tt>) и/или не применять группировку (<tt>--no-groups</tt>). В этом случае вывод будет прост. Но мне кажется что группировать по префиксу коммита очень удобно… особенно если с терминологией определишься. Это помогает и коммиты более понятные делать и <tt>changelog</tt> формировать.
-
У самой утилиты <tt>gear-changelog</tt> очень мало опций, единственная которая ещё достоена внимания это <tt>--format</tt>. Эта утилита генерирует <tt>changelog</tt> не только в rpm формате, формально она поддерживает ещё и <tt>deb</tt> и <tt>gnu</tt>.
+
У самой утилиты <tt>gear-changelog</tt> очень мало опций, единственная которая ещё достойна внимания это <tt>--format</tt>. Эта утилита генерирует <tt>changelog</tt> не только в rpm-формате, формально она поддерживает ещё и <tt>deb</tt> и <tt>gnu</tt>.
-
За два последних прошу не пинать. Я добавлял их из соображений не прибивания одного какого-то формата вывода. Они сделаны just-for-fun,
+
За два последних прошу не пинать. Я добавлял их из соображений не прибивания одного какого-то формата вывода. Они сделаны just-for-fun, но похожи на настоящие :)
-
но похожи на настоящие :)
+
-
====Замечание====
+
== Замечание ==
Приведённый тут вывод был получен на репозитории:
Приведённый тут вывод был получен на репозитории:
http://git.altlinux.org/people/legion/packages/libshell.git
http://git.altlinux.org/people/legion/packages/libshell.git
-
Вот как выглядbт его gear/changelog:
+
Вот как выглядит его gear/changelog:
http://git.altlinux.org/people/legion/packages/libshell.git?p=libshell.git;a=blob;f=.gear/changelog;hb=HEAD
http://git.altlinux.org/people/legion/packages/libshell.git?p=libshell.git;a=blob;f=.gear/changelog;hb=HEAD
-
[[Категория:Gear]]
+
{{Category navigation|title=gear|category=gear|sortkey={{SUBPAGENAME}}}}

Текущая версия на 18:14, 16 июля 2015

gear-changelog


gear-changelog vs git-shortlog

Эта утилита формирует 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 <legion@altlinux.org> 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 использует набор со своими правилами. Правила находятся в файле .gear/changelog. Формат правил таков:

  • width: <NUM>
    Это глобальная директива в правилах, указывающая ширину строки.
  • group: <TITLE>
    Заголовок группы
  • regexp: <PATTERN>
    grep-паттерн для того, чтобы отнести коммит к этой группе
  • filter: <SED-S-COMMAND>
    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

Вот как выглядит его gear/changelog:

http://git.altlinux.org/people/legion/packages/libshell.git?p=libshell.git;a=blob;f=.gear/changelog;hb=HEAD

 
Личные инструменты