[sisyphus] Re: I: Sisyphus-20050831 packages: +37! -1 +44 (4686)

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Чт Сен 1 03:25:13 MSD 2005


On Wed, Aug 31, 2005 at 06:12:47PM +0400, Alexey Tourbin wrote:
> On Wed, Aug 31, 2005 at 04:00:54PM +0400, Dmitry V. Levin wrote:
> Потому что для пакета, который уже был в репозитарии, робот помнит
> версию и номер предыдующей сборки.  И выдает интервал changelog'а между
> предыдущей сборкой и новой сборкой.  А для "совсем новых" (BRAND NEW)
> пакетов робот не знает, что такое "передыдущая сборка".

То есть в каждый момент времени имеется два дампа -- dump.new с текущим
состоянием и dump.old с предыдущим состоянием.

> fmt_new()
> {
> 	subj="$subj +$1!"
> 	echo "	$1 BRAND NEW $2"; echo
> 	while IFS=$'\t' read -r name SVR f _; do
> 		rpm_summary "$SRPMS/$f"
> 		rpm_lastchange "$SRPMS/$f"
> 		echo
> 	done
> }
> 
> fmt_updated()
> {
> 	subj="$subj +$1"
> 	echo "	$1 UPDATED $2"; echo
> 	while IFS=$'\t' read -r name SVR2 _ _ SVR4 f _; do
> 		rpm_summary "$SRPMS/$f"
> 		rpm_changes_since "$SVR2" "$SRPMS/$f"
> 		echo
> 	done
> }

Список для fmt_new формируется при помощи comm, а список для
fmt_updated -- при помощи comm+join.  Робот что-либо "помнит"
только в смысле сравнения двух дампов.

comm -13 dump.old dump.new >comm.plus
comm -23 dump.old dump.new >comm.minus
[ -s comm.plus -o -s comm.minus ] || exit 0

if [ -n "$opt_join" ]; then
	join -t$'\t' comm.minus comm.plus >join.updated
	join -t$'\t' -v1 comm.minus comm.plus >join.old
	join -t$'\t' -v2 comm.minus comm.plus >join.new
	[ -s join.updated -o -s join.old -o -s join.new ] || exit 0
fi

----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/sisyphus/attachments/20050901/315d082c/attachment-0003.bin>


Подробная информация о списке рассылки Sisyphus