[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

moving tree-conflict victim results in assertion failure

From: Stefan Sperling <stsp_at_elego.de>
Date: Fri, 29 Jul 2011 01:37:38 +0200

The script below creates a tree-conflict in a rather strange way
(checkout on top of an existing unversioned tree). But what happens
next is more interesting. It tries to move the tree-conflict victim
and this triggers an assertion in wc_db.c.

This reproduces with trunk and 1.7.x.


set -e

basename=`basename $0`
scratch_area="`echo $basename | sed -e s/\.sh$//`"

set -x

rm -rf $scratch_area
mkdir -p $scratch_area

mkdir -p $trunk
mkdir $trunk/epsilon
echo zeta > $trunk/epsilon/zeta

svnadmin create $cwd/$repos
svn import $trunk $trunk_url -m "importing project tree"
# Do not remove the imported tree, but try to checkout a WC on top of it:
svn checkout $trunk_url $trunk

svn st $trunk

svn mv $trunk/epsilon $trunk/epsilon2

The output (with 1.7.x) is:

$ ./bug.sh
+ rm -rf bug
+ mkdir -p bug
+ mkdir -p bug/trunk
+ mkdir bug/trunk/epsilon
+ echo zeta
+ > bug/trunk/epsilon/zeta
+ svnadmin create /tmp/bug/repos
+ svn import bug/trunk file:////tmp/bug/repos/trunk -m importing project tree
Adding bug/trunk/epsilon
Adding bug/trunk/epsilon/zeta

Committed revision 1.
+ svn checkout file:////tmp/bug/repos/trunk bug/trunk
   C bug/trunk/epsilon
   A bug/trunk/epsilon/zeta
Checked out revision 1.
+ svn st bug/trunk
D C bug/trunk/epsilon
> local unversioned, incoming add upon update
D bug/trunk/epsilon/zeta
Summary of conflicts:
  Tree conflicts: 1
+ svn mv bug/trunk/epsilon bug/trunk/epsilon2
A bug/trunk/epsilon2
subversion/libsvn_wc/wc_db.c:4122: (apr_err=235000)
svn: E235000: In file 'subversion/libsvn_wc/wc_db.c' line 4122: assertion failed (presence == svn_wc__db_status_normal)
Abort trap (core dumped)
Received on 2011-07-29 01:38:10 CEST

This is an archived mail posted to the Subversion Dev mailing list.