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

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

    <bug>
          <bug_id>5161</bug_id>
          
          <creation_ts>2004-09-06 10:46:51 +0400</creation_ts>
          <short_desc>Wrong version sorting when commiting new package&apos;s version</short_desc>
          <delta_ts>2005-07-13 15:46:46 +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>sandman</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></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>blocker</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sir Raorn">raorn</reporter>
          <assigned_to name="Sergey Bolshakov">sbolshakov</assigned_to>
          
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>18615</commentid>
    <comment_count>0</comment_count>
    <who name="Sir Raorn">raorn</who>
    <bug_when>2004-09-06 10:46:51 +0400</bug_when>
    <thetext>В сандмане лежит пакет XXX версий 0:3.1-alt1 и 0:3.1.1-alt1, там содержатся
файлы aaa, bbb и ccc, в версии 0:3.1.1-alt1 файл bbb был изменён:

.../sources/XXX/0/3.1/alt1/aaa
.../sources/XXX/0/3.1/alt1/bbb
.../sources/XXX/0/3.1/alt1/ccc
.../sources/XXX/0/3.1.1/alt1/aaa -&gt; ../../3.1/alt1/aaa
.../sources/XXX/0/3.1.1/alt1/bbb
.../sources/XXX/0/3.1.1/alt1/ccc -&gt; ../../3.1/alt1/ccc

Коммитим версию 3.1.2, изменён файл ccc. Тут начинается самое интересное,
sandman считает, что версия 3.1-alt1 (0/3.1/alt1) больше версии 3.1.1-alt1
(0/3.1.1/alt1) и получается следующее:

.../sources/XXX/0/3.1.2/alt1/aaa -&gt; ../../3.1/alt1/aaa
.../sources/XXX/0/3.1.2/alt1/bbb -&gt; ../../3.1/alt1/bbb
.../sources/XXX/0/3.1.2/alt1/ccc

вместо ожидаемого:

.../sources/XXX/0/3.1.2/alt1/aaa -&gt; ../../3.1.1/alt1/aaa
.../sources/XXX/0/3.1.2/alt1/bbb -&gt; ../../3.1.1/alt1/bbb
.../sources/XXX/0/3.1.2/alt1/ccc

Как видно, изменения в файле bbb потеряны...

Проблема в том, что поиск предыдущей версии делается через glob в rep::findsrc
(вызывается из rep::checksrc):

set have [lsort -dictionary [glob -nocomplain [file join $pat $name]]]
...
    set src [lindex $have end]

Возможно надо использовать -command для lsort и писать свой обработчик...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>18789</commentid>
    <comment_count>1</comment_count>
    <who name="Sergey Bolshakov">sbolshakov</who>
    <bug_when>2004-09-13 18:26:57 +0400</bug_when>
    <thetext>seems fixed in 0.5.5-alt7
</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>