В сандмане лежит пакет 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 и писать свой обработчик...
seems fixed in 0.5.5-alt7