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

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

    <bug>
          <bug_id>15610</bug_id>
          
          <creation_ts>2008-05-12 10:19:29 +0400</creation_ts>
          <short_desc>[FR] ^ in tree-ish definitions</short_desc>
          <delta_ts>2017-11-05 14:29:11 +0300</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>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="ildar">ildar</reporter>
          <assigned_to name="Sergey Vlasov">vsu</assigned_to>
          <cc>evg</cc>
    
    <cc>glebfm</cc>
    
    <cc>imz</cc>
    
    <cc>iv</cc>
    
    <cc>ldv</cc>
    
    <cc>legion</cc>
    
    <cc>placeholder</cc>
    
    <cc>vvk</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>69692</commentid>
    <comment_count>0</comment_count>
    <who name="ildar">ildar</who>
    <bug_when>2008-05-12 10:19:29 +0400</bug_when>
    <thetext>постановка задачи:
хочется выдрать патч из коммита, помеченного тегом:

diff: systemffi-upstream-patch^:. systemffi-upstream-patch:.
name=@name@-systemffi.patch

Однако это запрещено и приходится делать так:

diff: bb2f69941fe898bfaabe1916fcad42841a6046fe:. systemffi-upstream-patch:.
name=@name@-systemffi.patch

Можно разрешить &quot;шапочку&quot; в tree-ish-полях gear-rules?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>70591</commentid>
    <comment_count>1</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2008-05-27 02:28:25 +0400</bug_when>
    <thetext>(In reply to comment #0)
&gt; постановка задачи:
&gt; хочется выдрать патч из коммита, помеченного тегом:
&gt; 
&gt; diff: systemffi-upstream-patch^:. systemffi-upstream-patch:.
&gt; name=@name@-systemffi.patch
&gt; 
&gt; Однако это запрещено и приходится делать так:
&gt; 
&gt; diff: bb2f69941fe898bfaabe1916fcad42841a6046fe:. systemffi-upstream-patch:.
&gt; name=@name@-systemffi.patch
&gt; 
&gt; Можно разрешить &quot;шапочку&quot; в tree-ish-полях gear-rules?

Теоретически можно разрешить и более сложные конструкции,
описанные в git-rev-parse(1), поскольку они не нарушают концепцию однозначной
определённости коммита.  Другое дело, что я не вижу в этом смысла, ведь всегда
можно изготовить нужный тэг.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>70593</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2008-05-27 03:09:21 +0400</bug_when>
    <thetext>Добавить конструкции из git-rev-parse(1) мне больше нравится. Делать
дополнительные теги для правил как-то неправильно...

Дим, перебрасывай на меня. Я попробую сделать.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>70597</commentid>
    <comment_count>3</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2008-05-27 03:38:07 +0400</bug_when>
    <thetext>(In reply to comment #2)
&gt; Добавить конструкции из git-rev-parse(1) мне больше нравится. Делать
&gt; дополнительные теги для правил как-то неправильно...

Я исхожу из того, что мне эти конструкции ни разу ещё не понадобились.

&gt; Дим, перебрасывай на меня. Я попробую сделать.

OK

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73023</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2008-06-23 10:13:13 +0400</bug_when>
    <thetext>Реализовал у себя в бранче refs/heads/gear-update-tag. ildar@ можете протестировать и подтвердить ?

Если исправления устраивают, то переложу в gear-next.

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>74097</commentid>
    <comment_count>5</comment_count>
    <who name="ildar">ildar</who>
    <bug_when>2008-07-16 15:46:42 +0400</bug_when>
    <thetext>Алексей,

простите, долго не доходили руки.

Сегодня протестировал - работает. Спасибо большое.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>74098</commentid>
    <comment_count>6</comment_count>
    <who name="ildar">ildar</who>
    <bug_when>2008-07-16 15:47:03 +0400</bug_when>
    <thetext>Алексей,

простите, долго не доходили руки.

Сегодня протестировал - работает. Спасибо большое.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>74130</commentid>
    <comment_count>7</comment_count>
    <who name="Sergey Vlasov">vsu</who>
    <bug_when>2008-07-17 16:03:02 +0400</bug_when>
    <thetext>Если речь идёт о http://git.altlinux.org/people/legion/packages/gear.git?p=gear.git;a=commitdiff;h=a9a2ddf120c3a26dc35819da3b56d9179dcfe2ed  - такая реализация не годится, поскольку git rev-parse --verify проверяет не только синтаксис, а и наличие соответствующих имён в текущем репозитории; в исходной реализации этого не требовалось.  Т.е., раньше было можно вызвать сборку для тега $tag из репозитория $repo следующим образом:

  cd $tmpdir
  git init
  sha1=$(git ls-remote $repo $tag | cut -f1)
  git fetch $repo $tag
  gear -t $sha1 $gear_options

(т.е., в отдельном репозитории, в котором присутствует указанный объект со всеми объектами, на которые он ссылается, но без .git/refs/*). Использование git rev-parse --verify для проверки имён тегов вносит зависимость от содержимого .git/refs/ (а в некоторых случаях и от .git/logs/).

Кроме того, в версии 47c6cb4a7081203474986ce3bcfd44674e4b1fe1 по той же причине сломаны конструкции вида

  tar: @name@-@version@:.

(функция check_tag_name при чтении .gear/tags вызывается до раскрытия @...@).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>74131</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2008-07-17 17:50:04 +0400</bug_when>
    <thetext>На своей реализации я и не настаиваю :)
Просто тебя давно видно не было, а проблема висит.

P.S. Раз уж ты добрался до gear-update-tag, очень прошу, посмотри на #16075 и дай свою резолюцию.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>74160</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Gladkov">legion</who>
    <bug_when>2008-07-18 14:10:34 +0400</bug_when>
    <thetext>Сергей, напишешь свою реализацию для исправления этого бага ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127665</commentid>
    <comment_count>10</comment_count>
    <who name="ildar">ildar</who>
    <bug_when>2011-12-15 15:52:14 +0400</bug_when>
    <thetext>Коллеги, есть силы для второго подхода?</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>