Bug 5161 - Wrong version sorting when commiting new package's version
: Wrong version sorting when commiting new package's version
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/sandman)
: unstable
: all Linux
: P2 blocker
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2004-09-06 10:46 by
Modified: 2005-07-13 15:46 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2004-09-06 10:46:51
В сандмане лежит пакет 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 -> ../../3.1/alt1/aaa
.../sources/XXX/0/3.1.1/alt1/bbb
.../sources/XXX/0/3.1.1/alt1/ccc -> ../../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 -> ../../3.1/alt1/aaa
.../sources/XXX/0/3.1.2/alt1/bbb -> ../../3.1/alt1/bbb
.../sources/XXX/0/3.1.2/alt1/ccc

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

.../sources/XXX/0/3.1.2/alt1/aaa -> ../../3.1.1/alt1/aaa
.../sources/XXX/0/3.1.2/alt1/bbb -> ../../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 и писать свой обработчик...
------- Comment #1 From 2004-09-13 18:26:57 -------
seems fixed in 0.5.5-alt7