Bug 5161

Summary: Wrong version sorting when commiting new package's version
Product: Sisyphus Reporter: Sir Raorn <raorn>
Component: sandmanAssignee: Sergey Bolshakov <sbolshakov>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: blocker    
Priority: P2    
Version: unstable   
Hardware: all   
OS: Linux   

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