<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>16075</bug_id>
          
          <creation_ts>2008-06-17 21:05:53 +0400</creation_ts>
          <short_desc>[FR] gear-update-tag: add &quot;verify&quot; mode</short_desc>
          <delta_ts>2008-08-24 01:41:13 +0400</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>gear</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://git.altlinux.org/people/raorn/packages/?p=gear.git;a=shortlog;h=refs/heads/verify-tag</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>patch</keywords>
          <priority>P2</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sir Raorn">raorn</reporter>
          <assigned_to name="Dmitry V. Levin">ldv</assigned_to>
          <cc>glebfm</cc>
    
    <cc>ldv</cc>
    
    <cc>legion</cc>
    
    <cc>placeholder</cc>
    
    <cc>vsu</cc>
    
    <cc>vvk</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>72629</commentid>
    <comment_count>0</comment_count>
    <who name="Sir Raorn">raorn</who>
    <bug_when>2008-06-17 21:05:53 +0400</bug_when>
    <thetext>Когда в .gear/rules используются левые бранчи, которые мержатся в master, очень легко забыть запустить gear-update-tag перед сборкой пакета.  Хочется иметь опцию --verify, которая проверяла, все ли теги в .gear/tags смотрят куда положено.  Ну и выходила бы с ненулевым статусом если нет.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72648</commentid>
    <comment_count>1</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2008-06-18 03:29:40 +0400</bug_when>
    <thetext>Параметр --verify для gear-update-tag не помешает.
Только ведь можно и --verify забыть запустить.
Поэтому мне кажется логичным научить &quot;gear-update-tag --verify&quot; работать с commitish и добавить соответствующий вызов в gear-create-tag.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72676</commentid>
    <comment_count>2</comment_count>
    <who name="Sir Raorn">raorn</who>
    <bug_when>2008-06-18 15:41:27 +0400</bug_when>
    <thetext>Я приделаю commitish к gear-update-tag.

Не уверен насчёт gear-create-tag.  Логичней было бы gear в режиме --rpm/--hasher/pkg.tar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72690</commentid>
    <comment_count>3</comment_count>
    <who name="Sir Raorn">raorn</who>
    <bug_when>2008-06-18 21:34:46 +0400</bug_when>
    <thetext>Сделал, но если в .gear/tags используются имена бранчей а не тегов, толку от этого будет мало.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72691</commentid>
    <comment_count>4</comment_count>
    <who name="Sir Raorn">raorn</who>
    <bug_when>2008-06-18 21:36:31 +0400</bug_when>
    <thetext>Reassing и жду замечаний или мержа.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72704</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2008-06-19 01:02:48 +0400</bug_when>
    <thetext>(In reply to comment #3)
&gt; Сделал, но если в .gear/tags используются имена бранчей а не тегов, толку от этого
&gt; будет мало.
&gt; 

check_tag_name() не позволит использовать не тэги. Собственно в этом и проблема #15610.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72717</commentid>
    <comment_count>6</comment_count>
    <who name="Sir Raorn">raorn</who>
    <bug_when>2008-06-19 01:29:13 +0400</bug_when>
    <thetext>(In reply to comment #5)
&gt; check_tag_name() не позволит использовать не тэги.

И давно?  См. напр. mutt1.5.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72720</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2008-06-19 02:10:40 +0400</bug_when>
    <thetext>(In reply to comment #6)
&gt; И давно?  См. напр. mutt1.5.

Интересно:

check_tag_name() 
{ 
  local name=&quot;$1&quot; &amp;&amp; shift 

  [ -n &quot;$name&quot; ] || 
    rules_error &apos;Empty tag name is not allowed&apos; 
  [ -n &quot;${name##/*}&quot; ] || 
    rules_error &quot;Invalid tag name \&quot;$name\&quot;: initial &apos;/&apos; is not allowed&quot; 
  [ -n &quot;${name%%*/}&quot; ] || 
    rules_error &quot;Invalid tag name \&quot;$name\&quot;: trailing &apos;/&apos; is not allowed&quot; 
  [ -n &quot;${name##*[][*?^~:@[:space:]]*}&quot; ] || 
    rules_error &quot;Invalid tag name \&quot;$name\&quot;: invalid characters found&quot; 
  git check-ref-format &quot;tags/$name&quot; || 
    rules_error &quot;Invalid tag name \&quot;$name\&quot;&quot; 
}

это функция проверки имени тэга. Начальные проверки имени ясны. Интересен git check-ref-format.

[legion gear]$ git check-ref-format &apos;tags/foobar&apos;; echo $?
0
[legion gear]$ git rev-parse &apos;tags/1.0.1-alt1&apos;; echo $?
0a47c66dedd606aeb028f6c8db65ab447c6e211a
0
[legion gear]$ git check-ref-format &apos;tags/foobar&apos;; echo $?
0
[legion gear]$ git rev-parse &apos;tags/foobar&apos;; echo $?
tags/foobar
fatal: ambiguous argument &apos;tags/foobar&apos;: unknown revision or path not in the working tree.
Use &apos;--&apos; to separate paths from revisions
128

Кажется поэтому ты и можешь использовать имена бранчей.

Либо я в чём-то сильно ошибаюсь.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72722</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2008-06-19 02:17:50 +0400</bug_when>
    <thetext>Хотя нужно внимательнее прочитать resolve_commit_name().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72723</commentid>
    <comment_count>9</comment_count>
    <who name="Sir Raorn">raorn</who>
    <bug_when>2008-06-19 02:22:24 +0400</bug_when>
    <thetext>Хм.

$ git check-ref-format tags/master &amp;&amp; echo OK || echo ERR
OK
$ git check-ref-format master &amp;&amp; echo OK || echo ERR 
ERR
$ git check-ref-format refs/heads/master &amp;&amp; echo OK || echo ERR 
OK
$ git check-ref-format refs/tags/master &amp;&amp; echo OK || echo ERR 
OK

Хм. Хм.

$ git show-ref master
a601b50cc564a73ddcd777c76cfe45a44317cc58 refs/heads/master
a601b50cc564a73ddcd777c76cfe45a44317cc58 refs/remotes/origin/master
$ git show-ref tags/master
[1]    18797 exit 1     git show-ref tags/master
$ git show-ref refs/heads/master
a601b50cc564a73ddcd777c76cfe45a44317cc58 refs/heads/master
$ git show-ref refs/tags/master 
[1]    18847 exit 1     git show-ref refs/tags/master</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72725</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2008-06-19 02:27:19 +0400</bug_when>
    <thetext>(In reply to comment #9)
&gt; Хм.
&gt; 
&gt; $ git check-ref-format tags/master &amp;&amp; echo OK || echo ERR

Вот-вот ... такое ощущение, что раньше check-ref-format проверял не только корректность имени, но и существование этого объекта.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72726</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2008-06-19 02:33:41 +0400</bug_when>
    <thetext>ну и разумеется:

gear-update-tag &quot;name&quot; -&gt; check_tag_name_from_command_line -&gt; check_tag_name

поэтому бранчи вместо тэгов можно создавать.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72727</commentid>
    <comment_count>12</comment_count>
    <who name="Sir Raorn">raorn</who>
    <bug_when>2008-06-19 02:59:59 +0400</bug_when>
    <thetext>Мне бы хотелось чтобы это так и осталось...  Иначе придётся лепить tip&apos;ы на каждый бранч, что ещё неудобнее.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72763</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2008-06-19 13:13:43 +0400</bug_when>
    <thetext>Тут получается сложная ситуация ... бранч нарушает концепцию однозначной
определённости коммита. Но такая конструкция уже используется и ты этому иллюстрация.

Вообщем, нужно думать как это решать.

P.S. Мне кажется, что всё-таки нужно запрещать использование бранчей. Это ломает всю идею этой утилиты.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72766</commentid>
    <comment_count>14</comment_count>
    <who name="Sir Raorn">raorn</who>
    <bug_when>2008-06-19 13:34:16 +0400</bug_when>
    <thetext>Как раз наоборот.  Эта утилита фиксирует имена тегов/бранчей на момент сборки.  Мне удобно использовать бранчи, зачем усложнять людям жизнь?  Выстрелить себе в ногу можно и тегами вида BRANCHNAME-tip, только тут ещё больше шансов накосячить так, что никто этого не заметит (уже чинил такое).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72767</commentid>
    <comment_count>15</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2008-06-19 13:39:03 +0400</bug_when>
    <thetext>(In reply to comment #14)
&gt; Как раз наоборот.  Эта утилита фиксирует имена тегов/бранчей на момент
&gt; сборки.  Мне удобно использовать бранчи, зачем усложнять людям жизнь? 
&gt; Выстрелить себе в ногу можно и тегами вида BRANCHNAME-tip, только тут ещё больше
&gt; шансов накосячить так, что никто этого не заметит (уже чинил такое).
&gt; 

Я тоже иногда использую бранчи, см. coreutils.git</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72768</commentid>
    <comment_count>16</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2008-06-19 13:58:56 +0400</bug_when>
    <thetext>Угу. gear-update-tag фиксирует sha1 объекта при добавлении в .gear/tags.

Тогда Лёшь, как быть с 16075#c3 ?

P.S. Слова &quot;мне так удобно&quot; или &quot;я так привык&quot; за агрумент не считаю.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72769</commentid>
    <comment_count>17</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2008-06-19 14:07:17 +0400</bug_when>
    <thetext>Для меня загадка почему vsu так ограничил &quot;diff: ...&quot;. К сожалению он на письма тоже не отвечает.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72770</commentid>
    <comment_count>18</comment_count>
    <who name="Sir Raorn">raorn</who>
    <bug_when>2008-06-19 14:20:27 +0400</bug_when>
    <thetext>(In reply to comment #16)
&gt; Тогда Лёшь, как быть с 16075#c3 ?
Симриться.  Тега, который был зафиксирован при помощи gear-update-tag может не быть в репозитарии или он уже может указывать на другой об&apos;ект.  Именно для этого и делался gear-update-tag.

gear-update-tag работает с working copy, --verify только проверяет что запуск gear-update-tag --all в данный момент ничего не сделает.

&gt; P.S. Слова &quot;мне так удобно&quot; или &quot;я так привык&quot; за агрумент не считаю.
Как насчёт слов &quot;неувеличение энтропии&quot;?  Зачем делать два и более действий там, где достаточно одного?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72772</commentid>
    <comment_count>19</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2008-06-19 14:35:35 +0400</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #16)
&gt; &gt; Тогда Лёшь, как быть с 16075#c3 ?
&gt; Симриться.  Тега, который был зафиксирован при помощи gear-update-tag может не быть
&gt; в репозитарии или он уже может указывать на другой об&apos;ект.  Именно для этого
&gt; и делался gear-update-tag.

Как я понимаю сейчас gear-update-tag поступает с бранчами также как тэгами. Он и те и другие имена заносит в .gear/tags и вычитывает из rules т.е. по коду они не отличимы.

Почему же ты считаешь что при использовании бранчей от --verify толку будет мало?
 
&gt; gear-update-tag работает с working copy, --verify только проверяет что запуск gear-update-tag --all в
&gt; данный момент ничего не сделает.

Нам нужно исправлять gear-update-tag для корректной работы с бранчами. Сейчас для бранчей он не полнофункционален. Вот пример:

if [ -n &quot;$tag_name&quot; ] &amp;&amp; [ -z &quot;$delete&quot; ]; then
  if [ -z &quot;$tag_value&quot; ]; then
    tag_value=&quot;$(get_object_sha1 refs/tags/&quot;$tag_name&quot;)&quot; ||
      fatal &quot;Invalid tag \&quot;$tag_name\&quot;&quot;
...

Нужно думать как убрать неоднозначность $tag_name.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72776</commentid>
    <comment_count>20</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2008-06-19 14:48:01 +0400</bug_when>
    <thetext>Затеял исправление этой утилиты под наши реали:

http://git.altlinux.org/people/legion/packages/gear.git?p=gear.git;a=shortlog;h=refs/heads/gear-update-tag</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72777</commentid>
    <comment_count>21</comment_count>
    <who name="Sir Raorn">raorn</who>
    <bug_when>2008-06-19 14:49:07 +0400</bug_when>
    <thetext>(In reply to comment #19)
&gt; Почему же ты считаешь что при использовании бранчей от --verify толку будет
&gt; мало?

Я не так выразился.  Мало толку будет от использования --verify --tree-ish в том
случае когда об&apos;екты (бранчи или теги) из .gear/tags изменились.  В бранч
накоммитили или tip-тег подвинули - без разницы.

Я не знаю как 100% определить случай, когда человек забыл подвинуть tip-тег,
поэтому использую имена бранчей, кроме обязательного требования
использовать только верионные tip-теги, но это уже помойму перебор.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72778</commentid>
    <comment_count>22</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2008-06-19 14:58:57 +0400</bug_when>
    <thetext>(In reply to comment #21)
&gt; Я не так выразился.  Мало толку будет от использования --verify --tree-ish в том
&gt; случае когда об&apos;екты (бранчи или теги) из .gear/tags изменились.  В бранч
&gt; накоммитили или tip-тег подвинули - без разницы.

А почему нельзя проверить sha1 из .gear/tags c sha1 на который указывает тег/бранч ?
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72780</commentid>
    <comment_count>23</comment_count>
    <who name="Sir Raorn">raorn</who>
    <bug_when>2008-06-19 15:03:52 +0400</bug_when>
    <thetext>(In reply to comment #22)
&gt; А почему нельзя проверить sha1 из .gear/tags c sha1 на который указывает тег/бранч ?
Не понял вопроса.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72782</commentid>
    <comment_count>24</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2008-06-19 16:04:38 +0400</bug_when>
    <thetext>&gt; Я не знаю как 100% определить случай, когда человек забыл подвинуть tip-тег,
&gt; поэтому использую имена бранчей, кроме обязательного требования
&gt; использовать только верионные tip-теги, но это уже помойму перебор.

Так. Чтобы не толочь воду в ступе, можешь более детально поясинть, какую ситуацию нужно определить ? 
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72784</commentid>
    <comment_count>25</comment_count>
    <who name="Sir Raorn">raorn</who>
    <bug_when>2008-06-19 16:52:36 +0400</bug_when>
    <thetext>.gear/rules:
tar: master:.

Если забыть обновить .gear/tags при сборке нового пакета соберётся предыдущая версия с новым спеком.  gear не ругнётся, поскольку HEAD растёт из &quot;старого master&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72785</commentid>
    <comment_count>26</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2008-06-19 16:59:32 +0400</bug_when>
    <thetext>(In reply to comment #25)
&gt; .gear/rules:
&gt; tar: master:.
&gt; 
&gt; Если забыть обновить .gear/tags при сборке нового пакета соберётся предыдущая
&gt; версия с новым спеком.  gear не ругнётся, поскольку HEAD растёт из &quot;старого master&quot;.
&gt; 

Т.е. если пользователь передвинул тег перечисленный в .gear/tags и не сказал gear-update-tag ?
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72786</commentid>
    <comment_count>27</comment_count>
    <who name="Sir Raorn">raorn</who>
    <bug_when>2008-06-19 17:09:13 +0400</bug_when>
    <thetext>Именно.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72787</commentid>
    <comment_count>28</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2008-06-19 17:19:15 +0400</bug_when>
    <thetext>(In reply to comment #26)
&gt; Т.е. если пользователь передвинул тег перечисленный в .gear/tags и не сказал
&gt; gear-update-tag ?

Получается что в .gear/tags сохранено старое (предыдущее) состояние. Оно выглядет например так:

$ cat .gear/tags/list 
d138e5e3a47f7fced4435116e3cd9210b3e0d1fc aterm-1.0.1

Нам нужно посмотреть на какой объект указывает aterm-1.0.1 сейчас и сравнить его с d138e5e3a47f7fced4435116e3cd9210b3e0d1fc (старым значением). Если они не совпадут, то совершенно понятно, что тег aterm-1.0.1 передвинули, но не обновлили .gear/tags/list. Разве нет ?
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72788</commentid>
    <comment_count>29</comment_count>
    <who name="Sir Raorn">raorn</who>
    <bug_when>2008-06-19 17:34:19 +0400</bug_when>
    <thetext>Ты издеваешься, да?  Именно это и делает gear-update-tag --verify.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72789</commentid>
    <comment_count>30</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2008-06-19 17:40:25 +0400</bug_when>
    <thetext>(In reply to comment #29)
&gt; Ты издеваешься, да?  Именно это и делает gear-update-tag --verify.

Именно. Я к тому что я не очень понимаю проблемы 16075#c25. Разве что отсутствия такой же проверки в gear.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72790</commentid>
    <comment_count>31</comment_count>
    <who name="Sir Raorn">raorn</who>
    <bug_when>2008-06-19 17:47:09 +0400</bug_when>
    <thetext>Ты всё-таки надо мной издеваешься.  Зачем ты это делаешь?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>72791</commentid>
    <comment_count>32</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2008-06-19 17:55:43 +0400</bug_when>
    <thetext>(In reply to comment #31)
&gt; Ты всё-таки надо мной издеваешься.  Зачем ты это делаешь?

Я вижу мы с тобой никак не можем найти общий язык. Я этот флейм прекращаю. Твои изменения я смерджил в gear-next. Дима их может взять либо у меня, либо у тебя.

Сс: -legion@</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73034</commentid>
    <comment_count>33</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2008-06-23 15:22:08 +0400</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #14)
&gt; &gt; Как раз наоборот.  Эта утилита фиксирует имена тегов/бранчей на момент
&gt; &gt; сборки.  Мне удобно использовать бранчи, зачем усложнять людям жизнь? 
&gt; &gt; Выстрелить себе в ногу можно и тегами вида BRANCHNAME-tip, только тут ещё больше
&gt; &gt; шансов накосячить так, что никто этого не заметит (уже чинил такое).
&gt; 
&gt; Я тоже иногда использую бранчи, см. coreutils.git

Погорячился. Не использую я бранчи в .gear/rules
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73042</commentid>
    <comment_count>34</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2008-06-23 16:04:05 +0400</bug_when>
    <thetext>(In reply to comment #33)
&gt; Погорячился. Не использую я бранчи в .gear/rules 

А это не важно. Если есть хоть один человек, то нет гарантии что он такой один. Я даже не знаю как долго у нас разрешено такое поведение.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>74137</commentid>
    <comment_count>35</comment_count>
    <who name="Sergey Vlasov">vsu</who>
    <bug_when>2008-07-17 20:43:45 +0400</bug_when>
    <thetext>По поводу разрешения использования бранчей вместо тегов, как сделано в http://git.altlinux.org/people/legion/packages/?p=gear.git;a=commitdiff;h=376cbf3c9fe77c78eb4f61872db16cd0b85be7c3 - уже не помню, почему я написал именно так, но в принципе в этом месте можно использовать даже git rev-parse --verify, поскольку этот код в любом случае выполняется у мантейнера. В случае неоднозначности всегда можно вызвать gear-update-tag с двумя параметрами (точно так же можно засунуть туда бранч вместо тега уже сейчас).

Вызов git check-ref-format был предназначен только для отлова недопустимых символов, причём &quot;tags/&quot; там используется только из-за того, что git check-ref-format требует наличия хотя бы одного символа &quot;/&quot; в параметре.  На сам ом деле сейчас это работает не совсем правильно, поскольку текущий код передаёт в git check-ref-format конструкции вида @name@, рассчитывая на то, что они пройдут проверку, однако сейчас в git символ &apos;@&apos; имеет специальное значение, просто git check-ref-format почему-то его не отлавливает.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76151</commentid>
    <comment_count>36</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2008-08-24 01:39:55 +0400</bug_when>
    <thetext>Исправлено. Закрываю.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76152</commentid>
    <comment_count>37</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2008-08-24 01:41:12 +0400</bug_when>
    <thetext>Ключ добавлен.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>