Debian Bug report logs - #610985
Can't checkout old versions correctly

version graph

Package: aegis; Maintainer for aegis is Walter Franzini <walter.franzini@gmail.com>; Source for aegis is src:aegis.

Reported by: Stefan Fritsch <sf@sfritsch.de>

Date: Mon, 24 Jan 2011 16:57:05 UTC

Severity: important

Tags: squeeze-ignore

Found in version aegis/4.24-5

Reply or subscribe to this bug.

Toggle useless messages

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to debian-bugs-dist@lists.debian.org, Walter Franzini <walter.franzini@gmail.com>:
Bug#610985; Package aegis. (Mon, 24 Jan 2011 16:57:08 GMT) Full text and rfc822 format available.

Acknowledgement sent to Stefan Fritsch <sf@sfritsch.de>:
New Bug report received and forwarded. Copy sent to Walter Franzini <walter.franzini@gmail.com>. (Mon, 24 Jan 2011 16:57:08 GMT) Full text and rfc822 format available.

Message #5 received at submit@bugs.debian.org (full text, mbox):

From: Stefan Fritsch <sf@sfritsch.de>
To: submit@bugs.debian.org
Subject: Can't checkout old versions correctly
Date: Mon, 24 Jan 2011 17:55:05 +0100 (CET)
[Message part 1 (text/plain, inline)]
package: aegis
severity: grave
version: 4.24-5
thanks

Aegis fails to checkout old versions with aecp -ind correctly if files have 
been moved around in interesting ways. Details are below. The full thread 
starts at http://sourceforge.net/mailarchive/message.php?msg_id=26848688

I have marked the bug as found in the lenny version, too. But with the lenny 
version, this is only reproducible if the segfault
http://sourceforge.net/tracker/?func=detail&aid=3066593&group_id=224&atid=100224
would be fixed first.

---------- Forwarded message ----------
Date: Mon, 24 Jan 2011 17:33:36 +0100 (CET)
From: Stefan Fritsch <sf@sfritsch.de>
To: Walter Franzini <walter.franzini@gmail.com>
Cc: aegis-developers@lists.sourceforge.net
Subject: Re: [Aegis-developers] aegis gets confused when renaming files

Hi Walter,

thanks for your help and sorry for the late response.

On Fri, 14 Jan 2011, Walter Franzini wrote:
> The aecp -ind bug is fixed, you can get a compressed patch from
> 
> http://aegis.stepbuild.org/cgi-bin/aeget/aegis.4.24.C665/?aepatch+compat=4.16

This fixes some aecp -ind problems, but I found other problems that are not 
fixed. Again, the attached reprod4 script creates the repository and the 
verify4 script shows that aecp -ind produces wrong output.

> If I'm not wrong you are a DD, so you can probably give me some advice
> about the best/proper way to have these fixes in squeeze.  Actually only
> RC bugs and translation updates are allowed to migrate to testing, so a
> new upload in unstable will be blocked and not eligible for unblocking.

I think the inability of a revision control system to checkout old versions 
correctly is a grave bug and is therefore RC. I will open a bug report in the 
debian BTS.

The fix will likely be too late for Squeeze 6.0.0, but I am sure it is eligible 
for the first point release 6.0.1. To get an update into 6.0.1, you need to 
upload a package that fixes this bug but makes no other changes. Then ask 
debian-release@lists.debian.org for inclusion. If the fix is uploaded before 
6.0.0, it can likely be propagated from unstable. If not, a separate upload to 
stable-proposed-updates will be necessary. If you need a sponsor for the 
upload, just ask.

Cheers,
Stefan
[reprod4 (text/plain, ATTACHMENT)]
#!/bin/bash

. /usr/share/aegis/profile

set -eux

P=${1:-bug4}
U=$LOGNAME
TF=$(mktemp)
trap "rm -f $TF" EXIT

SNAPSHOTDIR=$(pwd)/snapshots.$P
if [ -e $SNAPSHOTDIR ] ; then
	echo "$SNAPSHOTDIR already exists"
	exit 1
else
	mkdir $SNAPSHOTDIR
fi

setup_devs () {
	aegis -new_developer $U  || true
	aegis -new_integrator $U || true
	aegis -new_reviewer $U   || true
}

snapshot () {
	DIR=$SNAPSHOTDIR/$AEGIS_PROJECT.C$AEGIS_CHANGE
	if [ -e $DIR ] ; then
		echo snapshot $DIR already exists
		exit 1
	fi
	aecd
	cp -rL . $DIR
}

nc () {
	EDITOR=true aegis -v -nc -p $AEGIS_PROJECT > $TF 2>&1
	cat $TF
	export AEGIS_CHANGE=$(grep aegis.*created $TF|perl -p -e 's/.*change ([0-9]+):.*/$1/')
	aedb -p $AEGIS_PROJECT $AEGIS_CHANGE
	aecd
}

ec () {
	aecd
	sleep 1
	aed
	aeb
	snapshot
	sleep 1
	aede
	aeib
	sleep 1
	aecd
	aeb
	aed
	cd
	aeipass
}

nbr () {
	EDITOR=true aegis -v -nbr -p $AEGIS_PROJECT > $TF 2>&1
	cat $TF
	BR=$(grep aegis.*created $TF|perl -p -e 's/.*"(\S+)": created.*/$1/')
	BR=${BR#$AEGIS_PROJECT.}
	export AEGIS_PROJECT=$AEGIS_PROJECT.$BR
	setup_devs
}

ebr () {
	export AEGIS_PROJECT=${AEGIS_PROJECT%.$BR}
	export AEGIS_CHANGE=$BR
	aecd
	sleep 1
	aede
	aeib
	sleep 1
	aecd
	aeb
	aed
	sleep 1
	cd
	aeipass
}

setup_proj () {
	EDITOR=true aenpr $P.1
	export AEGIS_PROJECT=$P.1
	setup_devs
	PA=$(mktemp)
	cat > $PA << 'EOF'
description = "The \"$P\" program, branch 1.";
developer_may_review = true;
developer_may_integrate = true;
reviewer_may_integrate = true;
developers_may_create_changes = true;
umask = 022;
default_test_exemption = true;
default_test_regression_exemption = true;
minimum_change_number = 10;
reuse_change_numbers = true;
minimum_branch_number = 1;
skip_unlucky = false;
compress_database = false;
develop_end_action = goto_awaiting_integration;
protect_development_directory = false;
EOF
	aepa -file $PA
	rm -f $PA
	nc	
	aenf aegis.conf
	cat > aegis.conf << 'EOF'
build_command = "true";
development_directory_style = {
        source_file_symlink = true;
};
merge_command =
        "set +e; \
        merge -p -L baseline -L C$c ${quote $mostrecent} ${quote $original} \
        ${quote $input} > ${quote $output}; \
        test $? -le 1";
diff_command =
 "diff -pU10 ${quote $original} ${quote $input} >${quote $output} \
   || [ $? -eq 1 ] || grep \"^Binary files\" ${quote $output}";
architecture =
[
        {
                name = "unspecified";
                pattern = "*";
        }
];
history_create_command = "fhist ${b $h} -create -cu -i $i -p ${d $h} -r";
history_get_command = "fhist ${b $h} -e '$e' -o $o -p ${d $h}";
history_put_command = "fhist ${b $h} -create -cu -i $i -p ${d $h} -r";
history_query_command = "fhist ${b $h} -l 0 -p ${d $h} -q";
history_content_limitation = international_text;
EOF
	ec
}

newf () {
	FNAME=$1
	aenf $FNAME
	echo $FNAME > $FNAME
	echo created $AEGIS_PROJECT $AEGIS_CHANGE >> $FNAME
}

modf () {
	FNAME=$1
	aecp $FNAME
	echo modified $AEGIS_PROJECT $AEGIS_CHANGE >> $FNAME
}

mvf () {
	FNAME=$1
	NEWNAME=$2
	aemv $FNAME $NEWNAME
	echo mv $FNAME $NEWNAME $AEGIS_PROJECT $AEGIS_CHANGE >> $NEWNAME
}

rmf () {
	FNAME=$1
	aerm $FNAME
}


setup_proj

nbr
# 1.1

nc
# 1.1.C010
newf dir1/file1
ec

nc
# 1.1.C011
modf dir1/file1
ec

ebr

nbr
# 1.2

nc
# 1.2.C010
modf dir1/file1
newf dir2/file2
ec

ebr

nbr
# 1.3

nc
# 1.3.C010
mvf dir1/file1 dir2/file1
ec

nc
# 1.3.C011
modf dir2/file1
ec

ebr

nbr
# 1.4

nc
# 1.4.C010
newf dir3/file3
ec

ebr

###
# if we stop here, there will already be the first wrong result from aecp -ind
# continuing causes more failures

nbr
# 1.5

nc
# 1.5.C010
modf dir3/file3
ec

nc
# 1.5.C011
mvf dir2/file1 dir3/file1
ec

ebr

nbr
# 1.6

nc
# 1.6.C010
modf dir3/file3
ec

nc
# 1.6.C011
mvf dir2/file2 dir3/file2
ec

ebr

nbr
# 1.7

nc
# 1.7.C010
modf dir3/file2
ec

nc
# 1.7.C011
modf dir3/file2
ec


ebr

nbr
# 1.8

nc
# 1.8.C010
modf dir3/file3
ec

nc
# 1.8.C011
modf dir3/file1
ec

ebr



echo OK
[verify4 (text/plain, ATTACHMENT)]
#!/bin/bash

. /usr/share/aegis/profile

set -exu

P=${1:-bug4}
SNAPSHOTDIR=$(pwd)/snapshots.$P
RC=0
ERRORS=""

error () {
	echo "ERROR: $@"
	IFS='' ERRORS="$ERRORS $@"
	RC=1
}

mydiff () {
	diff -urN -x \*,D -x aegis.log "$@"
}

for b in 1 2 3 4 5 6 7 8; do
	for c in 10 11 12 13; do
		[ -d $SNAPSHOTDIR/$P.1.$b.C$c ] || continue
		cpdir=$(mktemp -d)
		cd $cpdir
		aecp -ind -p $P.1.$b -DELta_From_Change $c . ||
			error "aecp -ind failed for $P.1.$b.C0$c"
		mydiff $SNAPSHOTDIR/$P.1.$b.C$c . ||
			error "aecp -ind gave wrong result for $P.1.$b.C0$c"
		rm -rf $cpdir
	done
done

echo $ERRORS
exit $RC

Added tag(s) squeeze-ignore. Request was from "Adam D. Barratt" <adam@adam-barratt.org.uk> to control@bugs.debian.org. (Mon, 24 Jan 2011 17:48:09 GMT) Full text and rfc822 format available.

Severity set to 'important' from 'grave' Request was from Javi Merino <vicho@debian.org> to control@bugs.debian.org. (Sun, 04 Mar 2012 17:06:10 GMT) Full text and rfc822 format available.

Information forwarded to debian-bugs-dist@lists.debian.org, Walter Franzini <walter.franzini@gmail.com>:
Bug#610985; Package aegis. (Sun, 04 Mar 2012 17:06:13 GMT) Full text and rfc822 format available.

Acknowledgement sent to Javi Merino <vicho@debian.org>:
Extra info received and forwarded to list. Copy sent to Walter Franzini <walter.franzini@gmail.com>. (Sun, 04 Mar 2012 17:06:13 GMT) Full text and rfc822 format available.

Message #14 received at 610985@bugs.debian.org (full text, mbox):

From: Javi Merino <vicho@debian.org>
To: 610985@bugs.debian.org
Cc: control@bugs.debian.org
Subject: Downgrade 610985 to important
Date: Sun, 4 Mar 2012 17:05:51 +0000
[Message part 1 (text/plain, inline)]
severity 610985 important
thanks

This bug doesn't render the package unusable, so downgrading to
important.  Thanks,
Javi

[signature.asc (application/pgp-signature, inline)]

Send a report that this bug log contains spam.


Debian bug tracking system administrator <owner@bugs.debian.org>. Last modified: Sat Apr 19 08:08:09 2014; Machine Name: buxtehude.debian.org

Debian Bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.