Bug 5161 - Wrong version sorting when commiting new package's version
Summary: Wrong version sorting when commiting new package's version
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: sandman (show other bugs)
Version: unstable
Hardware: all Linux
: P2 blocker
Assignee: Sergey Bolshakov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-09-06 10:46 MSD by Sir Raorn
Modified: 2005-07-13 15:46 MSD (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sir Raorn 2004-09-06 10:46:51 MSD
В сандмане лежит пакет 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 Sergey Bolshakov 2004-09-13 18:26:57 MSD
seems fixed in 0.5.5-alt7